“Eliminasi Gauss dan Implementasinya di
MATLAB”
Metode Gauss
Metode
Gauss-Seidel digunakan
untuk menyelesaikan sistem persamaan linear (SPL) berukuran besar dan proporsi
koefisien nolnya besar, seperti sistem-sistem yang banyak ditemukan dalam
sistem persamaan diferensial. Metode iterasi Gauss-Seidel dikembangkan dari
gagasan metode iterasi pada solusi persamaan tak linier.
Teknik
iterasi jarang digunakan untuk menyelesaikan SPL berukuran kecil karena
metode-metode langsung seperti metode eliminasi
Gauss lebih efisien daripada metode
iteratif. Akan tetapi, untuk SPL berukuran besar dengan persentase elemen nol
pada matriks koefisien besar, teknik iterasi lebih efisien daripada metode langsung
dalam hal penggunaan memori komputer maupun waktu komputasi. Dengan metode
iterasi Gauss-Seidel sesatan pembulatan dapat diperkecil karena dapat meneruskan
iterasi sampai solusinya seteliti mungkin sesuai dengan batas sesatan yang
diperbolehkan.
Metode iterasi Gauss-Seidel untuk menyelesaikan sistem
persamaan linear
Suatu sistem
persamaan
linier 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|| < T THEN STOP
(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
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<T)|(relerr<T),break,end
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).
(Munir, R. 2003. Metode Numerik. Informatika. Bandung.)