Anda di halaman 1dari 5

METODE ITERASI GAUSS-SEIDEL DALAM SISTEM PERSAMAAN LINEAR

Penulis: Dr. Eng. Supriyanto, M.Sc, email: supri@sika.ui.ac.id Staf Lab. Komputer, Departemen Fisika, Universitas Indonesia Pengenalan metode iterasi Metode Iterasi Gauss-Seidel merupakan modikasi dari metode Iterasi Jacobi. Modikasi tersebut terletak pada rumus berikut:
(k ) xi

i1 j =1

aij xj

(k )

n j =i+1

aij xj

(k 1)

+ bi

aii

(1)

dimana i=1,2,3,...,n. Untuk lebih jelasnya, marilah kita perhatikan contoh berikut, diketahui sistem persamaan linear Ax = b yaitu 10x1 x2 + 2x3 = 6 x1 + 11x2 x3 + 3x4 = 25 2x1 x2 + 10x3 x4 = 11 3x2 x3 + 8x4 = 15 Lalu, sistem persamaan tersebut diubah susunannya menjadi seperti ini x1 x2 x3 x4
(k ) (k ) (k ) (k )

1 (k1) 2 (k1) 6 x2 x3 + 10 10 10 1 (k) 1 (k1) 3 (k1) 25 x + x3 = x4 + 11 1 11 11 11 2 (k) 1 (k) 1 (k1) 11 = x1 + x2 + x4 10 10 10 10 3 (k) 1 (k) 15 = x2 + x3 + 8 8 8 =
(0) (0) (0)

Misalnya kita tentukan nilai-nilai awal x (0) sebagai berikut x1 = 0, x2 = 0, x3 = 0 dan x4 = 0. Atau dinyatakan seperti ini x(0) = (0; 0; 0; 0)t. Maka pada k = 1 kita akan
(0)

memperoleh nilai-nilai x(1) sebagai berikut x1 x2 x3 x4


(1) (1) (1) (1)

= 0, 6000 = 2, 3272 = 0, 9873 = 0, 8789

Lalu proses perhitungan diulangi lagi dengan k = 2. Begitu seterusnya proses ini diulangulang lagi untuk nilai-nilai k berikutnya sampai x (k) mendekati solusi yang sesungguhnya, yaitu x = (1; 2; 1; 1)t Marilah kita amati hasil seluruh iterasi. Tabel di bawah ini menampilkan hasil perhitungan hingga iterasi yang ke-5. Kita bisa saksikan bahwa dibandingkan dengan iterasi Jacobi, problem sistem persamaan linear yang sama, bisa diselesaikan oleh metode iterasi GaussSeidel dalam 5 kali iterasi. k
(k ) x1 (k ) x2 (k ) x3 (k ) x4

0 0,0000 0,0000 0,0000

1 0,6000 2,3272 0,8789

2 1,030 2,037 -1,014 0,9844

3 1,0065 2,0036 0,9983

4 1,0009 2,0003 0,9999

5 1,0001 2,0000 1,0000

0,0000 -0,9873

-1,0025 -1,0003 -1,0000

Dari kasus ini, bisa kita simpulkan bahwa iterasi Gauss-Seidel bekerja lebih efektif dibandingkan iterasi Jacobi. Ya.., memang secara umum demikian, akan tetapi ternyata ditemukan kondisi yang sebaliknya pada kasus-kasus yang lain. Algoritma Iterasi Jacobi Langkah 1: Tentukan k =1 Langkah 2: Ketika (k N ) lakukan Langkah 3-6 Langkah 3: Untuk i=1,...,n, hitunglah xi =
i1 j =1

aij xj

n j =i+1 aij XOj

+ bi

aii

Langkah 4: Jika x XO < , maka keluarkan OUTPUT (x1 , ..., xn ) lalu STOP Langkah 5: Tentukan k =k +1 Langkah 6: Untuk i=1,...n, tentukan XO i = xi Langkah 7: OUTPUT (Iterasi maksimum telah terlampaui) lalu STOP

Program dalam Fortran IMPLICIT NONE DIMENSION A(10,10),B(10),X(10),XO(10) REAL A,B,X,XO,EPS,NORM,S1,S2 INTEGER N,I,J,K,ITMAX WRITE(*,*) WRITE(*,*) ==> ITERASI GAUSS-SEIDEL UNTUK SISTEM LINEAR <== WRITE(*,*) WRITE (*,(1X,A)) JUMLAH PERSAMAAN ? READ (*,*) N WRITE (*,*) MASUKAN ELEMEN-ELEMEN MATRIK A DAN VEKTOR B DO 52 I = 1,N DO 62 J = 1,N WRITE (*,(1X,A,I2,A,I2,A)) A(,I,,,J,) = 62 READ (*,*) A(I,J) CONTINUE WRITE (*,(1X,A,I2,A)) B(,I,) ? READ (*,*) B(I) WRITE (*,*) 52 CONTINUE WRITE (*,(1X,A)) JUMLAH ITERASI MAKSIMUM ? READ (*,*) ITMAX WRITE (*,(1X,A)) NILAI EPSILON ATAU TOLERANSI ? READ (*,*) EPS WRITE (*,*) MASUKAN NILAI AWAL UNTUK XO DO 72 I = 1,N 3

WRITE (*,(1X,A,I2,A)) XO(,I,) ? READ (*,*) XO(I) 72 C CONTINUE WRITE (*,*) MENAMPILKAN MATRIK A WRITE (*,(1X,A)) MATRIK A: DO 110 I = 1,N 110 C WRITE (*,6) (A(I,J),J=1,N) CONTINUE WRITE (*,*) MENAMPILKAN VEKTOR B WRITE (*,(1X,A)) VEKTOR B: DO 111 I = 1,N 111 C C 100 C WRITE (*,6) B(I) CONTINUE WRITE (*,*) LANGKAH 1 K = 1 LANGKAH 2 IF(K.GT.ITMAX) GOTO 200 LANGKAH 3 DO 10 I = 1,N S1 = 0.0 DO 20 J=I+1,N 20 S1 = S1-A(I,J)*XO(J) CONTINUE S2 = 0.0 DO 23 J=1,I-1 S2 = S2-A(I,J)*X(J) 23 10 C CONTINUE X(I) = (S2+S1+B(I))/A(I,I) CONTINUE SAYA PILIH NORM-2. ANDA BOLEH PAKAI NORM YANG LAIN! NORM = 0.0 4

DO 40 I=1,N 40 NORM = NORM + (X(I)-XO(I))*(X(I)-XO(I)) CONTINUE NORM = SQRT(NORM) WRITE(*,(1X,A,I3)) ITERASI KE-, K WRITE(*,(1X,A,F14.8)) NORM-2 = , NORM WRITE(*,(1X,A,I3,A,F14.8)) (X(,I,) = , X(I),I=1,N) WRITE(*,*) C LANGKAH 4 IF(NORM.LE.EPS) THEN WRITE(*,7) K,NORM GOTO 400 END IF C C LANGKAH 5 K = K+1 LANGKAH 6 DO 30 I=1,N XO(I) = X(I) 30 C 200 400 5 6 7 9 CONTINUE GOTO 100 LANGKAH 7 CONTINUE WRITE(*,9) STOP FORMAT(1X,I3) FORMAT(1X,(6(1X,F14.8))) FORMAT(1X,KONVERGEN PADA ITERASI YANG KE- ,I3, * , NORM= ,F14.8) FORMAT(1X,MELEBIHI BATAS MAKSIMUM ITERASI) END Demikianlah catatan singkat dari saya tentang metode Iterasi Gauss-Seidel. Saya cukupkan sementara sampai disini. Insya Allah akan saya sambung lagi dilain waktu. Kalau ada yang mau didiskusikan, silakan hubungi saya melalui email: supri92@gmail.com. 5

Anda mungkin juga menyukai