Praktikum Metode Komputasi (Matriks dalam Scilab) Vina Apriliani December 17, 2015 Soal Latihan MATLAB Bab 2 Buku Leon ’Aljabar Linear’ Berikut 1 Soal Latihan MATLAB Bab 2 Buku Leon ’Aljabar Linear’ yang saya ambil untuk ditulis dengan LaTeX dan harus dikerjakan (2 digit terakhir NRP modulo jumlah soal di Latihan) yaitu Soal Nomor (6): Gunakan MATLAB untuk membuat matriks A dengan mendefinisikan A = vander(1:6); A = A - diag(sum(A’)) a Dengan konstruksi di atas entri-entri dalam setiap baris dari A semuanya harus memiliki jumlah nol. Untuk memeriksa hal ini, definisikan x = ones(6,1) dan gunakan MATLAB untuk menghitung hasil kali Ax. Matriks A pasti singular. Mengapa? Terangkan. Gunakan fungsi-fungsi MATLAB det dan inv untuk menghitung nilai-nilai dari det(A) dan A−1 . Fungsi MATLAB yang mana yang merupakan petunjuk yang dapat lebih diandalkan untuk singularitas? Jawaban: MATLAB: A = vander(1:6) 1 1 1 1 1 1 32 16 8 4 2 1 243 81 27 9 3 1 A= 1024 256 64 16 4 1 3125 625 125 25 5 1 7776 1296 216 36 6 1 MATLAB: A = A - diag(sum(A’)) −5 1 1 32 −47 8 243 81 −337 A= 1024 256 64 3125 625 125 7776 1296 216 1
1 4 9 −1349 25 36
1 2 3 4 −3901 6
1 1 1 1 1 −9330
MATLAB: x = ones(6,1) 1 1 1 x= 1 1 1 0 0 0 Ax = 0 0 0 Matriks A pasti singular karena setiap baris dari matriks A memiliki jumlah nol. Jika menggunakan fungsi invers pada MATLAB, maka hasil outputnya Warning (close to singular or badly scaled). MATLAB: det(A) = 10.2645 MATLAB: A−1 = inv(A) = Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 1.940578e-019. −7.0369 −0.2840 −0.0301 −0.0063 −0.0020 −0.0008 −7.0369 −0.2840 −0.0301 −0.0063 −0.0020 −0.0008 −7.0369 −0.2840 −0.0301 −0.0063 −0.0020 −0.0008 1.0e+013∗ −7.0369 −0.2840 −0.0301 −0.0063 −0.0020 −0.0008 −7.0369 −0.2840 −0.0301 −0.0063 −0.0020 −0.0008 −7.0369 −0.2840 −0.0301 −0.0063 −0.0020 −0.0008 Fungsi MATLAB yang merupakan petunjuk yang dapat lebih diandalkan untuk singularitas adalah invers (inv) karena suatu matriks A dikatakan singular jika tidak memiliki invers atau det(A) = 0. Dari soal di atas, terlihat bahwa walaupun det(A) tidak sama dengan nol, namun inversnya tidak ada, sehingga A adalah matriks singular (jadi jangan hanya melihat dari determinannya saja). Selain itu, dapat juga dengan cara menghitung bentuk eselon baris tereduksi dari matriks tersebut untuk memeriksa singularitasnya. b Gunakan MATLAB untuk menghitung det(AT ). Apakah nilai-nilai yang dihitung untuk det(A) dan det(AT ) sama? satu cara lain untuk memeriksa apakah suatu matriks adalah singular ialah menghitung bentuk eselon baris tereduksinya. Gunakan MATLAB untuk menghitung bentuk-bentuk eselon baris tereduksi dari A dan AT . Jawaban: MATLAB: det(AT ) = -0.0736 2
Nilai-nilai yang dihitung untuk det(A) dan det(AT ) tidak sama. MATLAB: Bentuk eselon baris tereduksi dari A: 1 0 0 0 0 −1 0 1 0 0 0 −1 0 0 1 0 0 −1 eselonA = rref (A) = 0 0 0 1 0 −1 0 0 0 0 1 −1 0 0 0 0 0 0 MATLAB: Bentuk eselon baris tereduksi dari AT : 0.0010 0 0 0.0010 0 0 0 eselonAT = rref (A ) = 1.0e+003∗ 0 0 0 0 0 0
0 0 0.0010 0 0 0
0 0 0 0 0 0 0.0010 0 0 0.0010 0 0
−8.9213 −0.3601 −0.0381 −0.0080 −0.0025 0
c Definisikan B = A*A’. Nilai eksak dari det(B) harus sama dengan 0. Mengapa? Terangkan. Gunakan MATLAB untuk menghitung det(B). Apakah nilai yang dihitung untuk determinan sama atau hampir sama dengan nilai eksak? Hitunglah bentuk eselon baris tereduksi dari B untuk memeriksa bahwa matriks B adalah memang betul singular. Jawaban: B = A*A’ 30 −192 −1458 −6144 −18750 −46656 −192 3318 1316 15861 63924 180474 −1458 1316 179270 235872 756398 1912764 B= −6144 15861 235872 2938026 3318672 8250354 −18750 63924 756398 3318672 25390302 25105164 −46656 180474 1912764 8250354 25105164 149242680 Nilai eksak dari det(B) harus sama dengan 0 karena matriks B diperoleh dari perkalian matriks A dengan transposenya. MATLAB: det(B) = 0 Nilai yang dihitung untuk determinan sama dengan nilai eksak. Bentuk eselon baris tereduksi dari B: 0.0010 0 0 0 0 0 0.0010 0 0 0 0 0 0.0010 0 0 eselonB = rref (B) = 1.0e+003∗ 0 0 0 0.0010 0 0 0 0 0 0.0010 0 0 0 0 0 MATLAB: rank(rref(B)) = 5 Terlihat bahwa eselon baris tereduksi dari matriks B memiliki rank(rref(B)) 3
−8.9213 −0.3601 −0.0381 −0.0080 −0.0025 0
= 5, lebih kecil dari ukurannya (n = 6) sehingga matriks B adalah memang betul matriks singular.
Berikut Modifikasi Soal Nomor (6) menjadi soal untuk dikerjakan dalam Scilab: Gunakan SCILAB untuk membuat matriks A dengan mendefinisikan A = [1:6]’; A = [A.5 A.4 A.3 A.2 A.1 A.0 ]; A = A − diag(sum(A0 , ”r”)) a Dengan konstruksi di atas entri-entri dalam setiap baris dari A semuanya harus memiliki jumlah nol. Untuk memeriksa hal ini, definisikan x = ones(6,1) dan gunakan SCILAB untuk menghitung hasil kali Ax. Matriks A pasti singular. Mengapa? Terangkan. Gunakan fungsi-fungsi SCILAB det dan inv untuk menghitung nilai-nilai dari det(A) dan A−1 . Fungsi SCILAB yang mana yang merupakan petunjuk yang dapat lebih diandalkan untuk singularitas? Jawaban: SCILAB: A = [1:6]’ 1 2 3 A= 4 5 6 5 4 3 2 1 0 SCILAB: ] A = [A. A. A. A. A. A. 1 1 1 1 1 1 32 16 8 4 2 1 243 81 27 9 3 1 A= 1024 256 64 16 4 1 3125 625 125 25 5 1 7776 1296 216 36 6 1
SCILAB : A = A − diag(sum(A0 , ”r”)) −5 1 1 1 1 32 −47 8 4 2 243 81 −337 9 3 A= 1024 256 64 −1349 4 3125 625 125 25 −3901 7776 1296 216 36 6
4
1 1 1 1 1 −9330
SCILAB : x = ones(6, 1) 1 1 1 x= 1 1 1 0 0 0 Ax = 0 0 0
Matriks A pasti singular karena setiap baris dari matriks A memiliki jumlah nol. Jika menggunakan fungsi invers pada SCILAB, maka hasil outputnya Warning (close to singular or badly scaled). SCILAB: det(A) = 10.264473 SCILAB: A−1 = inv(A) = Warning: matrix is close to singular or badly scaled. rcond = 1.9406D-19. −703.68744 −28.402179 −3.0063022 −0.6316851 −0.1980289 −703.68744 −28.402179 −3.0063022 −0.6316851 −0.1980289 11 −703.68744 −28.402179 −3.0063022 −0.6316851 −0.1980289 10 ∗ −703.68744 −28.402179 −3.0063022 −0.6316851 −0.1980289 −703.68744 −28.402179 −3.0063022 −0.6316851 −0.1980289 −703.68744 −28.402179 −3.0063022 −0.6316851 −0.1980289 Fungsi SCILAB yang merupakan petunjuk yang dapat lebih diandalkan untuk singularitas adalah invers (inv) karena suatu matriks A dikatakan singular jika tidak memiliki invers atau det(A) = 0. Dari soal di atas, terlihat bahwa walaupun det(A) tidak sama dengan nol, namun inversnya tidak ada, sehingga A adalah matriks singular (jadi jangan hanya melihat dari determinannya saja). Selain itu, dapat juga dengan cara menghitung bentuk eselon baris tereduksi dari matriks tersebut untuk memeriksa singularitasnya. b Gunakan SCILAB untuk menghitung det(AT ). Apakah nilai-nilai yang dihitung untuk det(A) dan det(AT ) sama? satu cara lain untuk memeriksa apakah suatu matriks adalah singular ialah menghitung bentuk eselon baris tereduksinya. Gunakan SCILAB untuk menghitung bentuk-bentuk eselon baris tereduksi dari A dan AT . Jawaban: SCILAB: det(AT ) = -0.0736358 Nilai-nilai yang dihitung untuk det(A) dan det(AT ) tidak sama. 5
−0.0788773 −0.0788773 −0.0788773 −0.0788773 −0.0788773 −0.0788773
SCILAB: Bentuk eselon baris tereduksi 1 0 0 eselonA = rref (A) = 0 0 0
dari A:
SCILAB: Bentuk eselon baris tereduksi 1 0 0 1 0 0 eselonAT = rref (A0 ) = 0 0 0 0 0 0
dari AT :
0 1 0 0 0 0
0 0 1 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 1 0
−1 −1 −1 −1 −1 0
−8921.287 −360.0803 −38.113633 −8.0084476 −2.5105928 0
c Definisikan B = A*A’. Nilai eksak dari det(B) harus sama dengan 0. Mengapa? Terangkan. Gunakan SCILAB untuk menghitung det(B). Apakah nilai yang dihitung untuk determinan sama atau hampir sama dengan nilai eksak? Hitunglah bentuk eselon baris tereduksi dari B untuk memeriksa bahwa matriks B adalah memang betul singular. Jawaban: B = A*A’ 30 −192 −1458 −6144 −18750 −46656 −192 3318 1316 15861 63924 180474 −1458 1316 179270 235872 756398 1912764 B= −6144 15861 235872 2938026 3318672 8250354 −18750 63924 756398 3318672 25390302 25105164 −46656 180474 1912764 8250354 25105164 1.492D + 08 Nilai eksak dari det(B) harus sama dengan 0 karena matriks B diperoleh dari perkalian matriks A dengan transposenya. SCILAB: det(B) = 0 Nilai yang dihitung untuk determinan sama dengan nilai eksak. Bentuk eselon baris tereduksi dari B: 1 0 0 0 0 −8921.287 0 1 0 0 0 −360.0803 0 0 1 0 0 −38.113633 eselonB = rref (B) = 0 0 0 1 0 −8.0084476 0 0 0 0 1 −2.5105928 0 0 0 0 0 0 SCILAB: rank(rref(B)) = 5 Terlihat bahwa eselon baris tereduksi dari matriks B memiliki rank(rref(B))
6
= 5, lebih kecil dari ukurannya (n = 6) sehingga matriks B adalah memang betul matriks singular.
7