Metode iterasi Gauss-Seidel untuk menyelesaikan sistem persamaan linear
Suatu sistem persamaan linear terdiri atas sejumlah berhingga persamaan linear dalam sejumlah berhingga variabel. Menyelesaikan suatu sistem persamaan linier adalah mencari nilai-nilai variabel yang belum diketahui yang memenuhi semua persamaan linier yang diberikan.
Rumus iterasi untuk hampiran ke-k pada metode iterasi Gauss-Seidel adalah sebagai berikut. Untuk i = 1, 2, …, n dan k = 1, 2, 3, …,
Algoritma Iterasi Gauss-Seidel
Untuk menyelesaikan sistem persamaan linier AX = b dengan A adalah matriks koefisien n × n , b vektor konstanta n × 1 , dan X vektor n × 1 yang perlu di cari.
INPUT : n, A, b dan hampiran awal Y = (y1 y2 y3 ...yn)T, batas toleransi T dan maksimum iterasi N.
OUTPUT : X = (x1 x2 x3 ...xn)T atau pesan "gagal".
LANGKAH-LANGKAH :
- 1. Set penghitung iterasi k = 1
- 2. WHILE k <= N DO
- (a) FOR i = 1, 2, 3, ..., n, hitung :

- (b) Set X = (x1 x2 x3 ...xn)T
- (c) IF ||X - Y|| <>
- (d) Tambah penghitung iterasi, k = k + 1
- (e) FOR i = 1, 2, 3, ..., n, Set yi = xi
- (f) Set Y = (y1 y2 y3 ...yn)T
- (a) FOR i = 1, 2, 3, ..., n, hitung :
- 3. Tulis pesan "metode gagal setelah N iterasi"
- 4. STOP.
Implementasi dengan MATLAB
function [X1,g,H] = seidel(A,b,X0,T,N)
H = X0';
n = length(b);
X1 = X0 ;
for k=1:N,
- for i=1:n,
- S=b(i)-A(i,1:i-1)*X1(1:i-1)-A(i,i+1:n)*X0(i+1:n);
- X1(i)=S/A(i,i);
- end
- g=abs(X1-X0);
- err=norm(g);
- relerr=err/(norm(X1)+eps);
- X0=X1;
- H=[H,X0'];
- if(err
end
Contoh
Sebagai gambaran misalkan mencari penyelesaian SPL
10x1 - x2 +2x3=6
-x1+11x2-x3+3x4=25
2x1-x2+10x3-x4=-11
3x2-x3+8x4=15
Berikut pemakaian fungsi MATLAB seidel untuk penyelesaian soal di atas dan keluaran yang diperoleh :
>> A=[10 -1 2 0;-1 11 -1 3;2 -1 10 -1;0 3 -1 8]
A =
10 -1 2 0
-1 11 -1 3
2 -1 10 -1
0 3 -1 8
>> b=[6;25;-11;15]
b =
6
25
-11
15
>> X0=[0;0;0;0]
X0 =
0
0
0
0
>> T=0.0001;N=25;
>> [X,g,H]=seidel(A,b,X0,T,N)
X =
1.0000
2.0000
-1.0000
1.0000
g =
1.0e-004 *
0.8292
0.2017
0.2840
0.1111
H =
Columns 1 through 5
0 0 0 0 0.6000
Columns 6 through 10
2.3273 -0.9873 0.8789 1.0302 2.0369
Columns 11 through 15
-1.0145 0.9843 1.0066 2.0036 -1.0025
Columns 16 through 20
0.9984 1.0009 2.0003 -1.0003 0.9998
Columns 21 through 25
1.0001 2.0000 -1.0000 1.0000 1.0000
Columns 26 through 28
2.0 -1.0000 1.0000
Proses iterasi dapat diulangi sampai tingkat keakuratan yang diinginkan tercapai, penyelesaian eksak contoh di atas adalah (1, 2, -1, 1).

Tidak ada komentar:
Posting Komentar