Anda di halaman 1dari 8

INVERS MATRIK DAN ELIMINASI GAUSS

Penulis: Supriyanto, email: supri@sika.ui.ac.id Staf Lab. Komputer, Departemen Fisika, Universitas Indonesia

Secara umum, sistem persamaan linear adalah sebagai berikut: a11 x1 + a12 x2 + . . . + a1n xn = b1 a21 x1 + a22 x2 + . . . + a2n xn = b2 ............... = ... ............... = ... an1 x1 + an2 x2 + . . . + ann xn = bn Sistem persamaan linear tersebut dapat dinyatakan dalam bentuk operasi matrik, Ax = b sehingga bentuknya menjadi seperti ini: a a . . . a1n 11 12 a21 a22 . . . a2n . . . . . . . . . an1 an2 . . . ann dimana A= a11 a12 . . . a1n a21 a22 . . . . . . . . . a2n . . . , x= x1 x2 . . . xn , b= b1 b2 . . . bn (1)

x1 x2 . . . xn

b1 b2 . . . bn

an1 an2 . . . ann

Dalam kaitannya dengan invers matrik, matrik A disebut matrik non-singular jika matrik A memiliki matrik invers dirinya yaitu A1 . Atau dengan kata lain, matrik A1 adalah invers dari matrik A. Jika matrik A tidak memiliki invers, maka matrik A disebut singular. Bila matrik A dikalikan dengan matrik A1 maka akan menghasilkan matrik identitas I, yaitu suatu matrik yang elemen-elemen diagonalnya bernilai 1. 1 0 ... 0 0 1 ... 0 AA1 = I = . . . . . . .. . . . . 0 0 ... 1 1

(2)

Misalnya diketahui, A=

1 2 1 2 1 1 1

A1 =

0 , 2

2 9 4 9 1 3

5 9 1 9 1 3

1 9 2 9 1 3

Bila keduanya dikalikan, maka akan menghasilkan matrik identitas, 5 2 1 1 0 0 1 2 1 9 9 9 1 2 = 2 1 4 1 AA = 0 1 0 0 9 9 9 1 1 1 0 0 1 1 1 2 3 3 3 Lalu bagaimana cara mendapatkan matrik invers, A1 ? Persamaan (2) bisa dijadikan pedoman.. AA1 = I 1 2 1 2 1 1 1 i11 i12 i13 1 0 0

0 i21 i22 i23 = 0 1 0 0 0 1 2 i31 i32 i33

dalam hal ini matrik A1 adalah i11 i12 i13 i21 i22 i23 = i31 i32 i33

Elemen-elemen matrik invers, A1 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 Lalu dilanjutkan dengan proses triangularisasi: (P2 2P1 )(P2 ) dan (P3 + P1 )(P3 ), kemudian diikuti oleh (P3 + P2 )(P3 ): 1 2 1 | 1 0 0 0 3 2 | 2 1 0 0 3 1 | 1 0 1 2

2 1 |

1 0 0

0 3 0 0

2 | 2 1 0 3 | 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 0 3 0 3 2 | 2 2 | 1 0 3 1 | 1 0 0 3 | 1

1 2 1 | 0 0 3 2 | 0 0 0 3 | 1

Langkah pamungkasnya adalah melakukan proses substitusi mundur pada ketiga matrik augment di atas, sehingga diperoleh:
2 i11 = 9

i12 = i32 =

5 9

i13 = 1 9 i23 = i33 =


2 9 1 3

i21 =

9 4

i22 = 1 9
1 3

i31 = 1 3

Hasil tersebut digabung menjadi sebuah matrik, yaitu matrik A1 , 2 5 1 9 9 9 1 2 4 1 A = 9 9 9 1 1 1 3 3 3 Keberadaan matrik A1 bisa digunakan untuk menyelesaikan sistem persamaan linear (mencari nilai x), dengan cara sebagai berikut Ax = b A1 Ax = A1 b Ix = A1 b x = A1 b (3)

Contoh berikut ini akan menjelaskan prosesnya secara lebih rinci. Misalnya diketahui sistem persamaan linear x1 + 2x2 x3 = 2 2x1 + x2 = 3 x1 + x2 + 2x3 = 4 Bila dikonversikan kedalam operasi matrik menjadi 1 2 1 x1 2 2 1 0 x2 = 3 1 1 2 x3 4 3

Berdasarkan persamaan (3), maka elemen-elemen vektor x dapat dicari dengan cara x = A1 b x= 2 9 4 9 1 3
5 9 1 9 1 3

1 9 2 9 1 3

2 3 = 4

7 9 13 9 5 3

Akhirnya diperoleh solusi x1 = 7/9, x2 = 13/9, dan x3 = 5/3. Penyelesaian sistem persamaan linear menjadi lebih mudah bila matrik A1 sudah diketahui. Sayangnya, untuk mendapatkan matrik A1 , diperlukan langkah-langkah, seperti yang sudah dibahas pada contoh pertama di atas, yang berakibat in-esiensi 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 A1 . Saya telah memodikasi 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 WRITE (*,*) =PROGRAM INVERS MATRIK DENGAN ELIMINASI GAUSS= WRITE (*,*) C LANGKAH 1: MEMASUKAN NILAI ELEMEN-ELEMEN MATRIK A WRITE (*,(1X,A)) JUMLAH PERSAMAAN ? READ (*,*) N WRITE (*,*) WRITE (*,*) 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 50 CONTINUE CONTINUE 4

LANGKAH 2: MENDEFINISIKAN MATRIK IDENTITAS WRITE (*,*) 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 70 C

CONTINUE CONTINUE WRITE (*,*) MENAMPILKAN MATRIK AUGMENT WRITE (*,(1X,A)) MATRIK AUGMENT: DO 110 I = 1,N WRITE (*,(1X,5(F14.8))) (A(I,J),J=1,N+N)

110 C C C C

CONTINUE WRITE (*,*) MENGHITUNG JUMLAH TUKAR (TKR) POSISI. MULA2 TKR = 0 TKR = 0 MENGHITUNG JUMLAH OPERASI BAGI/KALI (BK). BK = 0 MENGHITUNG JUMLAH OPERASI TAMBAH/KURANG (TK). TK = 0 LANGKAH 3: MEMERIKSA ELEMEN2 PIVOT DAN PROSES TUKAR POSISI NN = N-1 DO 10 I=1,NN

C 100

LANGKAH 4: MENDEFINISIKAN P P = I IF (ABS(A(P,I)).GE.1.0E-20 .OR. P.GT.N) GOTO 200 P = P+1 GOTO 100

200 C

IF(P.EQ.N+1)THEN MENAMPILKAN PESAN SINGULAR WRITE(*,5) 5

GOTO 400 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 C CONTINUE END IF LANGKAH 6: PERSIAPAN PROSES TRIANGULARISASI JJ = I+1 DO 30 J=JJ,N C LANGKAH 7: TENTUKAN MJI MJI = A(J,I)/A(I,I) BK = BK + 1 C LANGKAH 8: MELAKUKAN PROSES TRIANGULARISASI DO 40 K=JJ,N+N A(J,K) = A(J,K)-MJI*A(I,K) BK = BK + 1 TK = TK + 1 40 30 10 C CONTINUE A(J,I) = 0 CONTINUE CONTINUE MENAMPILKAN HASIL TRIANGULARISASI WRITE (*,(1X,A)) HASIL TRIANGULARISASI: DO 120 I = 1,N WRITE (*,(1X,5(F14.8))) (A(I,J),J=1,N+N) 120 C C CONTINUE LANGKAH 9: MEMERIKSA ELEMEN A(N,N) IF(ABS(A(N,N)).LT.1.0E-20) THEN MENAMPILKAN PESAN SINGULAR 6

WRITE(*,5) GOTO 400 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) BK = BK + 1 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) BK = BK + 1 TK = TK + 1 16 CONTINUE D(J,I) = (A(I,Q)-SUM)/A(I,I) BK = BK + 1 TK = TK + 1 15 500 C CONTINUE CONTINUE LANGKAH 12: MENAMPILKAN HASIL PERHITUNGAN WRITE (*,*) WRITE (*,(1X,A)) MATRIK INVERS: DO 220 I = 1,N WRITE (*,(1X,5(F14.8))) (D(J,I),J=1,N) 220 CONTINUE WRITE(*,8) TKR WRITE(*,9) BK WRITE(*,11) TK 400 STOP 7

5 8 9 11

FORMAT(1X,MATRIK A BERSIFAT SINGULAR) FORMAT(1X,JUMLAH TUKAR POSISI = ,3X,I5) FORMAT(1X,JUMLAH OPERASI BAGI/KALI = ,3X,I6) FORMAT(1X,JUMLAH OPERASI JUMLAH/KURANG = ,3X,I6) END Saya cukupkan sementara sampai disini. Insya Allah akan saya sambung lagi di-

lain waktu. Kalau ada yang mau didiskusikan, silakan hubungi saya melalui email: supri@f isika.ui.ac.id.