SISTEM PERSAMAAN LINEAR DAN
ELIMINASI GAUSS
Dr. Eng. Supriyanto, M.Sc
Lab. Komputer, Departemen Fisika, Universitas Indonesia
email: [email protected] atau [email protected]
5 Februari 2005
Abstract
Secara umum, catatan ini bermaksud menjelaskan tentang cara penyelesaian prob-lem 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: an1x1+an2x2+...+annxn=bn (1)
dimanaadanbmerupakan konstanta,xadalah variable,n= 1,2,3, ....
Contoh pertama
Misalnya ada sistem persamaan linear yang terdiri dari empat buah persamaan yaitu P1,P2,P3, danP4 seperti berikut ini:
P1 : x1 + x2 + 3x4 = 4
P2 : 2x1 + x2 − x3 + x4 = 1
P3 : 3x1 − x2 − x3 + 2x4 = -3
Problem dari sistem persamaan linear adalah bagaimana mencari nilai pengganti bagi
variabelx1,x2,x3, danx4sehingga semua persamaan diatas menjadi benar. Langkah awal penyelesaian problem tersebut adalah dengan melakukan penyederhanaan sistem per-samaan linear. Ada banyak jalan untuk mendapatkan bentuk yang lebih sederhana, namun masalahnya, kita ingin mendapatkan sebuah algoritma program yang nantinya bisa ber-jalan di komputer, sedemikian rupa sehingga apapun persamaannya, bisa disederhanakan oleh komputer. Kita akan berpatokan pada tiga buah aturan operasi untuk
menyeder-hanakan sistem persamaan linear di atas, yaitu
• PersamaanPi dapat dikalikan dengan sembarang konstantaλ, lalu hasilnya ditem-patkan di posisi persamaanPi. Simbol operasi ini adalah(λPi)→(Pi).
• Persamaan Pj dapat dikalikan dengan sembarang konstanta λ kemudian
dijum-lahkan dengan persamaan Pi, lalu hasilnya ditempatkan di posisi persamaan Pi. Simbol operasi ini adalah(Pi+λPj)→(Pi).
• PersamaanPi danPj dapat bertukar posisi. Simbol operasi ini adalah(Pi)↔(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 danP4 dengan cara(P2−2P1)→(P2),(P3−3P1)→(P3)dan(P4+P1)→(P4). Hasilnya akan seperti ini
P1 : x1+x2+ 3x4 = 4, P2 : −x2 −x3−5x4 = −7,
P3 : −4x2 −x3−7x4 = −15,
P4 : 3x2 + 3x3+ 2x4 = 8
2. Gunakan persamaanP2 untuk menghilangkan variabel x2 dari persamaan P3 dan P4dengan cara(P3−4P2)→(P3)dan(P4+ 3P2)→(P4). Hasilnya akan seperti ini
P1 : x1 +x2+ 3x4 = 4, P2 : −x2−x3−5x4 = −7,
P3 : 3x3+ 13x4 = 13,
Kalaux3 masih ada di persamaanP4, dibutuhkan satu operasi lagi untuk langkannya. Namun hasil operasi pada langkah ke-2 ternyata sudah otomatis menghi-langkanx3. Bentuk akhir dari keempat persamaan di atas, dikenal sebagai bentuk triangular.
Sampai dengan langkah ke-2 ini, kita berhasil mendapatkan sistem persamaan lin-ear yang lebih sederhana. Apa yang dimaksud dengan sederhana dalam konteks ini? Suatu sistem persamaan linear dikatakan sederhana bila kita bisa mendapatkan selu-ruh 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 variabelx4, makax3, x2 danx1 akan diper-oleh dengan mudah dan cepat, sebagaimana yang dijelaskan pada langkah berikut-nya.
3. Selanjutnya kita jalankan prosesbackward-substitution. Melalui proses ini, yang pertama kali didapat adalah nilai pengganti bagi variabel x4, kemudian x3, lalu diikutix2, dan akhirnyax1.
P4 : x4 =
−13
−13 = 1,
P3 : x3 =
1
3(13−13x4) = 1
3(13−13) = 0,
P2 : x2 =−(−7 + 5x4+x3) = −(−7 + 5 + 0) = 2,
P1 : x1 = 4−3x4−x2 = 4−3−2 =−1
Jadi solusinya adalahx1 = −1, x2 = 2, x3 = 0danx4 = 1. Coba sekarang anda cek, apakah semua solusi ini cocok dan tepat bila dimasukan ke sistem persamaan
linear yang pertama, yaitu yang belum disederhanakan?
Contoh kedua
Misalnya ada sistem persamaan linear, terdiri dari empat buah persamaan yaituP1, P2,P3, danP4seperti berikut ini:
P1 : x1 − x2 + 2x3 − x4 = -8
P2 : 2x1 − 2x2 + 3x3 − 3x4 = -20
P3 : x1 + x2 + x3 = -2
P4 : x1 − x2 + 4x3 + 3x4 = 4
Seperti contoh pertama, solusi sistem persamaan linear di atas akan dicari dengan langkah-langkah berikut ini:
1. Gunakan persamaanP1untuk menghilangkanx1dari persamaanP2, P3danP4 den-gan cara (P2−2P1)→ (P2),(P3−P1)→ (P3)dan(P4 −P1)→ (P4). Hasilnya akan seperti ini
P1 : x1−x2+ 2x3−x4 = −8, P2 : −x3−x4 = −4,
P3 : 2x2−x3 +x4 = 6,
P4 : 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, posisiP2 mesti ditukar dengan persamaan yang berada dibawahnya, yaituP3 atau P4. Supaya proses triangularisasi dilanjutkan kembali, maka yang paling cocok adalah ditukar denganP3.
2. Tukar posisi persamaan P2 dengan persamaan P3, (P2 ↔ P3). Hasilnya akan seperti ini
P1 : x1−x2 + 2x3−x4 = −8,
P2 : 2x2−x3 +x4 = 6,
P3 : −x3−x4 = −4,
3. Gunakan persamaan P3 untuk menghilangkan x3 dari persamaan P4 dengan cara
(P4−2P3)→(P4). Hasilnya akan seperti ini
P1 : x1−x2+ 2x3 −x4 = −8,
P2 : 2x2−x3+x4 = 6,
P3 : −x3 −x4 = −4,
P4 : 2x4 = 4
Sampai disini proses triangularisasi telah selesai.
4. Selanjutnya adalah proses backward-substitution. Melalui proses ini, yang pertama kali didapat solusinya adalahx4, kemudianx3, lalu diikutix2, dan akhirnyax1.
P4 : x4 =
4
2 = 2,
P3 : x3 =
−4 +x4
−1 = 2,
P2 : x2 =
6 +x3−x4
2 = 3,
P1 : x1 =−8 +x2−2x3+x4 = −7
Jadi solusinya adalahx1 =−7,x2 = 3,x3 = 2danx4 = 2.
Berdasarkan kedua contoh di atas, untuk mendapatkan solusi sistem persamaan linear,
diperlukan operasitriangularisasidan prosesbackward-substitution. Kata backward-substitutionkalau diterjemahkan kedalam bahasa indonesia, menjadisubstitusi-mundur. Gabungan proses triangularisasi dan substitusi-mundur untuk menyelesaikan sistem per-samaan linear dikenal sebagai metodeeliminasi gauss.
2
Matrik dan Eliminasi Gauss
berikut ini:
Sementara, kalau dinyatakan dalam bentuk operasi matrik, maka akan seperti ini:
⎡
Dalam mencari solusi suatu sistem persamaan linear dengan metode eliminasi gauss, bentuk operasi matrik di atas dimanipulasi menjadimatrik augment, yaitu suatu matrik yang berukurannx(n+ 1)seperti berikut ini:
⎡
Berdasarkan contoh pertama yang ada dihalaman depan catatan ini, saya akan tun-jukkan proses triangularisasi dan substitusi-mundur dalam operasi matrik terhadap sistem
persamaan linear yang terdiri dari empat persamaan matematika, yaitu (silakan lihat kem-bali contoh pertama):
⎡
Lalu kita dapat membuat matrik augment sebagai berikut:
Kemudian kita lakukan operasi triangularisai terhadap matrik augment, dimulai dari kolom
lalu dilanjutkan ke kolom berikutnya
⎡
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:
⎡
Dengan memperhatikan angka-angka indeks pada matrik augment di atas, kita akan
men-coba membuat rumusan proses substitusi-mundur untuk mendapatkan seluruh nilai peng-ganti variabelx. Dimulai darix4,
x4 = a45 a44
= −13
−13 = 1
ini dapat dinyatakan dalam rumus umum, yaitu
ini juga dapat dinyatakan dalam rumus umum yaitu:
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:
a11x1 +a12x2+. . .+a1nxn = b1
a21x1 +a22x2+. . .+a2nxn = b2 ..
. ... = ...
an1x1+an2x2 +. . .+annxn = bn
Algoritma dasar metode eliminasi gauss, adalah sebagai berikut:
1. Ubahlah sistem persamaan linear tersebut menjadi matrik augment, yaitu suatu matrik yang berukurannx(n+ 1)seperti berikut ini:
⎡
Jelas terlihat bahwa elemen-elemen yang menempati kolom terakhir matrik aug-ment adalah nilai daribi; yaituai,n+1 =bidimanai= 1,2, ..., n.
aii = 0. (Kalau kurang jelas, silakan lihat lagi contoh kedua yang ada
dihala-man 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−
4. Hitunglah nilaixndengan cara:
xn=
Demikianlan algoritma dasar metode eliminasi gauss. Selanjutnya algoritma dasar terse-but perlu dirinci lagi sebelum dapat diterjemahkan kedalam bahasa pemrograman
kom-puter.
3.1
Algoritma
INPUT: sejumlah persamaan linear dimana konstanta-konstanta-nya menjadi elemen-elemen
matrik augmentA= (aij), dengan1≤i≤ndan1≤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-elemenmatrik augment, yaitu suatu matrik yang berukurann x(n + 1)
seperti berikut ini:
⎡
• Langkah 3: Definisikanpsebagai integer dimanai ≤ p ≤ n. Lalu pastikan
bahwaapi = 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 be-rada. 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 api = 0, maka sebuah pesan dimunculkan:sistem persamaan linear tidak memiliki solusi yang unik. Lalu program berakhir: STOP.
• Langkah 4:Namun jika sebelum integerpmencapai nilaip=nsudah diper-oleh elemen yang tidak nol (api = 0), maka bisa dipastikanp= i. Jikap= i maka lakukan proses pertukaran (Pp)↔(Pi).
• Langkah 5: Untukj =i+ 1, .., n, lakukan Langkah 6 dan Langkah 7.
• Langkah 6: Tentukanmji,
• Langkah 7: Lakukan proses triangularisasi,
(Pj −mjiPi)→(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 menentukanxn,
xn=
an,n+1 ann
• Langkah 10: Untuki=n−1, ...,1tentukanxi,
xi =
ai,n+1−
n
j=i+1aijxj aii
• Langkah 11: Diperoleh solusi yaitux1, x2, ..., xn. Algoritma telah dijalankan den-gan sukses. STOP.
Saya telah membuat program sederhana dalam fortran untuk mewujudkan algoritma eliminasi gauss. Saya berasumsi bahwa anda sudah menguasai dasar-dasar pemrogra-man dalam fortran. Program ini sudah dicoba di-compile dengan fortran77under Linux
Debian dan visual-fortranunder 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 (*,*)
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 CONTINUE
50 CONTINUE
WRITE (*,*)
C MENAMPILKAN MATRIK AUGMENT
WRITE (*,’(1X,A)’) ’MATRIK AUGMENT:’ DO 110 I = 1,N
WRITE (*,’(1X,5(F14.8))’) (A(I,J),J=1,M) 110 CONTINUE
WRITE (*,*)
C LANGKAH 2: MEMERIKSA ELEMEN-ELEMEN PIVOT DAN PROSES TUKAR POSISI
NN = N-1
DO 10 I=1,NN
C LANGKAH 3: MENDEFINISIKAN P
P = I
100 IF (ABS(A(P,I)).GE.1.0E-20 .OR. P.GT.N) GOTO 200
P = P+1
GOTO 100
200 IF(P.EQ.N+1)THEN
C 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(P,JJ) = C
20 CONTINUE
END IF
C LANGKAH 5: PERSIAPAN PROSES TRIANGULARISASI
JJ = I+1
DO 30 J=JJ,N
C LANGKAH 6: TENTUKAN MJI
MJI = A(J,I)/A(I,I)
C LANGKAH 7: MELAKUKAN PROSES TRIANGULARISASI
DO 40 K=JJ,M
A(J,K) = A(J,K)-MJI*A(I,K)
40 CONTINUE
A(J,I) = 0
30 CONTINUE
10 CONTINUE
C 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 CONTINUE
C LANGKAH 8: MEMERIKSA ELEMEN A(N,N)
IF(ABS(A(N,N)).LT.1.0E-20) THEN
C MENAMPILKAN PESAN TIDAK UNIK
WRITE(*,5) GOTO 400
END IF
C LANGKAH 9: MENGHITUNG X(N)
X(N) = A(N,N+1)/A(N,N)
C LANGKAH 10: PROSES SUBSTITUSI MUNDUR
L = N-1
DO 15 K=1,L
I = L-K+1
JJ = I+1
DO 16 KK=JJ,N
SUM = SUM+A(I,KK)*X(KK)
16 CONTINUE
X(I) = (A(I,N+1)-SUM)/A(I,I)
15 CONTINUE
C 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 CONTINUE
400 STOP
5 FORMAT(1X,’SISTEM LINEAR TIDAK MEMILIKI SOLUSI YANG UNIK’)
7 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 de-pan.