6
BAB 2
LANDASAN TEORI
2.1 Optimasi Non-Linier
Suatu permasalahan optimasi disebut non-linier jika fungsi tujuan dan kendalanya mempunyai bentuk non-linier pada salah satu atau keduanya. Optimasi non-linier ditinjau dari pandangan matematis adalah topik lanjutan dan secara konsepsual, sulit untuk diselesaikan. Dibutuhkan pengetahuan aktif mengenai kalkulus, differensial dan aljabar linier. Kesulitan lain yang dihadapi, yaitu fungsi tujuan non-linier, yang tidak mempunyai nilai minimum serta mempunyai daerah penyelesaian dengan batas nonlinier (tidak konvex). Secara umum tidak terdapat teknik penyelesaian yang terbaik, tetapi ada beberapa teknik yang mempunyai masa depan cerah dibandingkan yang lain. Banyak teknik penyelesaian optimasi non-linier yang hanya efisien untuk menyelesaikan masalah yang mempunyai struktur matematis tertentu. Hampir semua teknik optimasi non-linier modern mengandalkan pada algoritma numerik untuk mendapatkan jawabannya. Beberapa permasalahan optimasi non-linier diantaranya : 1. Optimasi Satu Variabel Tanpa Kendala 2. Optimasi Multivariabel Tanpa Kendala 3. Optimasi Multivariabel Dengan Kendala Persamaan 4. Optimasi Multivariabel Dengan Kendala Pertidaksamaan.
Universitas Sumatera Utara
7
2.2 Metode Newton-Raphson
Dalam analisis numerik, metode Newton (juga dikenal dengan metode NewtonRaphson) yang mendapat nama dari Isaac Newton (1669) dan Joseph Raphson (1690), merupakan suatu metode yang cukup dikenal untuk mencari hampiran/pendekatan terhadap akar fungsi rill. Metode Newton-Raphson sering konvergen dengan cepat, terutama bila iterasi dimulai cukup dekat dengan akar yang diinginkan. Namum bila iterasi dimulai jauh dari akar yang dicari, metode ini dapat meleset tanpa peringatan. Implementasi metode ini biasanya mendeteksi dan mengatasi kegagalan konvergensi.
2.2.1 Gagasan Awal Metode Newton-Raphson
Gagasan awal metode Newton-Raphson adalah metode yang digunakan untuk mencari akar dari sebuah fungsi rill. Metode ini dimulai dengan memperkirakan satu titik awal dan mendekatinya dengan memperlihatkan slope atau gradien pada titik tersebut. Diharapkan dari titik awal tersebut akan diperoleh pendekatan terhadap akar fungsi yang dimaksud.
Gambar 2.1 Metode Newton-Raphson
Universitas Sumatera Utara
8
Jika terkaan awal pada akar adalah xi, sebuah garis singgung dapat ditarik dari titik [ xi , f ( xi )] . Titik dimana garis singgung ini memotong sumbu x, menyatakan taksiran akar yang lebih baik. Turunan pertama di xi setara dengan kemiringan :
f ' ( xi ) =
f ( xi ) − 0 xi − xi +1
Sehingga, titik pendekatan untuk i + 1 adalah :
xi +1 = xi −
f ( xi ) f ' ( xi )
dimana i ≥ 0 Algoritma metode Newton-Raphson : 1. Definisikan fungsi f (x) dan f ' ( x)
2. Tentukan toleransi error ( e ) dan iterasi maksimum ( n ) 3. Tentukan nilai pendekatan awal x0 4. Hitung f ( x0 ) dan f ' ( x0 ) 5. Untuk iterasi i = 1, 2, . . . ,n atau | f ( xi ) | ≥ e xi +1 = xi −
f ( xi ) f ' ( xi )
Hitung f ( xi ) dan f ' ( xi ) 6. Akar persamaan adalah nilai xi terakhir yang diperoleh. Permasalahan pada penggunaan metode Newton-Raphson adalah : 1. Metode ini tidak dapat digunakan ketika pendekatannya berada pada titik ekstrim atau titik puncak karena pada titik ini f ' ( x) = 0 , sehingga nilai penyebut dari
f ( x) sama dengan nol, secara grafis dapat dilihat sebagai f ' ( x)
berikut :
Universitas Sumatera Utara
9
Gambar 2.2 Pendekatan Pada Titik Puncak
Bila titik pendekatan berada pada titik puncak, maka titik selanjutnya akan berada di tak berhingga. 2. Metode ini menjadi sulit atau lama mendapat penyelesaian, ketika titik pendekatannya berada diantara dua titik stasioner.
Gambar 2.3 Titik Pendekatan Pada 2 Titik Puncak
Universitas Sumatera Utara
10
Bila titik pendekatan berada pada dua titik puncak, maka akan dapat mengakibatkan hilangnya penyelesaian (divergensi). Hal ini disebabkan titik selanjutnya berada pada salah satu titik puncak atau arah pendekatannya berbeda. Untuk dapat menyelesaikan kedua permasalahan pada metode Newton-Raphson ini, maka metode NewtonRaphson perlu dimodifikasi dengan : 1. Bila titik pendekatan berada pada titik puncak, maka titik pendekatan tersebut harus digeser sedikit x1 = xi + δ , dimana δ adalah konstanta yang ditentukan. Dengan demikian
f ' ( xi ) ≠ 0 , dan metode Newton-Raphson tetap dapat
berjalan. 2. Untuk menghindari titik – titik pendekatan yang berada jauh, sebaiknya metode Newton-Raphson ini didahului oleh metode tabel, sehingga dapat dijamin konvergensinya. Algoritma metode Newton-Raphson dengan modifikasi tabel : 1. Definisikan fungsi f (x) 2. Ambil range nilai x = [a, b] dengan jumlah pembagi n 3. Masukkan toleransi error ( e ) dan iterasi n 4. Gunakan algoritma tabel diperoleh titik pendekatan awal x0 dari : f ( x k ). f ( x k +1 ) < 0 maka x0 = x k
5. Hitung f ( x0 ) dan f ( x1 ) 6. Bila f (abs.( f ' ( x0 ))) < e , maka pendekatan awal digeser sebesar dx x0 = x0 + dx
Hitung f ( x0 ) dan f ( x1 ) 7. Untuk iterasi i = 1, 2, . . . ,n atau f ( xi ) ≥ e xi = xi −1 −
f ( xi −1 ) f ' ( xi −1 )
Hitung f ( xi ) dan f ' ( xi ) Bila | f ' ( xi ) |< e , maka xi = xi + dx ; Hitung f ( xi ) dan f ' ( xi ) 8. Akar persamaan adalah nilai xi terakhir yang diperoleh.
Universitas Sumatera Utara
11
2.2.2 Modifikasi Metode Newton-Raphson Untuk Optimasi Multivariabel Dengan Kendala persamaan
Pada
awalnya
metode
Newton-Raphson
hanya
digunakan
untuk
mencari
pendekatan/hampiran terhadap akar suatu fungsi rill. Tetapi, pada perkembangannya metode ini telah banyak mengalami kemajuan. Metode ini dapat dimodifikasi, sehingga mampu menyelesaikan permasalahan – permasalahan lain. Salah satunya adalah permasalahan optimasi multivariabel dengan kendala persamaan. Dengan X = [ x1 , x 2 ,..., x n ]T , maka bentuk umum untuk permasalahan non-
linier yang mempunyai kendala – kendala kesamaan adalah : Maksimumkan
Z = f (X )
Dengan kendala
g1 ( X ) = 0
g2 (X ) = 0 ........ gm (X ) = 0 Disini, m < n ( jumlah kendala lebih kecil daripada variabel ), jika terjadi
m ≥ n , maka biasanya tidak dapat diselesaikan. Adapun rumus rekursi yang diterapkan pada metode Newton-Raphson, khususnya untuk permasalahan optimasi multivariabel dengan kendala persamaan adalah : Z k +1 = Z k − ( H L | Z k ) −1 ∇L | Z k
dan k ≥ 0 Dimana :
Z k +1
= Nilai Z ke-(k+1)
Zk
= Nilai Z ke-k
( H L | Z k ) −1 = Invers Matriks Hessian dititik Zk
∇L | Z k = Vektor Gradien dititik Zk
Universitas Sumatera Utara
12
Penggunaan metode Newton-Raphson tidak hanya sebatas dalam mencari akar dari suatu fungsi. Seperti dijelaskan sebelumnya penerapan metode ini telah banyak menyelesaikan berbagai macam permasalahan. Dalam optimasi miltivariabel dengan kendala persamaan metode ini digunakan untuk mencari titik optimal dari persamaan kendala yang ada. Dari uraian diatas, maka algoritma metode Newton-Raphson dalam menyelesaikan optimasi multivariabel dengan kendala persamaan adalah : 1. Definisikan fungsi f (x) , dimana f (x) = fungsi tujuan. 2. Bentuk fungsi pengali Lagrange, yaitu : m
L( x1 , x 2 ,..., x n , λ1 , λ2 ,..., λm ) = f ( X ) − ∑ λi g i ( X ) , dimana λi (i = 1,2,..., m) . i =1
3. Tentukan Vektor Gradien dan Matriks Hessian. 4. Pilih secara sebarang nilai Z0. 5. Hitung Vektor Gradien (∇L | Z 0 ) dan Matriks Hessian ( H L | Z 0 ) dititik Z0. 6. Lakukan proses iterasi Newton-Raphson : Z k +1 = Z k − ( H L | Z k ) −1 ∇L | Z k ; untuk k ≥ 0
7. Apabila Z k +1 ≡ Z k (sampai empat angka dibelakang koma) hentikan proses iterasi, bila tidak ulangi langkah (5) untuk titik Z i (i = 1,2,3,...) 8. Penyelesaian optimal adalah titik xi terakhir yang diperoleh.
2.2.3 Kriteria Berhenti
Iterasi dihentikan apabila Z k +1 ≡ Z k , artinya antara Z k +1 dan Z k sudah tidak ada perbedaan yang begitu signifikan ditinjau hingga empat angka dibelakang koma. Apabila kriteria ini telah dipenuhi, maka proses iterasi dapat dihentikan dan penyelesaian optimal telah diperoleh.
Universitas Sumatera Utara
13
2.2.4. Penentuan Titik Awal ( Z 0 )
Tidak ada metode khusus yang digunakan dalam menentukan nilai titik awal ( Z 0 ) , pada umumnya titik awal yang dipilih adalah, Z = [1 1 1 L 1] . Apabila titik T
taksiran awal jauh dari nilai optimasi yang dimaksud, metode ini sulit untuk dapat konvergen (mendapatkan penyelesaian optimal).
2.2.5 Metode pengali Lagrange
Permasalahan – permasalahan non-linier yang tidak dalam bentuk standar diselesaikan dengan mengubahnya ke dalam bentuk standar. Untuk menyelesaikan permasalahan ini, maka perlu dibentuk fungsi pengali Lagrange. Fungsi pengali Lagrange didefinisikan sebagai : m
L( x1 , x 2 ,..., x n , λ1 , λ2 ,..., λm ) = f ( X ) − ∑ λi g i ( X ) i =1
Dimana λi = ( i = 1, 2, . . . , m ) adalah tetapan – tetapan yang disebut pengali Lagrange (Lagrange multipliers). Kemudian dibentuk kembali persamaan berikut : ∂L =0 ∂x j
( j = 1, 2 , . . . , n )
∂L =0 ∂xi
( i = 1, 2 , . . . , m )
Metode pengali Lagrange ini ekuivalen dengan menggunakan persamaan kendala untuk menghilangkan beberapa variabel x tertentu dari fungsi objektif dan kemudian menyelesaikan persoalan maksimasi tanpa kendala dalam variabel – variabel x yang tersisa.
Universitas Sumatera Utara
14
2.2.6 Vektor Gradien dan Matriks Hessian
Dalam penyelesaian optimasi multivariabel dengan kendala persamaan yang diselesaikan dengan metode Newton-Raphson, terdapat istilah Vektor Gradien dan Matriks Hessian. 1. Vektor Gradien Vektor Gradien merupakan turunan parsial pertama dari fungsi pengali Lagrange terhadap variabel xi dan λ j , dimana (i = 1,2,...n) dan ( j = 1,2,...m) . Secara matematis Vektor Gradien dapat dituliskan :
⎡ ∂L ∇L = ⎢ , ⎣ ∂x1
∂L ∂L , L , , ∂x 2 ∂x n
∂L , ∂λ1
∂L ∂L ⎤ , L , ⎥ ∂λ2 ∂λ m ⎦
T
2. Matriks Hessian Matriks Hessian merupakan turunan parsial kedua dari fungsi pengali Lagrange terhadap variabel xi (i = 1,2,..., n) dilanjutkan dengan turunan parsial terhadap x1 , x 2 ,..., x n , λ1 , λ 2 ,..., λm . Dan variabel λ j ( j = 1,2,..., m) dilanjutkan dengan turunan parsial terhadap x1 , x 2 ,..., x n , λ1 , λ 2 ,..., λ m . Matriks Hessian didefinisikan sebagai : ⎡ ∂2L ⎢ ⎢ ∂x1∂x1 ⎢ M ⎢ ∂2L ⎢ ∂x ∂x H L = ⎢ n2 1 ⎢ ∂ L ⎢ ∂λ ∂x ⎢ 1 1 ⎢ 2M ⎢ ∂ L ⎢ ∂λ ∂x ⎣ m 1
∂2L ∂x1∂x 2 M 2 ∂ L ∂x n ∂x 2 ∂2L ∂λ1∂x 2 M 2 ∂ L ∂λ m ∂x 2
∂2L ∂x1∂x n M 2 ∂ L L ∂x n ∂x n ∂2L L ∂λ1∂x n M 2 ∂ L L ∂λ m ∂x n L
∂2L ∂x1∂λ1 M 2 ∂ L ∂x n ∂λ1 ∂2L ∂λ1∂λ1 M 2 ∂ L ∂λ m ∂λ1
∂2L ∂x1∂λ 2 M 2 ∂ L ∂x n ∂λ 2 ∂2L ∂λ1∂λ 2 M 2 ∂ L ∂λ m ∂λ 2
∂2L ⎤ ⎥ ∂x1∂λ m ⎥ M ⎥ 2 ∂ L ⎥ L ⎥ ∂x n ∂λ m ⎥ ∂2L ⎥ L ∂λ1∂λ m ⎥ ⎥ M ⎥ ∂2L ⎥ L ∂λ m ∂λ m ⎥⎦ L
Universitas Sumatera Utara
15
2.3 Pengertian Matriks
Matriks adalah susunan segiempat siku – siku dari bilangan yang diatur berdasarkan baris dan kolom. Bilangan – bilangan dalam susunan tersebut dinamakan entri dalam matriks atau disebut juga elemen (unsur).
2.3.1 Notasi Matriks
Pada umumnya matriks disimbolkan dengan huruf kapital A, B, C dan lain – lain. Secara lengkap ditulis matriks A = (aij ) . Artinya, suatu matriks A yang elemen – elemennya aij , dimana indeks i menyatakan baris ke-i dan indeks j menyatakan kolom ke-j dari elemen tersebut. Pandang sebuah matriks A = (aij ) dimana i = 1,2,..., m dan
j = 1,2,..., n . Maka, dapat dituliskan :
⎡ a11 ⎢a A = ⎢ 21 ⎢ M ⎢ ⎣a m1
a12 L a1n ⎤ a 22 L a 2 n ⎥⎥ M M ⎥ ⎥ a m 2 L a mn ⎦
Dapat juga ditulis A( m x n ) = (aij ) , dimana (m x n) disebut ukuran (ordo) dari matriks A. Ukuran matriks atau ordo matriks dijelaskan dengan menyatakan banyaknya baris (m), dan banyaknya kolom (n) yang terdapat dalam matriks tersebut. Jadi, suatu matriks yang mempunyai m baris dan n kolom disebut matriks berordo mxn.
2.3.2 Operasi Matriks
1. Penjumlahan Matriks Penjumlahan pada matriks hanya terpenuhi apabila kedua matriks mempunyai ordo (ukuran) yang sama. Misalkan matriks C adalah matriks yang diperoleh
Universitas Sumatera Utara
16
dengan menjumlahkan matriks A dan B, sehingga elemen – elemen dari C adalah hasil penjumlahan dari elemen – elemen yang seletak/ bersesuaian dari matriks
dan
A
matriks B. Dari
penjelasan tersebut
dapat ditulis
A( m x n ) + B( m x n ) = C ( m x n ) . Misalkan terdapat matriks A(3 x 3)
⎡ a11 = ⎢⎢a 21 ⎣⎢ a31
a12 a 22 a32
a13 ⎤ ⎡b11 ⎥ a 23 ⎥ ; B(3 x 3) = ⎢⎢b21 ⎢⎣b31 a33 ⎦⎥
b12 b22 b32
b13 ⎤ b23 ⎥⎥ , b33 ⎦⎥
maka A(3 x 3) + B(3 x 3) = C (3 x 3) , atau : ⎡ a11 ⎢a ⎢ 21 ⎢⎣ a31
a12 a 22 a32
a13 ⎤ ⎡b11 a 23 ⎥⎥ + ⎢⎢b21 a33 ⎥⎦ ⎢⎣b31
b12 b22 b32
b13 ⎤ ⎡ a11 + b11 b23 ⎥⎥ = ⎢⎢a 21 + b21 b33 ⎥⎦ ⎢⎣ a31 + b31
a12 + b12 a 22 + b22 a32 + b32
a13 + b13 ⎤ a 23 + b23 ⎥⎥ a33 + b33 ⎥⎦
2. Pengurangan Matriks Sama halnya pada kasus penjumlahan, pada pengurangan matriks tetap berlaku aturan bahwa kedua matriks yang dioperasikan harus memiliki ordo (ukuran) yang sama. Sehingga berlaku P( m x n ) − Q( m x n ) = R( m x n ) . Terdapat matriks P( 3 x 3)
⎡ p11 = ⎢⎢ p 21 ⎢⎣ p31
p12 p 22 p32
p13 ⎤ ⎡ q11 ⎥ p 23 ⎥ , dan Q(3 x 3) = ⎢⎢q 21 ⎢⎣ q31 p33 ⎥⎦
q12 q 22 q32
q13 ⎤ q 23 ⎥⎥ , q33 ⎥⎦
maka P(3 x 3) − Q(3 x 3) = R(3 x 3) , atau : ⎡ p11 ⎢p ⎢ 21 ⎢⎣ p31
p12 p 22 p32
p13 ⎤ ⎡ q11 p 23 ⎥⎥ − ⎢⎢q 21 p33 ⎥⎦ ⎢⎣q31
q12 q 22 q32
q13 ⎤ ⎡ p11 − q11 q 23 ⎥⎥ = ⎢⎢ p 21 − q 21 q33 ⎥⎦ ⎢⎣ p31 − q31
p12 − q12 p 22 − q 22 p32 − q32
p13 − q13 ⎤ p 23 − q 23 ⎥⎥ p33 − q33 ⎥⎦
3. Perkalian Skalar Dengan Matriks Jika terdapat matriks A(m x n) dan skalar k, dimana k ∈ ℜ , maka hasil kali kA adalah matriks yang diperoleh dengan mengalikan entri/elemen dari A dengan skalar k. Dari penjelasan tersebut, maka : ⎡ a11 ⎢a kA = k . ⎢ 21 ⎢ M ⎢ ⎣a m1
a12 a 22 M am2
L a1n ⎤ L a 2 n ⎥⎥ M ⎥ ⎥ L a mn ⎦
Universitas Sumatera Utara
17
⎡ k .a11 ⎢ k .a = ⎢ 21 ⎢ M ⎢ ⎣k .a m1
k .a12 L k .a1n ⎤ k .a 22 L k .a 2 n ⎥⎥ M M ⎥ ⎥ k .a m 2 L k .a mn ⎦
4. Perkalian Matriks Dengan Matriks Pada umumnya matriks tidak komutatif terhadap operasi perkalian yaitu
AB ≠ BA . Pada perkalian matriks AB, A disebut sebagai matriks pertama dan B adalah matriks kedua. Syarat dua buah matriks dapat dilakukan operasi perkalian yaitu kolom matriks pertama = baris pada matriks kedua. Jika A adalah matriks mxr dan B adalah matriks rxn, maka hasil kali AB adalah matriks mxn yang elemen – elemennya ditentukan sebagai berikut. Untuk mencari entri dalam baris i dan kolom j dari AB, pilihlah baris i dari matriks A dan kolom j dari matriks B. Kalikanlah elemen – elemen yang bersesuaian dari baris dan kolom tersebut kemudian jumlahkan hasil – hasil dari perkalian tersebut. Sehingga, dapat dituliskan sebagai berikut A( m x r ) x B( r x n ) = AB( m x n ) . Misalkan terdapat matriks A(3 x 2 )
⎡ a11 = ⎢⎢a 21 ⎢⎣ a31
a12 ⎤ ⎡b a 22 ⎥⎥ , dan B( 2 x 3) = ⎢ 11 ⎣b21 a32 ⎥⎦
b12 b22
b13 ⎤ . b23 ⎥⎦
Maka, A( m x r ) x B( r x n ) = AB( m x n ) atau :
⎡ a11 ⎢a ⎢ 21 ⎢⎣ a31
a12 ⎤ a 22 ⎥⎥ a32 ⎥⎦
⎡b11 ⎢b ⎣ 21
b12 b22
⎡ a11b11 + a12 b21 b13 ⎤ ⎢ = a 21b11 + a 22 b21 b23 ⎥⎦ ⎢ ⎢⎣ a31b11 + a32 b21
a11b12 + a12 b22 a 21b12 + a 22 b22 a31b12 + a32 b22
a11b13 + a12 b23 ⎤ a 21b13 + a 22 b23 ⎥⎥ a31b13 + a32 b23 ⎥⎦
Universitas Sumatera Utara
18
2.3.3 Transpose Matriks Pandang suatu matriks A = (aij ) , berordo m x n, maka transpose dari A adalah matriks AT = (a ji ) berordo n x m yang diperoleh dari matriks A dengan menuliskan baris ke-i
dari A; i = 1,2,..., m sebagai kolom ke-i dari matriks AT. Misalkan matriks C berordo
⎡ c11 3x2, maka dapat dituliskan C = ⎢⎢c 21 ⎢⎣c31
c12 ⎤ ⎡c c 22 ⎥⎥ ; maka C T = ⎢ 11 ⎣c12 c32 ⎥⎦
c 21 c 22
c31 ⎤ , berordo c32 ⎥⎦
2x3.
2.3.4 Invers Matriks Sebuah matriks bujur sangkar A berordo n x n :
⎡ a11 ⎢a A = ⎢ 21 ⎢ M ⎢ ⎣a n1
a12 L a1n ⎤ a 22 L a 2 n ⎥⎥ M M ⎥ ⎥ a n 2 L a nn ⎦
Disebut mempunyai invers apabila terdapat sebuah matriks B, sehingga AB = BA = I. Matriks B disebut invers dari matriks A, atau dapat ditulis B = A-1. dimana A-1 sebagai invers dari matriks A. ⎡a 1. Misalkan A( 2 x 2 ) = ⎢ 11 ⎣a 21
a12 ⎤ , maka berlaku : a 22 ⎥⎦
⎡ a 22 − a12 ⎤ ⎢− a a11 ⎥⎦ 21 ⎣ −1 ; dan a11 a 22 − a12 a 21 ≠ 0 A = a11 a 22 − a12 a 21
2. Untuk M (3 x 3)
⎡ a11 = ⎢⎢a 21 ⎢⎣a31
a12 a 22 a32
a13 ⎤ a 23 ⎥⎥ a33 ⎥⎦
Universitas Sumatera Utara
19
Maka, M −1 =
adj ( M ) ; dan Det(M) ≠ 0, Det ( M ) T
⎡ kov(a11 ) − kov(a12 ) kov(a13 ) ⎤ dimana adj ( M ) = ⎢− kov(a 21 ) kov(a 22 ) − kov(a 23 )⎥⎥ ; ⎢ ⎢⎣ kov(a31 ) − kov(a32 ) kov(a33 ) ⎥⎦ dan kov(aij ) menyatakan kovaktor dari baris ke-i dan kolom ke-j yang didefinisikan sebagai :
kov(a11 ) =
a 22 a32
3. Untuk A(n
x n),
a 23 a ; kov(a12 ) = 21 a33 a31
a 23 dan seterusnya. a33
n ≥ 3. biasanya akan lebih mudah menyelesaikannya dengan
metode transformasi elementer.
2.4 Memulai MATLAB
Matlab merupakan bahasa pemrograman dengan kemampuan tinggi dalam bidang komputasi. Mengapa dipilih bahasa pemrograman matlab?. Saat ini, bahasa pemrograman tidak hanya dituntut memiliki kemampuan dari segi komputasi, tetapi juga kemampuan visualisasi yang baik. Matlab memiliki kemampuan mengintegrasikan komputasi, visualisasi, dan pemrograman. Dalam memvisualisasikan sebuah obyek, matlab memiliki kemampuan merotasi obyek tanpa mengubah programnya. Agar dapat mulai menggunakan matlab, pastikan di komputer telah terinstall program matlab. Untuk memulai matlab, pilihlah ikon Matlab atau dari toolbar Start Windows, lalu klik program dan pilihlah Matlab. Dengan demikian, akan terlihat tampilan sebagai berikut :
Universitas Sumatera Utara
20
Gambar 2.4 Jendela utama MATLAB
2.4.1 Bagian penting Matlab
Beberapa bagian penting didalam matlab antara lain : 1. Jendela Perintah (Command Window) Pada jendela perintah, semua perintah matlab dituliskan dan dieksekusi. Dapat dituliskan perintah yang diperlukan seperti perhitungan biasa, memanggil fungsi, mencari informasi tentang sebuah fungsi (help), demo program dan sebagainya. Setiap penulisan perintah selalu diawali dengan prompt ’ >>’. 2. Jendela Ruang Kerja (Workspace) Jendela ruang kerja (workspace) merupakan sebuah jendela matlab yang berisi informasi pemakaian variabel didalam memori matlab. Misalnya akan dicari luas segitiga siku – siku, maka pada jendela perintah diketikkan :
Universitas Sumatera Utara
21
Gambar 2.5 Program Mencari Luas Segitiga Siku-Siku
Unuk mengetahui berapa byte pemakaian variabel didalam memori, dapat dilihat melalui jendela workspace.
Gambar 2.6 Jendela Workspace
Tabel menunjukkan masing – masing variabel membutuhkan 8 byte, sehingga total memori yang digunakan adalah 24 byte.
Universitas Sumatera Utara
22
3. Jendela History Jendela history merupakan sebuah jendela yang berisi informasi tentang perintah yang pernah dituliskan sebelumnya. Pada gambar berikut, jendela history memperlihatkan beberapa perintah yang sudah pernah diketikkan. Perintah – perintah tersebut dapat diambil kembali dengan menekan tombol panah keatas atau mengklik perintah pada jendela history, kemudian melakukan copy-paste ke jendela perintah.
Gambar 2.7 Jendela Command History
4. Preferences Preferences merupakan fasilitas yang digunakan untuk mengatur segala sesuatu tentang matlab, misalnya pengaturan jenis, ukuran maupun warna font untuk keyword, komentar, string, error, dan sebagainya. Untuk membuka preferences, dapat digunakan menu file. Selanjutnya pilih menu preferences, sehingga akan terlihat kotak dialog seperti berikut :
Universitas Sumatera Utara
23
Gambar 2.8 Jendela Preferences
Beberapa fasilitas yang tersedia pada menu preferences, yaitu : 1. General 2. Command Window 3. Command History 4. Editor/Debugger 5. Help 6. Current Directory 7. Workspace 8. Array Editor 9. GUIDE 10. Figure Copy Template 11. Simulink 5. Current Directory Current Directory digunakan untuk menentukan direktori aktif yang digunakan matlab. Apabila hendak menjalankan sebuah fungsi, haruslah dipastikan bahwa fungsi berada didalam direktori aktif atau dengan mengubah direktori aktifnya kedirektori tempat fungsi berada. Jika tidak, maka matlab akan memberikan pesan kesalahan. Penyebabnya adalah didalam direktori aktif tidak terdapat fungsi atau variabel yang dimaksud.
Universitas Sumatera Utara
24
Jika ingin mengubah direktori aktif matlab, caranya dengan mengklik ikon Browse for folder : Browse for folder
Gambar 2.9 Browse for folder
Sehingga menampilkan kotak dialog Browse For Folder :
Gambar 2.10 Kotak dialog Browse For Folder
Selanjutnya, dapat dipilih sekaligus mengganti direktori aktif matlab. Secara default, matlab menggunakan direktori aktif yang bernama work. Apabila tidak diubah, maka segala pekerjaan yang berhubungan dengan matlab, baik untuk m-file, fig-file, maupun file yang lain, akan selalu tersimpan pada direktori aktif work. 6. Launch Pad Matlab menyediakan launch pad untuk memudahkan pekerjaan dalam mengakses produk – produk matlab, seperti demo dan dokumentasi. Untuk
Universitas Sumatera Utara
25
menggunakan launch pad, dapat diakses dari menu view dan memberikan tanda pada launch pad. Sehingga akan diperoleh tampilan sebagai berikut :
Gambar 2.11 Jendela Launch Pad
Untuk mengetahui apa yang disajikan pada launch pad, caranya dengan menggunakan klik + pada masing – masing menu seperti MATLAB, Communications Toolbox, Matlab Compiler dan lain – lain. Untuk menjalankan aplikasinya, yaitu dengan double-klik pada masing – masing aplikasinya. Bagian penting lainnya dari matlab adalah tersedianya tombol start seperti pada Windows. Dari tombol Start, dapat dilihat bahwa matlab memiliki banyak menu seperti yang terlihat pada launch pad. Salah satunya adalah toolbox. Matlab menyediakan banyak toolbox yang dapat memebantu menyelesaikan permasalahan sesuai dengan bidangnya masing – masing. Diantaranya images processing, neural network, fuzzy, statistic, symbolic, wavelet, dan sebagainya. Kemudian, matlab juga menyediakan fasilitas lain
Universitas Sumatera Utara
26
yang cukup menjanjikan seperti simulink, blocksets, GUIDE, COM BUILDER dan lain – lain.
2.5 Dasar – Dasar Matriks Pada Matlab
Sesuai dengan namanya matlab atau matrix laboratory, maka matriks merupakan dasar yang digunakan matlab dalam komputasi atau operasi yang lainnya. Oleh karena itu, perlu dipahami juga dasar – dasar matriks agar dalam pembahasan selanjutnya lebih mudah untuk dikuasai. Matlab menggunakan matriks sebagai dasar komputasinya, maka pengetahuan tentang matriks sangatlah penting bagi penggunaan matlab. Secara garis besar, matlab membagi matriks menjadi dua.
2.5.1 Matriks khusus
Matriks khusus merupakan matriks yang telah dibuat dan didefinisikan oleh matlab. Contohnya : matriks diagonal, matriks random, matriks nol, matriks satu, matriks identitas, matriks pascal, dan matriks bujursangkar ajaib (magic square). 1. Matriks Nol Matriks yang elemen bilangannya nol. >>zeroes (3) ans =
⎡0 0 0 ⎤ ⎢0 0 0 ⎥ ⎢ ⎥ ⎢⎣0 0 0⎥⎦ 2. Matriks Satu Matriks yang elemen bilangannya satu.
>> ones (4,3) ans =
Universitas Sumatera Utara
27
⎡1 1 1⎤ ⎢1 1 1⎥ ⎢ ⎥ ⎢⎣1 1 1⎥⎦
3. Matriks Bujur Sangkar Ajaib Matriks akan memiliki jumlahan yang sama pada tiap baris, kolom, maupun diagonalnya.
>> magic (4) ans = ⎡16 2 3 13⎤ ⎢ 5 11 10 8 ⎥ ⎢ ⎥ ⎢ 9 7 6 12⎥ ⎢ ⎥ ⎣ 4 14 15 1 ⎦
4. Matriks Identitas Matriks satuan merupakan matriks dimana semua elemen pada diagonal utama selalu satu.
>> eye (4) ans = ⎡1 ⎢0 ⎢ ⎢0 ⎢ ⎣0
0 0 0⎤ 1 0 0⎥⎥ 0 1 0⎥ ⎥ 0 0 1⎦
2.5.2 Matriks yang Didefinisikan oleh Pengguna Matlab (User Defined) Selain bentuk matriks diatas, matlab menyediakan fasilitas untuk mendefinisikan matriks. Untuk mendefinisikan sebuah matriks, matlab menggunakan tanda kurung siku []. Misalnya, untuk mendefinisikan sebuah matriks A(3x3)
>> A = [ a11 a12 a13;a21 a22 a23 ;a31 a32 a33]
Universitas Sumatera Utara
28
A = ⎡ a11 ⎢a ⎢ 21 ⎢⎣ a31
a12 a 22 a32
a13 ⎤ a 23 ⎥⎥ a33 ⎥⎦
Tanda semicolon “ ; “ memisahkan antara baris satu dengan yang lainnya. Untuk memperoleh sebuah submatriks B yang diperoleh dari baris 1 dan 3 serta kolom 1 dan 2 dari matriks A, dapat digunakan perintah :
>> B = A ([a11 a12],[a31 a32]) B = ⎡ a11 ⎢a ⎣ 21
a12 ⎤ a 22 ⎥⎦
Untuk menukar baris ketiga dengan baris pertama, perintahnya :
>> C = A ([3 2 1],:) C = ⎡ a31 ⎢a ⎢ 21 ⎢⎣ a11
a32 a 22 a12
a33 ⎤ a 23 ⎥⎥ a13 ⎥⎦
Sebaliknya, untuk menukar kolom ketiga dengan kolom pertama, perintahnya :
>> D = A (:,[3 2 1]) D = ⎡ a13 ⎢a ⎢ 23 ⎢⎣ a33
a12 a 22 a32
a11 ⎤ a 21 ⎥⎥ a31 ⎥⎦
Untuk menghapus sebuah baris atau kolom dari matriks A, digunakan perintah matriks kosong [].
>> A (: , 2) = [] A =
Universitas Sumatera Utara
29
⎡ a11 ⎢a ⎢ 21 ⎢⎣ a31
a13 ⎤ a 23 ⎥⎥ a33 ⎥⎦
Untuk mendapatkan kembali matriks A seperti semula, maka perlu menyisipkan elemen pada kolom kedua dengan cara :
>> A = [ A (: , 1) [a12 a22 a23] A (: , 2)] A = ⎡ a11 ⎢a ⎢ 21 ⎢⎣ a31
a12 a 22 a32
a13 ⎤ a 23 ⎥⎥ a33 ⎥⎦
2.5.3 Operasi Matriks Pada Matlab Untuk melakukan operasi didalam matriks, ada aturan – aturan yang harus sudah dipahami oleh pemakai matlab. Sebagai contoh, pada operasi penjumlahan dua buah matriks syarat yang harus dipenuhi adalah kedua matriks harus memiliki ukuran sama. Sedangkan, pada operasi perkalian matriks syarat yang harus dipenuhi adalah kolom matriks pertama harus sama dengan baris matriks kedua. Jika pemakai tidak memenuhi syarat, maka matlab akan memberikan pesan kesalahan. 1. Operasi Penjumlahan Matriks
>> A = [a11 a12 a13;a21 a22 a23; a31 a32 a33] A = ⎡ a11 ⎢a ⎢ 21 ⎢⎣ a31
a12 a 22 a32
a13 ⎤ a 23 ⎥⎥ a33 ⎥⎦
>> B = [b11 b12 b13; b21 b22 b23; b31 b32 b33] B = ⎡b11 ⎢b ⎢ 21 ⎢⎣b31
b12 b22 b32
b13 ⎤ b23 ⎥⎥ b33 ⎥⎦
Universitas Sumatera Utara
30
>> A+B ans = ⎡ a11 + b11 ⎢a + b 21 ⎢ 21 ⎢⎣ a31 + b31
a12 + b12 a 22 + b22 a32 + b32
a13 + b13 ⎤ a 23 + b23 ⎥⎥ a33 + b33 ⎥⎦
2. Operasi Perkalian Dua Buah Matriks
>> K = [k11 k12 k13; k21 k22 k23; k31 k32 k33] K = ⎡ k11 ⎢k ⎢ 21 ⎢⎣ k 31
k12 k 22 k 32
k13 ⎤ k 23 ⎥⎥ k 33 ⎦⎥
>> L = [l11 l12 l13;l21 l22 l23;l31 l32 l33] L = ⎡l11 ⎢l ⎢ 21 ⎢⎣l31
l12 l 22 l 32
l13 ⎤ l 23 ⎥⎥ l33 ⎥⎦
>> K*L ans = ⎡ k11l11 + k12 l 21 + k13 l31 ⎢k l + k l + k l 22 21 23 31 ⎢ 21 11 ⎢⎣ k 31l11 + k 32 l 21 + k 33 l31
k11l12 + k12 l 22 + k13 l32 k 21l12 + k 22 l 22 + k 23 l32 k 31l12 + k 32 l 22 + k 33 l32
k11l13 + k12 l 23 + k13 l33 ⎤ k 21l13 + k 22 l 23 + k 23l33 ⎥⎥ k 31l13 + k 32 l 23 + k 33 l33 ⎥⎦
3. Perkalian Matriks dan Skalar Jika k adalah skalar dan M adalah matriks, maka kM merupakan perkalian antara skalar k dengan masing – masing elemen matriks M.
>> M = [m11 m12 m13;m21 m22 m23;m31 m32 m33] M = ⎡ m11 ⎢m ⎢ 21 ⎢⎣ m31
m12 m22 m32
m13 ⎤ m23 ⎥⎥ m33 ⎥⎦
>> k = k k =
Universitas Sumatera Utara
31
k >>k*M ans = ⎡ k .m11 ⎢k .m ⎢ 21 ⎢⎣ k .m31
k .m12 k .m22 k .m32
k .m13 ⎤ k .m23 ⎥⎥ k .m33 ⎥⎦
k = skalar 4. Operasi Perpangkatan Matriks Ada dua operator yang digunakan dalam perpangkatan matriks, yaitu ” ^ ” dan ” .^ ” . Jika A^n maka berarti An, yaitu A*A*A . . .A sebanyak n kali. Untuk melakukan operasi perpangkatan matriks, syaratnya adalah matriks harus persegi ( baris dan kolom memiliki ukuran yang sama ). Jika A.^n, berarti masing – masing elemen matriks A dipangkatkan n. Operator bentuk kedua tidak memerlukan syarat matriks persegi.
>> A = [a11 a12 a13;a21 a22 a23;a31 a32 a33] A = ⎡ a11 ⎢a ⎢ 21 ⎢⎣ a31
a13 ⎤ a 23 ⎥⎥ a33 ⎥⎦
a12 a 22 a32
>>A.^4 ans =
⎡ (a11 ) 4 ⎢ 4 ⎢(a 21 ) ⎢(a31 ) 4 ⎣
(a12 ) 4 (a 22 ) 4 (a32 ) 4
(a13 ) 4 ⎤ ⎥ (a 23 ) 4 ⎥ (a33 ) 4 ⎥⎦
>>A^4 ans =
⎡ a11 A^4 = ⎢⎢a 21 ⎢⎣ a31
a12 a 22 a32
a13 ⎤ a 23 ⎥⎥ a33 ⎥⎦
⎡ a11 ⎢a ⎢ 21 ⎢⎣a31
a12 a 22 a 32
a13 ⎤ a 23 ⎥⎥ a33 ⎥⎦
⎡ a11 ⎢a ⎢ 21 ⎢⎣ a31
a12 a 22 a32
a13 ⎤ a 23 ⎥⎥ a33 ⎥⎦
⎡ a11 ⎢a ⎢ 21 ⎢⎣a31
a12 a 22 a 32
a13 ⎤ a 23 ⎥⎥ a33 ⎥⎦
Universitas Sumatera Utara
32
5. Determinan Matriks Determinan merupakan nilai skalar sebuah matriks persegi. >> M = [ m11 m12 m13;m21 m22 m23;m31 m32 m33 ] M =
⎡ m11 ⎢m ⎢ 21 ⎢⎣ m31
m12 m22 m32
m13 ⎤ m23 ⎥⎥ m33 ⎥⎦
>>det(M) ans = x ( x = Determinan matriks M )
6. Invers Matriks Sebuah matriks persegi M dikatakan mempunyai invers jika terdapat matriks X sedemikian rupa sehingga M.X = X.M = I, dimana I adalah matriks identitas dan X = M-1 sebagai invers matriks M. Syarat lain adalah det(M) ≠ 0. >> inv(M) ans = ⎡C11 ⎢C ⎢ 21 ⎢⎣C 31
C12 C 22 C 32
C13 ⎤ C 23 ⎥⎥ C 33 ⎥⎦
dimana Cij = entri – entri dari invers matriks M (i, j = 1, 2, 3)
7. Transpose Matriks Transpose suatu matriks A adalah sebuah matriks yang diperoleh dengan mengubah baris menjadi kolom atau sebaliknya : A(ij ) = A( ji ) . >> A = [a11 a12 a13;a21 a22 a23;a31 a32 a33] A = ⎡ a11 ⎢a ⎢ 21 ⎢⎣ a31
a12 a 22 a32
a13 ⎤ a 23 ⎥⎥ a33 ⎥⎦
Universitas Sumatera Utara
33
>>A’ ans =
⎡ a11 ⎢a ⎢ 12 ⎢⎣ a13
a 21 a 22 a 23
a31 ⎤ a32 ⎥⎥ a33 ⎥⎦
⎡ a11 ⎢a ⎢ 21 ⎢⎣ a31
a12
a13 ⎤ a 23 ⎥⎥ a33 ⎥⎦
>>A’’ ans = a 22 a32
Dapat dilihat bahwa (A’)’ = A, artinya sebuah matiks yang telah mengalami proses transpose, kemudian di transpose kembali, akan menghasilkan matriks aslinya sendiri.
Universitas Sumatera Utara