Anda di halaman 1dari 14

SISTEM PERSAMAAN LINEAR DAN ELIMINASI GAUSS

Dr. Eng. Supriyanto, M.Sc Lab. Komputer, Departemen Fisika, Universitas Indonesia email: supri@sika.ui.ac.id atau supri92@gmail.com 5 Februari 2005

Abstract Secara umum, catatan ini bermaksud menjelaskan tentang cara penyelesaian problem sistem persamaan linear dengan metode eliminasi gauss. Tapi intinya, catatan ini mengulas konsep dasar metode eliminasi gauss dan algoritmanya serta dilengkapi dengan scriptnya dalam Fortran.

1 Penyederhanaan
Secara umum, sistem persamaan linear dinyatakan sebagai berikut Pn : an1 x1 + an2 x2 + ... + ann xn = bn (1)

dimana a dan b merupakan konstanta, x adalah variable, n = 1, 2, 3, .... Contoh pertama Misalnya ada sistem persamaan linear yang terdiri dari empat buah persamaan yaitu P1 , P2 , P3 , dan P4 seperti berikut ini: P1 : P2 : P3 : P4 : x1 2x1 3x1 x1 + + + x2 x2 x2 2x2 + 1 x3 x3 3x3 + + + 3x4 x4 2x4 x4 = = = = 4 1 -3 4

Problem dari sistem persamaan linear adalah bagaimana mencari nilai pengganti bagi variabel x1 , x2 , x3 , dan x4 sehingga semua persamaan diatas menjadi benar. Langkah awal penyelesaian problem tersebut adalah dengan melakukan penyederhanaan sistem persamaan linear. Ada banyak jalan untuk mendapatkan bentuk yang lebih sederhana, namun masalahnya, kita ingin mendapatkan sebuah algoritma program yang nantinya bisa berjalan di komputer, sedemikian rupa sehingga apapun persamaannya, bisa disederhanakan oleh komputer. Kita akan berpatokan pada tiga buah aturan operasi untuk menyederhanakan sistem persamaan linear di atas, yaitu Persamaan Pi dapat dikalikan dengan sembarang konstanta , lalu hasilnya ditempatkan di posisi persamaan Pi . Simbol operasi ini adalah (Pi) (Pi ). Persamaan Pj dapat dikalikan dengan sembarang konstanta kemudian dijumlahkan dengan persamaan Pi , lalu hasilnya ditempatkan di posisi persamaan P i . Simbol operasi ini adalah (Pi + Pj ) (Pi ). Persamaan Pi dan Pj dapat bertukar posisi. Simbol operasi ini adalah (P i ) (Pj ). Maka dengan berpegang pada aturan-aturan tersebut, problem sistem persamaan linear di atas akan diselesaikan dengan langkah-langkah berikut ini: 1. Gunakan persamaan P1 untuk menghilangkan variabel x1 dari persamaan P2 , P3 dan P4 dengan cara (P2 2P1 ) (P2 ), (P3 3P1 ) (P3 ) dan (P4 + P1 ) (P4 ). Hasilnya akan seperti ini P1 : P2 : P3 : P4 : x1 + x2 + 3x4 = 4, x2 x3 5x4 = 7, 4x2 x3 7x4 = 15, 3x2 + 3x3 + 2x4 = 8

2. Gunakan persamaan P2 untuk menghilangkan variabel x2 dari persamaan P3 dan P4 dengan cara (P3 4P2 ) (P3 ) dan (P4 + 3P2 ) (P4 ). Hasilnya akan seperti ini P1 : P2 : P3 : P4 : 2 x1 + x2 + 3x4 = 4, x2 x3 5x4 = 7, 3x3 + 13x4 = 13, 13x4 = 13

Kalau x3 masih ada di persamaan P4 , dibutuhkan satu operasi lagi untuk menghilangkannya. Namun hasil operasi pada langkah ke-2 ternyata sudah otomatis menghilangkan x3 . Bentuk akhir dari keempat persamaan di atas, dikenal sebagai bentuk triangular. Sampai dengan langkah ke-2 ini, kita berhasil mendapatkan sistem persamaan linear yang lebih sederhana. Apa yang dimaksud dengan sederhana dalam konteks ini? Suatu sistem persamaan linear dikatakan sederhana bila kita bisa mendapatkan seluruh nilai pengganti variabelnya dengan cara yang lebih mudah atau dengan usaha yang tidak memakan waktu lama dibandingkan sebelum disederhanakan. Sekali kita mendapatkan nilai pengganti bagi variabel x 4 , maka x3 , x2 dan x1 akan diperoleh dengan mudah dan cepat, sebagaimana yang dijelaskan pada langkah berikutnya. 3. Selanjutnya kita jalankan proses backward-substitution. Melalui proses ini, yang pertama kali didapat adalah nilai pengganti bagi variabel x 4 , kemudian x3 , lalu diikuti x2 , dan akhirnya x1 . P4 : P3 : P2 : P1 : 13 = 1, 13 1 1 (13 13) = 0, x3 = (13 13x4 ) = 3 3 x2 = (7 + 5x4 + x3 ) = (7 + 5 + 0) = 2, x4 = x1 = 4 3x4 x2 = 4 3 2 = 1

Jadi solusinya adalah x1 = 1, x2 = 2, x3 = 0 dan x4 = 1. Coba sekarang anda cek, apakah semua solusi ini cocok dan tepat bila dimasukan ke sistem persamaan linear yang pertama, yaitu yang belum disederhanakan?

OK, mudah-mudahan ngerti ya... Kalau belum paham, coba diulangi bacanya sekali lagi. Atau, sekarang kita beralih kecontoh yang lain.

Contoh kedua Misalnya ada sistem persamaan linear, terdiri dari empat buah persamaan yaitu P 1 , P2 , P3 , dan P4 seperti berikut ini: P1 : P2 : P3 : P4 : x1 2x1 x1 x1 + x2 x2 x2 + + + + 2x3 3x3 x3 4x3 + 3x4 x4 = = = = -8 -20 -2 4

2x2

3x4

Seperti contoh pertama, solusi sistem persamaan linear di atas akan dicari dengan langkah-langkah berikut ini: 1. Gunakan persamaan P1 untuk menghilangkan x1 dari persamaan P2 , P3 dan P4 dengan cara (P2 2P1 ) (P2 ), (P3 P1 ) (P3 ) dan (P4 P1 ) (P4 ). Hasilnya akan seperti ini P1 : P2 : P3 : P4 : x1 x2 + 2x3 x4 = 8, x3 x4 = 4, 2x2 x3 + x4 = 6, 2x3 + 4x4 = 12

Perhatikan persamaan P2 ! Akibat dari langkah yang pertama tadi, x2 hilang dari persamaan P2 . Kondisi ini bisa menggagalkan proses triangularisasi. Untuk itu, posisi P2 mesti ditukar dengan persamaan yang berada dibawahnya, yaitu P 3 atau P4 . Supaya proses triangularisasi dilanjutkan kembali, maka yang paling cocok adalah ditukar dengan P3 . 2. Tukar posisi persamaan P2 dengan persamaan P3 , (P2 P3 ). Hasilnya akan seperti ini P1 : P2 : P3 : P4 : x1 x2 + 2x3 x4 = 8, 2x2 x3 + x4 = 6, x3 x4 = 4, 2x3 + 4x4 = 12

3. Gunakan persamaan P3 untuk menghilangkan x3 dari persamaan P4 dengan cara (P4 2P3 ) (P4 ). Hasilnya akan seperti ini P1 : P2 : P3 : P4 : x1 x2 + 2x3 x4 = 8, 2x2 x3 + x4 = 6, x3 x4 = 4, 2x4 = 4

Sampai disini proses triangularisasi telah selesai. 4. Selanjutnya adalah proses backward-substitution. Melalui proses ini, yang pertama kali didapat solusinya adalah x4 , kemudian x3 , lalu diikuti x2 , dan akhirnya x1 . P4 : P3 : P2 : P1 : 4 2 4 + x4 x3 = 1 6 + x3 x4 x2 = 2 x1 = 8 + x2 2x3 + x4 x4 = = 2, = 2, = 3, = 7

Jadi solusinya adalah x1 = 7, x2 = 3, x3 = 2 dan x4 = 2. Berdasarkan kedua contoh di atas, untuk mendapatkan solusi sistem persamaan linear, diperlukan operasi triangularisasi dan proses backward-substitution. Kata backwardsubstitution kalau diterjemahkan kedalam bahasa indonesia, menjadi substitusi-mundur. Gabungan proses triangularisasi dan substitusi-mundur untuk menyelesaikan sistem persamaan linear dikenal sebagai metode eliminasi gauss.

2 Matrik dan Eliminasi Gauss


Sejumlah matrik bisa digunakan untuk menyatakan suatu sistem persamaan linear. Sejenak, mari kita kembali lagi melihat sistem persamaan linear secara umum seperti

berikut ini: a11 x1 + a12 x2 + . . . + a1n xn = b1 a21 x1 + a22 x2 + . . . + a2n xn = b2 ............... = ... ............... = ... an1 x1 + an2 x2 + . . . + ann xn = bn Sementara, kalau dinyatakan dalam bentuk operasi matrik, maka akan seperti ini: x1 b1 a11 a12 . . . a1n a21 a22 . . . a2n x2 b2 . . . = . . . . . . . . . . . . an1 an2 . . . ann xn bn

(2)

Dalam mencari solusi suatu sistem persamaan linear dengan metode eliminasi gauss, bentuk operasi matrik di atas dimanipulasi menjadi matrik augment, yaitu suatu matrik yang berukuran n x (n + 1) seperti berikut ini: a . . . a1n a11 a12 . . . a1n | b1 a 11 12 a21 a22 . . . a2n | b2 a21 a22 . . . a2n . = . . . . . . | . . . . . . . . . . . . . . an1 an2 . . . ann | bn an1 an2 . . . ann (3)

| a1,n+1 | a2,n+1 . . . | | an,n+1

Berdasarkan contoh pertama yang ada dihalaman depan catatan ini, saya akan tunjukkan proses triangularisasi dan substitusi-mundur dalam operasi matrik terhadap sistem persamaan linear yang terdiri dari empat persamaan matematika, yaitu (silakan lihat kembali contoh pertama): 1 1 0 3 x1 4

2 1 1 1 3 1 1 2 1 2 3 1

x2 1 x = 3 3 x4 4

Lalu kita dapat membuat matrik augment sebagai berikut: 1 1 0 3 | 4 2 1 1 1 | 1 3 1 1 2 | 3 1 2 3 1 | 4 6

Kemudian kita lakukan operasi triangularisai terhadap matrik augment, dimulai dari kolom pertama, yaitu 0 1 1 5 | 7 0 4 1 7 | 15 0 3 3 2 | 8 lalu dilanjutkan ke kolom berikutnya 1 1 0 0 1 1 3 0 0 0 0 0 1 1 0 3 | 4

7 13 | 13 13 | 13 5 |

Sebelum dilanjutkan ke substitusi-mundur, saya ingin menegaskan peranan angka-angka indeks dari masing-masing elemen matrik augment tersebut. Silakan perhatikan posisi masing-masing elemen berikut ini: 1 1 0 3 | 4 0 1 1 5 | 7 3 13 | 13 0 0 0 0 0

a21 a22 a23 a24 | a25 a31 a32 a33 a34 | a35 a41 a42 a43 a44 | a45 13 | 13

a11 a12 a13 a14 | a15

Dengan memperhatikan angka-angka indeks pada matrik augment di atas, kita akan mencoba membuat rumusan proses substitusi-mundur untuk mendapatkan seluruh nilai pengganti variabel x. Dimulai dari x4 , x4 = a45 13 =1 = a44 13 an,n+1 ann

ini dapat dinyatakan dalam rumus umum, yaitu xn = lalu dilanjutkan dengan x3 , x2 , dan x1 . a35 a34 x4 13 [(13)(1)] =0 = a33 3 a25 (a23 x3 + a24 x4 ) (7) [(1)(0) + (5)(1)] =2 x2 = = a22 (1) a15 (a12 x2 + a13 x3 + a14 x4 ) 4 [(1)(2) + (0)(0) + (3)(1)] x1 = = = 1 a11 1 x3 = 7

ini juga dapat dinyatakan dalam rumus umum yaitu: xi = ai,n+1


n j=i+1 aij xj

aii

Proses triangularisasi dan substitusi-mundur dibakukan menjadi algoritma metode eliminasi gauss yang dapat diterapkan dalam berbagai bahasa pemrograman komputer, misalnya fortran, C, java, pascal, matlab, dan lain-lain.

3 Algoritma eliminasi Gauss


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 Algoritma dasar metode eliminasi gauss, adalah sebagai berikut: 1. Ubahlah sistem persamaan linear tersebut menjadi matrik augment, yaitu suatu matrik yang berukuran n x (n + 1) seperti berikut ini: a . . . a1n | b1 a . . . a1n a a 11 12 11 12 a21 a22 . . . a2n | b2 a21 a22 . . . a2n . . = . . . . . . | . . . . . . . . . . . . . an1 an2 . . . ann | bn an1 an2 . . . ann (4)

| a1,n+1 | a2,n+1 . . . | | an,n+1

Jelas terlihat bahwa elemen-elemen yang menempati kolom terakhir matrik augment adalah nilai dari bi ; yaitu ai,n+1 = bi dimana i = 1, 2, ..., n. 2. Periksalah elemen-elemen pivot. Apakah ada yang bernilai nol? Elemen-elemen pivot adalah elemen-elemen yang menempati diagonal suatu matrik, yaitu a 11 , a22 , ..., ann atau disingkat aii . Jika aii = 0, bisa dilanjutkan ke langkah no.3. Namun, jika ada elemen diagonal yang bernilai nol, aii = 0, maka baris dimana elemen itu berada harus ditukar posisinya dengan baris yang ada dibawahnya, (P i ) (Pj ) dimana j = i + 1, i + 2, ..., n, sampai elemen diagonal matrik menjadi tidak nol,

aii = 0. (Kalau kurang jelas, silakan lihat lagi contoh kedua yang ada dihalaman 3. Sebaiknya, walaupun elemen diagonalnya tidak nol, namun mendekati nol (misalnya 0,03), maka proses pertukaran ini dilakukan juga). 3. Proses triangularisasi. Lakukanlah operasi berikut: Pj dimana j = i + 1, i + 2, ..., n. a11 a12 0 a22 0 0 . . . . . . 0 0 aji Pi Pj aii (5)

Maka matrik augment akan menjadi: a13 . . . a1n | a1,n+1 a23 . . . a2n | a2,n+1 a33 . . . a3n | a3,n+1 . . . .. . . | . . . . . 0 0 ann | an,n+1

(6)

4. Hitunglah nilai xn dengan cara: xn = an,n+1 ann (7)

5. Lakukanlah proses substitusi-mundur untuk memperoleh x n1 , xn2 , ..., x2 , x1 dengan cara: xi = ai,n+1
n j=i+1 aij xj

aii

(8)

dimana i = n 1, n 2, ..., 2, 1. Demikianlan algoritma dasar metode eliminasi gauss. Selanjutnya algoritma dasar tersebut perlu dirinci lagi sebelum dapat diterjemahkan kedalam bahasa pemrograman komputer.

3.1 Algoritma
Algoritma metode eliminasi gauss untuk menyelesaikan n x n sistem persamaan linear. P1 : P2 : . . . Pn : a11 x1 + a12 x2 + . . . + a1n xn = b1 a21 x1 + a22 x2 + . . . + a2n xn = b2 . . . . . . . = . . an1 x1 + an2 x2 + . . . + ann xn = bn 9

INPUT: sejumlah persamaan linear dimana konstanta-konstanta-nya menjadi elemen-elemen matrik augment A = (aij ), dengan 1 i n dan 1 j n + 1. OUTPUT: solusi x1 , x2 , x3 , ..., xn atau pesan kesalahan yang mengatakan bahwa sistem

persamaan linear tidak memiliki solusi yang unik.


Langkah 1: Inputkan konstanta-konstanta dari sistem persamaan linear kedalam elemen-elemen matrik augment, yaitu suatu matrik yang berukuran n x (n + 1) seperti berikut ini: a a . . . a1n 11 12 a 21 a22 . . . a2n . . . . . . . . . an1 an2 . . . ann (9)

| b1 | b2 . | . . | bn

a11 a12 . . . a1n | a1,n+1 a21 a22 . . . a2n | a2,n+1 . . . . . . . | . . . . . an1 an2 . . . ann | an,n+1

Langkah 2: Untuk i = 1, ..., n 1, lakukan Langkah 3 sampai Langkah 5. Langkah 3: Denisikan p sebagai integer dimana i p n. Lalu pastikan bahwa api = 0. Jika ada elemen diagonal yang bernilai nol (aii = 0), maka program harus mencari dan memeriksa elemen-elemen yang tidak bernilai nol dalam kolom yang sama dengan kolom tempat elemen diagonal tersebut berada. Jadi saat proses ini berlangsung, integer i (indeks dari kolom) dibuat konstan, sementara integer p (indeks dari baris) bergerak dari p = i sampai p = n. Bila ternyata setelah mencapai elemen paling bawah dalam kolom tersebut, yaitu saat p = n tetap didapat nilai a pi = 0, maka sebuah pesan dimunculkan: sistem persamaan linear tidak memiliki solusi yang unik. Lalu program berakhir: STOP. Langkah 4: Namun jika sebelum integer p mencapai nilai p = n sudah diperoleh elemen yang tidak nol (api = 0), maka bisa dipastikan p = i. Jika p = i maka lakukan proses pertukaran (Pp ) (Pi ). Langkah 5: Untuk j = i + 1, .., n, lakukan Langkah 6 dan Langkah 7. Langkah 6: Tentukan mji , mji = aji aii

10

Langkah 7: Lakukan proses triangularisasi, (Pj mji Pi ) (Pj ) Langkah 8: Setelah proses triangularisasi dilalui, periksalah ann . Jika ann = 0, kirimkan pesan: sistem persamaan linear tidak memiliki solusi yang unik. Lalu program berakhir: STOP. Langkah 9: Jika ann = 0, lakukan proses substitusi mundur, dimulai dengan menentukan xn , xn = an,n+1 ann
n j=i+1 aij xj

Langkah 10: Untuk i = n 1, ..., 1 tentukan xi , xi = ai,n+1 aii

Langkah 11: Diperoleh solusi yaitu x1 , x2 , ..., xn . Algoritma telah dijalankan dengan sukses. STOP. Saya telah membuat program sederhana dalam fortran untuk mewujudkan algoritma eliminasi gauss. Saya berasumsi bahwa anda sudah menguasai dasar-dasar pemrograman dalam fortran. Program ini sudah dicoba di-compile dengan fortran77 under Linux Debian dan visual-fortran under windows-XP. Langkah-langkah yang tercantum pada program ini disesuaikan dengan langkah-langkah yang tertulis di atas. Dalam program ini, ukuran maksimum matrik augment adalah 10 x 11, untuk mencari 10 variabel yang tidak diketahui. Jika anda bermaksud memperbesar atau memperkecil ukuran matrik augment, silakan sesuaikan angka ukuran matrik yang anda inginkan pada statemen pertama dari program ini, yaitu statemen DIMENSION. Inilah programnya, DIMENSION A(10,11), X(10) REAL MJI WRITE (*,*) =PROGRAM ELIMINASI GAUSS= WRITE (*,*) C LANGKAH 1: MEMASUKAN NILAI ELEMEN-ELEMEN MATRIK AUGMENT WRITE (*,(1X,A)) JUMLAH PERSAMAAN ? READ (*,*) N 11

WRITE (*,*) WRITE (*,*) MASUKAN ELEMEN-ELEMEN MATRIK AUGMENT M = N + 1 DO 50 I = 1,N DO 60 J = 1,M WRITE (*,(1X,A,I2,A,I2,A)) A(,I,,,J,) = READ (*,*) A(I,J) 60 50 C CONTINUE CONTINUE WRITE (*,*) MENAMPILKAN MATRIK AUGMENT WRITE (*,(1X,A)) MATRIK AUGMENT: DO 110 I = 1,N 110 C WRITE (*,(1X,5(F14.8))) (A(I,J),J=1,M) CONTINUE WRITE (*,*) LANGKAH 2: MEMERIKSA ELEMEN-ELEMEN PIVOT DAN PROSES TUKAR POSISI NN = N-1 DO 10 I=1,NN C 100 LANGKAH 3: 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 TIDAK UNIK WRITE(*,5) GOTO 400 END IF C LANGKAH 4: PROSES TUKAR POSISI IF(P.NE.I) THEN DO 20 JJ=1,M C = A(I,JJ) A(I,JJ) = A(P,JJ) 12

A(P,JJ) = C 20 C CONTINUE END IF LANGKAH 5: PERSIAPAN PROSES TRIANGULARISASI JJ = I+1 DO 30 J=JJ,N C C LANGKAH 6: TENTUKAN MJI MJI = A(J,I)/A(I,I) LANGKAH 7: MELAKUKAN PROSES TRIANGULARISASI DO 40 K=JJ,M 40 30 10 C A(J,K) = A(J,K)-MJI*A(I,K) 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,M) 120 C C CONTINUE LANGKAH 8: MEMERIKSA ELEMEN A(N,N) IF(ABS(A(N,N)).LT.1.0E-20) THEN MENAMPILKAN PESAN TIDAK UNIK WRITE(*,5) GOTO 400 END IF C C LANGKAH 9: MENGHITUNG X(N) X(N) = A(N,N+1)/A(N,N) LANGKAH 10: PROSES SUBSTITUSI MUNDUR L = N-1 DO 15 K=1,L I = L-K+1 JJ = I+1 SUM = 0.0 13

DO 16 KK=JJ,N 16 15 C SUM = SUM+A(I,KK)*X(KK) CONTINUE X(I) = (A(I,N+1)-SUM)/A(I,I) CONTINUE LANGKAH 11: MENAMPILKAN HASIL PERHITUNGAN WRITE (*,*) WRITE (*,7) DO 18 I = 1,N WRITE (*,(1X,A,I2,A,F14.8)) X(,I,) = ,X(I) 18 400 5 7 CONTINUE STOP FORMAT(1X,SISTEM LINEAR TIDAK MEMILIKI SOLUSI YANG UNIK) FORMAT(1X,SOLUSI UNIK) END

4 Penutup
Silakan anda coba aplikasikan program di atas dengan berbagai sistem persamaan linear yang pernah dijadikan contoh pada catatan terdahulu. Saya cukupkan sementara sampai disini. Insya Allah akan saya sambung lagi dilain waktu. Kalau ada yang mau didiskusikan, silakan hubungi saya melalui email yang tercantum di halaman paling depan.

References
[1] Burden, R.L., Faires, J.D., Numerical Analysis, 7-edition, Brooks/Cole, 2001

14

Anda mungkin juga menyukai