MODUL PRAKTIKUM 6
Determinan dan Sistem Persamaan Linier Determinan sebuah matriks A yang berorde 2 x 2 didefinisikan sebagai
∣
∣
a 11 a12 =a 11 a 22−a 12 a 21 a 21 a 22
A=
Untuk menentukan determinan A dalam Matlab sangat mudah yaitu cukup dengan perintah det(A). Coba lihatlah contoh di bawah ini >> A=[1,2;3,1]; >> det(A) ans = -5 Dengan memahami tentang determinan, maka kita dapat menemukan satu set persamaan simultan linier. Sebagai contoh jika kita memilki satu set persamaan linier 3 x2 y− z=3 x3 y2 z=5 −4 x3 y−5z=1
Untuk memperoleh harga x, y dan z yang memenuhi persamaan tersebut maka •
Tentukan matriks A yaitu ◦
•
3 2 −1 A= 1 3 2 −4 3 −5
Tentukan matriks b yaitu ◦
3 b= 5 1
1
Gunakan operasi bagi kiri untuk memperoleh harga x,y dan z yang
•
memenuhi persamaan tersebut. >> A=[3,2,-1;1,3,2;-4,3,-5]; >> b=[3;5;1]; >> A\b ans = 0.2500 1.3214 0.3929 Ini berarti bahwa x,y dan z masing-masing berharga 0.2500, 1.3214 dan 0.3929.
Invers Matriks Invers matriks A dinotasikan dengan A-1. Hubungan antara keduanya dapat dinyatkan AA−1= A−1 A= I dimana I merupakan matriks identitas. Misalnya kita memiliki tiga persamaan linier simultan a11 xa12 ya 13 z =b1 a 21 xa 22 y a 23 z =b 2 a31 xa 32 ya 33 z =b3 maka kita dapat menyederhanakan dalam bentuk matriks
a11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33
b1 x = y b2 z b3
atau disingkat menjadi A X =b Untuk memperoleh harga X
2
A−1 A X =A−1 b −1 X =A b dimana A-1A=I Contoh Selesaikan sistem persamaan linier berikut ini. 3 x2 y− z=3 x3 y2 z=5 −4 x3 y−5z=1
Penyelesaian >> A=[3,2,-1;1,3,2;-4,3,-5]; >> b=[3;5;1]; >> X=inv(A)*b X= 0.2500 1.3214 0.3929 Kita dapat lihat bahwa penyelesaian ini persis sama dengan penyelesaian sebelumnya. Dalam contoh di atas memang benar bahwa A-1A=I. >> A=[3,2,-1;1,3,2;-4,3,-5]; >> inv(A); >> inv(A)*A ans = 1.0000 -0.0000
0
0
1.0000 -0.0000
0
0.0000
1.0000
Kalau kita perhatikan hasil perkalian A-1A mengandung suku -0.000. Apa yang terjadi sebenarnya?
Dalam hal ini kita hasrus ingat bahwa
didalam 3
perhitungan
numerik
terdapat
beberapa
kesalahan
hasil
perhitungan
diantaranya adalah kesalahan pembulatan. Oleh sebab itu, hasil yang diperoleh merupakan pendekatan, namun begitu akurasi dapat diandalkan.
Dekomposisi Matriks Matlab mampu dengan cepat melakukan dekomposisi matriks LU,QR maupun SVD. Dalam pasal ini kita akan lihat bagaimana dekomposisi LU (Lower Upper) dapat digunakan untuk menyelesaikan persamaan simultan linier. Untuk mendapatkan hasil dekomposisi matriks dengan Matlab perintahnya adalah [L,U]=lu(A), dimana L adalah matriks Lower (bawah) dan U adalah matriks Upper (atas). Sebagai contoh kita akan melakukan dekomposisi terhadap matriks
3 2 −1 A= 1 3 2 −4 3 −5 Penyelesaian >> A=[3,2,-1;1,3,2;-4,3,-5]; >> [L,U]=lu(A) L= -0.7500
1.0000
0
-0.2500
0.8824
1.0000
1.0000
0
0
U= -4.0000
3.0000 -5.0000
0
4.2500 -4.7500
0
0
4.9412
Setelah kita peroleh matriks L dan U, selanjutnya akan kita gunakan untuk menyelesaikan persamaan simultan linier seperti contoh di pasal sebelumnya. 4
Jika
3 b= 5 1
maka penyelesaian dapat diperoleh dengan dua kali bagi kiri, yaitu X=L\(U\b) Kita dapatkan >> A=[3,2,-1;1,3,2;-4,3,-5]; >> b=[3;5;1]; >> [L,U]=lu(A); >> X=U\(L\b) X= 0.2500 1.3214 0.3929
Operator Colon (titik dua) Operator colon merupakan operator yang powerful dalam Matlab dan memberikan cara yang efisien dalam menghendel matriks.
Menyederhanakan ungkapan matriks. Untuk menyatakan metriks a a= 1
2
3
4
3
4
5
6
5
6
7
8
7
8
9
10
dapat dinyatkan dengan cara sederhana dengan
5
>> a=[1:4;3:6;5:8;7:10];
Mengakses elemen matriks
Untuk menampilkan seluruh elemen pada baris ketiga, dapat dinyatakan >> a(3,:) ans = 5
6
7
8
Untuk menampilkan elemen mariks pada seluruh kolom pertama dan kedua saja, misalnya dapat dinyatakan dengan >> a(:,[1 2]) ans =
1
2
3
4
5
6
7
8
Untuk menampilkan seluruh elemen pada baris ketiga dan keempat saja dapat dinyatakan >> a([3 4],:) ans =
5
6
7
8
7
8
9
10
Untuk mengakses elemen matriks a yang berada pada baris ke 1 dan 2 dan kolom 3 dan 4 dapat dinyatakan dengan >> a(1:2,3:4) ans = 3
4
5
6 6
Jika kita menginginkan mengganti seluruh elemen matriks pada baris ke 2,3 dan4 dan kolom 1,2 dan 3 dengan elemen-elemen berharga 1. >> a(2:4,1:3)=ones(3) a=
1
2
3
4
1
1
1
6
1
1
1
8
1
1
1
10
Kita dapat membuat tabel dengan menggunkan operator colon. Contoh, kita ingin membuat tabel sinus dan cosinus dari sudut tertentu, misalnya dibuat kelipatan 30o >> x=[0:30:180]'; >> trig(:,1)=x; >> trig(:,2)=sin(pi/180*x); >> trig(:,3)=cos(pi/180*x); >> trig trig = 0
0
1.0000
30.0000
0.5000
0.8660
60.0000
0.8660
0.5000
90.0000
1.0000
0.0000
120.0000
0.8660 -0.5000
150.0000
0.5000 -0.8660
180.0000
0.0000 -1.0000
Operator colon dapat digunakan untuk operasi elemen-elemen pada metode eliminasi Gauss.
7
>> a=[-1,1,2,2;8,2,5,3;10,-4,5,3;7,4,1,-5]; >> a(2,:)=a(2,:)-a(2,1)/a(1,1)*a(1,:) a= -1.00 0
1.00 10.00
10.00
-4.00
7.00
4.00
2.00
2.00
21.00
19.00
5.00 1.00
3.00 -5.00
>> a(3,:)=a(3,:)-a(3,1)/a(1,1)*a(1,:) a= -1.00
1.00
2.00
2.00
0
10.00
21.00
19.00
0
6.00
25.00
23.00
1.00
-5.00
7.00
4.00
>> a(4,:)=a(4,:)-a(4,1)/a(1,1)*a(1,:) a= -1.00
1.00
2.00
2.00
0
10.00
21.00
19.00
0
6.00
25.00
23.00
0
11.00
15.00
9.00
>> a(3,:)=a(3,:)-a(3,2)/a(2,2)*a(2,:) a= -1.00
1.00
0
10.00
0
0
0
11.00
2.00
2.00
21.00
19.00
12.40 15.00
11.60 9.00
>> a(4,:)=a(4,:)-a(4,2)/a(2,2)*a(2,:)
8
a= -1.00
1.00
2.00
2.00
21.00
19.00
0
10.00
0
0
12.40
11.60
0
0
-8.10
-11.90
>> a(4,:)=a(4,:)-a(4,3)/a(3,3)*a(3,:) a= -1.00
1.00
2.00
2.00
21.00
19.00
0
10.00
0
0
12.40
0
0
0
11.60 -4.32
Kata kunci end dapat menyatakan elemen paling akhir dari sebuah matriks. Misal, kita memiliki sebuah vektor >> a=[1:6] a= 1
2
3
4
5
6
>> a(end) ans = 6 >> sum(a(2:end)) ans = 20
Operator colon juga dapat berfungsi sebagai subscript tunggal. Dalam kasus ini, operator ini akan berperilaku lain ketika berada di ruas kiri dan ruas kanan. Ketika berada di ruas kanan, operator colon akan menampilkan seluruh elemen dalam format kolom.
9
>> a=[1,2,3;2,3,4]; >> b=a(:) b= 1 2 2 3 3 4 Sedangkan, ketika berada di ruas kiri operator colon akan mereshapes matriks a yang sebeleumnya sudah ada. a(:) menyatakan matriks dengan dimensi (orde) yang sama dengan a tetapi konten elemen diambil dari matriks pada ruas kanan. >> b=[1,2,3,3;4,5,6,7] b= 1
2
3
3
4
5
6
7
>> a=zeros(4,2) a= 0
0
0
0
0
0
0
0
>> a(:)=b a= 1
3
10
4
6
2
3
5
7
Sebagai kasus khusus, operator colon dapat digunakan untuk mengganti seluruh elemen matriks. >> a=[1:4;5:8] a= 1
2
3
4
5
6
7
8
>> a(:)=-1 a= -1
-1
-1
-1
-1
-1
-1
-1
Menggandakan baris dan kolom Kadang-kadang kita perlu membangkitkan kembali elemen-elemen yang ada pada baris atau kolom karena kebetulan elemen-elemen yang pada baris/kolom berikutnya sama. Kita dapat menggunakan perintah repmat untuk menggandakan baris/kolom tersebut. >> a=[1;2;3]; >> b=repmat(a,[1 3]) b= 1
1
1
2
2
2
3
3
3
Hasil di atas (matriks b) dibangkitkan dari vektor a yang berdimensi 3 x 1
11
menjadi matriks b yang berdimensi 3 x 3. Perintah repmat(a,[1 3]) berarti gandakan sebanyak 1 baris dan 3 kolom dari matriks a. >> c=repmat(a,[2 1]) c= 1 2 3 1 2 3 Perintah repmat(a,[2 1]) berarti gandakan sebanyak 2 baris dan 1 kolom dari matriks a. Perintah alternatif yang dapat digunakan, misalnya repmat (a,[1 3]) dapat dinyatakan dengan repmat(a,1,3) dan repmat (a,[2 1]) bisa dinyatakan dengan repmat(a,2,1).
Menghapus baris dan kolom matriks Kita dapat menggunakan operator colon dan larik kosong [ ] untuk menghapus elemen matriks di kolom maupun di baris. >> b=[1,2,3;3,4,5;6,7,8] b= 1
2
3
3
4
5
6
7
8
>> b(:,2)=[] b= 1
3 12
3
5
6
8
Kalau yang akan dihapus adalah elemen matriks b pada kolom 2 dan 3, maka >> b=[1,2,3;3,4,5;6,7,8]; >> b(:,[2 3])=[] b= 1 3 6 Demikian pula, jika kita akan menghapus elemen matriks b pada kolom 2 dan 3, maka >> b=[1,2,3;3,4,5;6,7,8]; >> b([2 3],:)=[] b= 1
2
3
Manipulasi matriks Di bawah ini diberikan beberapa fungsi untuk manipulasi matriks, antara lain
diag, fungsi ini digunakan untuk membuat matriks diagonal. Jika kita memiliki sebuah vektor v, maka diag(v) akan menghasilkan matriks diagonal dengan elemen diagonal adalah elemen-elemen pada v. >> v=[1:4]; >> diag(v) ans = 1
0
0
0 13
0
2
0
0
0
0
3
0
0
0
0
4
Untuk menggeser diagonal ke kanan atau ke bawah, digunakan perintah diag(v,b) yang akan menggeser kekanan atau ke bawah sebesar b kolom. >> diag(v,2) ans = 0
0
1
0
0
0
0
0
0
2
0
0
0
0
0
0
3
0
0
0
0
0
0
4
0
0
0
0
0
0
0
0
0
0
0
0
>> diag(v,-2) ans =
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
2
0
0
0
0
0
0
3
0
0
0
0
0
0
4
0
0
fliplr, perintah ini digunakan untuk mempertukarkan elemen-elemen matriks yang berada di sebelah kanan dengan elemen-elemen yang berada di sisi kiri.
14
>> a=[1,2,3;4,5,6]' a= 1
4
2
5
3
6
>> fliplr(a) ans = 4
1
5
2
6
3
Kalau a berupa vektor, maka seperti terlihat di bawah ini >> a=[1,2,3,4,5,6] a= 1
2
3
4
5
6
4
3
2
1
>> fliplr(a) ans = 6
5
flipud, fungsi ini digunakan untuk mempertukarkan elemen matriks yang berada di atas dengan yang ada di bawah. >> a=[1,2,3;4,5,6] a= 1
2
3
4
5
6
>> flipud(a) ans = 4
5
6
15
1
2
3
rot90, fungsi ini digunakan untuk merotasikan matriks A sebesar 90o menentang arah dengan arah jarum jam. >> a=[1,2,3;4,5,6] a= 1
2
3
4
5
6
>> rot90(a) ans =
3
6
2
5
1
4
tril, fungsi ini digunakan untuk menentukan elemen segitiga bawah dari matriks tertentu. Sedankan triu, untuk menentukan elemen segitiga atas matriks. >> a=[1,2,3;4,5,6] a= 1
2
3
4
5
6
>> tril(a) ans = 1
0
0
4
5
0
>> triu(a) ans = 1
2
3
16
0
5
6
Fungsi matriks lainnya Masih ada banyak fungsi yang dapat digunakan untuk manipulasi matriks. Beberapa diantaranya
det,fungsi ini digunakan untuk menentukan determinan matriks. Ingat, bahwa matriks yang memimiliki determinan hanyalah matriks bujur sangkar. >> a=[1,2,3;4,3,-2;-1,5,2]; >> det(a) ans = 73
eig, ini digunakan untuk menentukan nilai eigen. >> a=[1,2,3;4,3,-2;-1,5,2]; >> eig(a) ans = 5.5031 0.2485 + 3.6337i 0.2485 – 3.6337i
inv, fungsi ini digunakan untuk melakukan invers matriks seperti telah dijelaskan di atas.
lu, adalah fungsi untuk melakukan dekomposisi matriks menjadi matriks segitiga bawah dan matriks segitiga atas. >> a=[1,2,3;4,3,-2;-1,5,2]; >> [L,U]=lu(a) L= 0.25
0.22
1.00 17
1.00
0
0
-0.25
1.00
0
4.00
3.00
-2.00
U=
0
5.75
0
0
1.50 3.17
Matriks jarang (sparse) Dalam masalah sains dan teknik kita sering menemui permasalahan yang melibatkan ukuran matriks yang sangat besar. Sedangkan elemen-elemen yang berharga tidak sama dengan nol dari matriks tersebut jarang. Bayangkan kalau ukuran matriks sangat besar, misalnya 1000 x 1000 dengan diagonal berharga 2 dan diapit oleh elemen berharga -1. Matlab memberikan cara yang mudah untuk menyatakan jenis matriks semacam ini yaitu dengan menggunakan fungsi sparse. Bentuk umum penggunaan fungsi sparse adalah sparse(baris,kolom,masukan,m,n) Contoh kasus sederhana, jika kita ingin menyatakan matriks ukuran 5 x 5 dengan elemen-elemen seperti di bawah ini
[
2 −1 0 0 0 −1 2 −1 0 0 0 −1 2 −1 0 0 0 −1 2 −1 0 0 0 −1 2
]
maka caranya >> p=sparse(1:5,1:5,2,5,5); >> p=p+sparse(2:5,1:4,-1,5,5); >> p=p+sparse(1:4,2:5,-1,5,5); 18
>> full(p) ans = 2.00
-1.00
0
0
0
-1.00
2.00
-1.00
0
0
0
-1.00
2.00
-1.00
0
0
-1.00
2.00
-1.00
0
0
0
-1.00
2.00
0
Keterangan
Pertama dibuat matriks ukuran 5 x 5 dengan diagonal berharga 2.
kedua ditambahkan pada baris 2 hingga n dan kolom 1 hingga n-1 dengan harga -1.
ketiga, ditambahkan pada kolom 2 hingga n dan baris 1 hingga n-1 dengan19 -1.
19
TUGAS
1. Diketahui dua buah vektor yaitu A=(1 -3 2 5 6) dan B=(4 1
3
5
1)
tentukan (a) magnitud dari masing-masing vektor (b) hasil perkalian antar elemen yang seletak (c) hasil bagi antar elemen yang seletak. 2. Diketahui vektor A=(2+i -3+5i 5 1-3i 2). (a) tentukan transpose matriks A. (b) tentukan transpose konjugat dari matriks A. (c) tentukan magnitud matriks A. 3. Anggaplah kita memiliki bilangan 3,2,3,1 dan 6. Buatlah vektor kolom A dan vektor baris dengan elemen-elemen tersebut. 4. Bagaimanakah untuk memerintahkan Matlab untuk membuat matriks dengan orde 7 x 7 dengan seperti di bawah ini
(a)
3 0 0 A= 0 0 0 0
0 3 0 0 0 0 0
0 0 3 0 0 0 0
0 0 0 3 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 3 0
0 0 0 0 0 0 3
(b)
3 4 5 A= 6 7 8 9
4 3 0 0 0 0 0
5 0 3 0 0 0 0
6 0 0 3 0 0 0
7 0 0 0 0 0 0
8 0 0 0 0 3 0
9 0 0 0 0 0 3
5. Jika diketahui A=[1,2,3,5,3] dan B=[ 4;3;2;5;2]. Tentukan 20
(a) hasil kasil cross vektor A dengan vektor B (b) transpose dari ketor B (c) hasil kali dot vektor A dengan vektor B'. 6. Diketahui dua buah matriks
3 2 −1 2 4 A= −2 1 1 3 2 8 2 −4 3 −5
4 1 −1 2 7 B= 6 3 0 3 6 1 −2 14 2 −5
(a) tentukan hasil perkalian matriks A dengan B. (b) tentukan invers dari matriks A dan invers matriks B. (c) tentukan AA-1 , AB, BB-1 dan A-1B-1. 6. Diketahui empat buah persamaan linier 2p + 3p + 4q -5s =10 p - 5p + 6q – 10s =-2 4p + 2q – 7r – 10s = 9 -2p + 10q + 2r – 4s = 6 (a) tentukan determinan dari matriks koefisien A. (b) tentukan invers matriks koefisien. (c) dapatkan nilai p, q, r dan s. 7. Diketahui satu set persamaan linier sebagai berikut
2 x5 y6 z =7 5 x−6 y2 z=1 −5 x−2 y8 z =−2
(a) gunakan bagi kiri untuk memperoleh x, y dan z. (b) tentukan matriks L dan U dengan mendekomposisi matriks koefisien A. (c) dapatkan hasilnya setelah matriks L an U diperoleh. 8.
21
22