Contributor: ALEKSANDAR DLABAC
{
лллллллллллллллллллллллллллллллллллллллллллллллллл
лллнммммммммммммммммммммммммммммммммммммммммммолллББ
лллнлл ллолллББ
лллнлл Matrix inversion ллолллББ
лллнлл ллолллББ
лллнлл Aleksandar Dlabac ллолллББ
лллнлл (C) 1995. Dlabac Bros. Company ллолллББ
лллнлл ------------------------------ ллолллББ
лллнлл adlabac@urcpg.urc.cg.ac.yu ллолллББ
лллнлл adlabac@urcpg.pmf.cg.ac.yu ллолллББ
лллнлл ллолллББ
лллнпппппппппппппппппппппппппппппппппппппппппполллББ
ллллллллллллллллллллллллллллллллллллллллллллллллллББ
ББББББББББББББББББББББББББББББББББББББББББББББББББ
}
{ Gausian algorithm for matrix inversion }
Const MaxN = 10;
Type Row = array [1..MaxN] of real;
Matrix = array [1..MaxN] of Row;
Var I, J : integer;
InversionOK : Boolean;
A : Matrix;
{ A is matrix to be inverted, and N is dimension of matrix. }
{ Result is return in A. }
Procedure MatrixInversion (Var A:Matrix; N:integer);
Var I, J, K : integer;
Factor : real;
Temp : Row;
B : Matrix;
Begin
InversionOK:=False;
For I:=1 to N do
For J:=1 to N do
If I=J then
B [I,J]:=1
else
B [I,J]:=0;
For I:=1 to N do
Begin
For J:=I+1 to N do
If Abs (A [I,I])