You are on page 1of 2

Uses Wincrt;

Type
Mat55 = Array [0..5,0..5] of real;
Var
A,ADJ : Mat55;
b,x,x_1 : Array [0..5] of real;
Eps : real;
i,j,n,TRUE,iter : integer;
Procedure Inisialisasi;
Begin
A[0][0] := 4;
A[0][1] := 1;
A[0][2] := 2;
A[1][0] := 1;
A[1][1] := 3;
A[1][2] := 1;
A[2][0] := 1;
A[2][1] := 2;
A[2][2] := 5;
b[0] := 16;
b[1] := 10;
b[2] := 12;
n := 3;
Eps := 0.0000001;
End;
Begin
Inisialisasi;
TRUE := 0;
iter := 0;
{ inisialisasi }
for i:=0 to n-1 do x[i] := 0;
{ lakukan iterasi sampai konvergen }
while(TRUE=0) do
Begin

iter := iter + 1;
TRUE := 1; { asumsi sudah konvergen }
for i:=0 to n-1 do
Begin
x_1[i] := b[i];
for j:=0 to n-1 do
if(i<>j) then x_1[i] := x_1[i]-A[i][j]*x[j];
x_1[i] := x_1[i]/A[i][i];
if(abs(x_1[i]-x[i])>Eps) then TRUE := 0;
{ belum konvergen }
End;
{ tulis hasil iterasi }
write('Iterasi ke ',iter,' : ');
for i:=0 to n-1 do write(x_1[i]:10:7);
writeln;
for i:=0 to n-1 do x[i] := x_1[i];
End;
writeln('Hasil akhir');
for i:=0 to n-1 do
writeln('x[',i:2,'] = ',x[i]:10:6);
End.

You might also like