Вы находитесь на странице: 1из 1

Program&EliminasiGauss;

Const
NofEqn := 5;

Type
RVector = Array[1..NofEqn] of Real;
RMatrix = Array[1..NofEqn,1..NofEqn] of Real;

( === PROGRAM UTAMA === }

Var
A : RMatrix;
b,x : RVector;
I,J,K,N : Integer;
Diag,FMul,Sum : Real;

Begin
{ ---> Seksi ELIMINASI GAUSS <--- }
{INPUT N => Masukkan Jumlah Persamaan}
N := 3;
{AKHIR dari INPUT N}

{INPUT A => Masukkan harga komponenen MATRIKS A}


A[1,1] := 6; A[1,2] := 3; A[1,3] := 2;
A[2,1] := 3; A[2,2] := 5; A[2,3] := 7;
A[3,1] := 2; A[3,2] := 4; A[3,3] := 3;
{AKHIR dari INPUT A}

{INPUT b => Masukkan harga komponenen VEKTOR b}


b[1] := 26;
b[2] := 26;
b[3] := 17;
{AKHIR dari INPUT b}

{ ---> Pembentukan MATRIKS DIAGONAL ATAS <--- }


For I:=1 to N-1 do
Begin
Diag := A[I,I];
For J:=I+1 to N do
Begin
FMul := A[J,I]/Diag;
For K:=I to N do A[J,K] := A[J,K] - A[I,K]*FMul;
b[J] := b[J] - b[I]*FMul;
End;
End;
{ ---> AKHIR dari Pembentukan MATRIKS DIAGONAL ATAS <--- }

{ ---> Backsubstitution <--- }


x[N] := b[N]/A[N,N];
For I:=N-1 downto 1 do
Begin
Sum := 0.0;
For J:=N downto I+1 do Sum := Sum + A[I,J]*x[J];
x[I] := (b[I] - Sum)/A[I,I];
End;
{ ---> AKHIR dari Backsubstitution <--- }

{ ---> AKHIR dari Seksi Eliminasi GAUSS <--- }

Writeln('Matriks DIAGONAL ATAS dan VEKTOR RUAS KANAN:');


For I:=1 to N do
Begin
For J:=1 to N do write(A[I,J]:8:4,' ');
writeln(b[I]:5:4);
End;

Writeln;
Writeln('HASIL, berupa VEKTOR JAWAB:');
For I:=1 to N do Writeln(' x[',I,'] = ',x[I]:1:6);
End.

{ === AKHIR dari Program Utama === }

Вам также может понравиться