Czesc, mam problem z kodem procedury do odwracania macierzy. Kod dziala czesciowo dobrze, tzn jezeli macierz jest nxn to bledne wartosci pojawiaja sie tylko w elemencie [n,n-1] i [n,n]. Nie mam pojecia gdzie jest blad, jakby ktos mogl pomoc byloby super :)
procedure odwrotna(macierz1:macierz);
var macierz2,macierz3:macierz;
i,j,k:integer;
det:double;
begin
if (wiersze1<>kolumny1) then writeln('Nie mozna odwracac macierzy o zadanych wymiarach')
else
begin
wyznacznik(macierz1,det);
if (det=0) then writeln('Nie istnieje macierz odwrotna dla macierzy osobliwej')
else
begin
SetLength(macierz3,wiersze1,kolumny1);
for i:=0 to wiersze1-1 do
begin
for j:=0 to wiersze1-1 do
macierz3[i,j]:=macierz1[i,j];
end;
for i:= 0 to wiersze1-1 do
begin
macierz3[i,i]:=1/macierz3[i,i];
for j:=0 to wiersze1-1 do
begin
if (j<>i) then
begin
macierz3[j,i]:= macierz3[j,i]*macierz3[i,i];
for k:=0 to wiersze1-1 do
begin
if (k<>i) then
begin
macierz3[j,k]:= macierz3[j,k]-macierz3[j,i]*macierz3[i,k];
if j=wiersze1-1 then
macierz3[i,k] := -(macierz3[i,k]*macierz3[i,i]);
end;
end;
end;
end;
end;
end;
writeln('Macierz odwrotna: ');
wyswietl(macierz3,wiersze1,kolumny1);
writeln();
end;
end;