INVERS MATRIK DAN ELIMINASI GAUSS Dr. Eng. Supriyanto, M.Sc Lab. Komputer, Departemen Fisika, Universitas Indonesia email: supri@fisika.ui.ac.id atau supri92@gmail.com 5 Februari 2005 Secara umum, sistem persamaan linear adalah sebagai berikut: a 11 x 1 + a 12 x 2 +...+ a 1n x n = b 1 a 21 x 1 + a 22 x 2 +...+ a 2n x n = b 2... =...... =... a n1 x 1 + a n2 x 2 +...+ a nn x n = b n Sistem persamaan linear tersebut dapat dinyatakan dalam bentuk operasi matrik, Ax = b (1) sehingga bentuknya menjadi seperti ini: a 11 a 12... a 1n a 21 a 22... a 2n... x 1 x 2. = b 1 b 2. a n1 a n2... a nn x n b n dimana A = a 11 a 12... a 1n a 21 a 22... a 2n..., x = x 1 x 2., b = b 1 b 2. a n1 a n2... a nn x n b n 1
Dalam kaitannya dengan invers matrik, matrik A disebut matrik non-singular jika matrik A memiliki matrik invers dirinya yaitu A 1. Atau dengan kata lain, matrik A 1 adalah invers dari matrik A. Jika matrik A tidak memiliki invers, maka matrik A disebut singular. Bila matrik A dikalikan dengan matrik A 1 maka akan menghasilkan matrik identitas I, yaitu suatu matrik yang elemen-elemen diagonalnya bernilai 1. 1 0... 0 AA 1 0 1... 0 = I =. (2)..... 0 0... 1 Misalnya diketahui, A = 1 2 1 2 1 0 1 1 2, A 1 = 1 1 2 5 1 9 9 9 1 2 9 9 9 1 1 1 Bila keduanya dikalikan, maka akan menghasilkan matrik identitas, 1 2 1 2 5 1 1 0 0 9 9 9 AA 1 = 2 1 0 1 2 9 9 9 = 0 1 0 1 1 2 0 0 1 Lalu bagaimana cara mendapatkan matrik invers, A 1? Persamaan (2) bisa dijadikan pedoman.. AA 1 = I 1 2 1 i 11 i 12 i 1 1 0 0 2 1 0 i 21 i 22 i 2 = 0 1 0 1 1 2 i 1 i 2 i 0 0 1 dalam hal ini matrik A 1 adalah A 1 = i 11 i 12 i 1 i 21 i 22 i 2 i 1 i 2 i Elemen-elemen matrik invers, A 1 dapat diperoleh dengan menerapkan metode eliminasi gauss. Diawali dengan membentuk matrik augment: 1 2 1 1 0 0 2 1 0 0 1 0 1 1 2 0 0 1 2 1
Lalu dilanjutkan dengan proses triangularisasi: (P 2 2P 1 ) (P 2 ) dan (P + P 1 ) (P ), kemudian diikuti oleh (P + P 2 ) (P ): 1 2 1 1 0 0 1 2 1 1 0 0 0 2 2 1 0 0 2 2 1 0 0 1 1 0 1 0 0 1 1 1 Langkah berikutnya, matrik augment yang telah mengalami triangularisasi tersebut dipecah menjadi tiga buah matrik augment seperti berikut ini: 1 2 1 1 1 2 1 0 1 2 1 0 0 2 2 0 2 1 0 2 0 0 0 1 0 0 1 0 0 1 Langkah pamungkasnya adalah melakukan proses substitusi mundur pada ketiga matrik augment di atas, sehingga diperoleh: i 11 = 2 9 i 21 = 9 i 1 = 1 i 12 = 5 9 i 22 = 1 9 i 2 = 1 i 1 = 1 9 i 2 = 2 9 i = 1 Hasil tersebut digabung menjadi sebuah matrik, yaitu matrik A 1, A 1 = 2 5 1 9 9 9 1 2 9 9 9 1 1 1 Keberadaan matrik A 1 bisa digunakan untuk menyelesaikan sistem persamaan linear (mencari nilai x), dengan cara sebagai berikut Ax = b A 1 Ax = A 1 b Ix = A 1 b x = A 1 b () Contoh berikut ini akan menjelaskan prosesnya secara lebih rinci. Misalnya diketahui sistem persamaan linear x 1 +2x 2 x = 2 2x 1 + x 2 = x 1 + x 2 +2x =
Bila dikonversikan kedalam operasi matrik menjadi 1 2 1 x 1 2 2 1 0 x 2 = 1 1 2 Berdasarkan persamaan (), maka elemen-elemen vektor x dapat dicari dengan cara x x = A 1 b x = 2 5 1 9 9 9 1 2 9 9 9 1 1 1 2 = 7 9 1 9 5 Akhirnya diperoleh solusi x 1 = 7/9, x 2 = 1/9, dan x = 5/. Penyelesaian sistem persamaan linear menjadi lebih mudah bila matrik A 1 sudah diketahui. Sayangnya, untuk mendapatkan matrik A 1, diperlukan langkah-langkah, seperti yang sudah dibahas pada contoh pertama di atas, yang berakibat in-efisiensi proses penyelesaian (secara komputasi) bila dibandingkan dengan metode eliminasi gauss untuk memecahkan sistem persamaan linear. Namun bagaimanapun, secara konseptual kita dianjurkan mengetahui cara bagaimana mendapatkan matrik A 1. Saya telah memodifikasi program eliminasi gauss yang terdahulu, untuk keperluan perhitungan matrik invers. Program ini ditulis dengan bahasa fortran, sudah berhasil dikompilasi dalam Linux Debian (g77) dan Windows XP (Visual Fortran). Inilah programnya, DIMENSION A(10,20), D(10,10), X(10) REAL MJI INTEGER TKR, BK, TK, Q =PROGRAM INVERS MATRIK DENGAN ELIMINASI GAUSS= C LANGKAH 1: MEMASUKAN NILAI ELEMEN-ELEMEN MATRIK A WRITE (*, (1X,A) ) JUMLAH PERSAMAAN? READ (*,*) N MASUKAN ELEMEN-ELEMEN MATRIK A M = N + 1 DO 50 I = 1,N
DO 60 J = 1,N WRITE (*, (1X,A,I2,A,I2,A) ) A(,I,,,J, ) = READ (*,*) A(I,J) 60 CONTINUE 50 CONTINUE C LANGKAH 2: MENDEFINISIKAN MATRIK IDENTITAS MENDEFINISIKAN MATRIK IDENTITAS DO 70 I = 1,N DO 80 J = M,N+N A(I,J) = 0 IF (I+N.EQ. J) THEN A(I,J) = 1 END IF 80 CONTINUE 70 CONTINUE C MENAMPILKAN MATRIK AUGMENT WRITE (*, (1X,A) ) MATRIK AUGMENT: DO 110 I = 1,N WRITE (*, (1X,5(F1.8)) ) (A(I,J),J=1,N+N) 110 CONTINUE C MENGHITUNG JUMLAH TUKAR (TKR) POSISI. MULA2 TKR = 0 TKR = 0 C MENGHITUNG JUMLAH OPERASI BAGI/KALI (BK). BK = 0 C MENGHITUNG JUMLAH OPERASI TAMBAH/KURANG (TK). TK = 0 C LANGKAH : MEMERIKSA ELEMEN2 PIVOT DAN PROSES TUKAR POSISI NN = N-1 DO 10 I=1,NN C LANGKAH : MENDEFINISIKAN P P = I 100 IF (ABS(A(P,I)).GE.1.0E-20.OR. P.GT.N) GOTO 200 5
P = P+1 GOTO 100 200 IF(P.EQ.N+1)THEN C MENAMPILKAN PESAN SINGULAR WRITE(*,5) GOTO 00 END IF C LANGKAH 5: PROSES TUKAR POSISI IF(P.NE.I) THEN DO 20 JJ=1,N+N C = A(I,JJ) A(I,JJ) = A(P,JJ) A(P,JJ) = C TKR = TKR + 1 20 CONTINUE END IF C LANGKAH 6: PERSIAPAN PROSES TRIANGULARISASI JJ = I+1 DO 0 J=JJ,N C LANGKAH 7: TENTUKAN MJI MJI = A(J,I)/A(I,I) C LANGKAH 8: MELAKUKAN PROSES TRIANGULARISASI DO 0 K=JJ,N+N A(J,K) = A(J,K)-MJI*A(I,K) TK = TK + 1 0 CONTINUE A(J,I) = 0 0 CONTINUE 10 CONTINUE C MENAMPILKAN HASIL TRIANGULARISASI WRITE (*, (1X,A) ) HASIL TRIANGULARISASI: DO 120 I = 1,N 6
WRITE (*, (1X,5(F1.8)) ) (A(I,J),J=1,N+N) 120 CONTINUE C LANGKAH 9: MEMERIKSA ELEMEN A(N,N) IF(ABS(A(N,N)).LT.1.0E-20) THEN C MENAMPILKAN PESAN SINGULAR WRITE(*,5) GOTO 00 END IF DO 500 J = 1,N Q=N+J C LANGKAH 10: MENGHITUNG A(N,N) D(J,N) = A(N,Q)/A(N,N) C LANGKAH 11: PROSES SUBSTITUSI MUNDUR L = N-1 DO 15 K=1,L I = L-K+1 JJ = I+1 SUM = 0.0 DO 16 KK=JJ,N SUM = SUM+A(I,KK)*D(J,KK) TK = TK + 1 16 CONTINUE D(J,I) = (A(I,Q)-SUM)/A(I,I) TK = TK + 1 15 CONTINUE 500 CONTINUE C LANGKAH 12: MENAMPILKAN HASIL PERHITUNGAN WRITE (*, (1X,A) ) MATRIK INVERS: DO 220 I = 1,N WRITE (*, (1X,5(F1.8)) ) (D(J,I),J=1,N) 7
220 CONTINUE WRITE(*,8) TKR WRITE(*,9) BK WRITE(*,11) TK 00 STOP 5 FORMAT(1X, MATRIK A BERSIFAT SINGULAR ) 8 FORMAT(1X, JUMLAH TUKAR POSISI =,X,I5) 9 FORMAT(1X, JUMLAH OPERASI BAGI/KALI =,X,I6) 11 FORMAT(1X, JUMLAH OPERASI JUMLAH/KURANG =,X,I6) END Saya cukupkan sementara sampai disini. Insya Allah akan saya sambung lagi dilain waktu. Kalau ada yang mau didiskusikan, silakan hubungi saya melalui email. 8