Приведение матрицы к треугольному виду

  • Автор темы NemoI3
  • Дата начала
Статус
Закрыто для дальнейших ответов.
N

NemoI3

#1
Задача:
Есть матрица 3х3 и вектор свободных членов 3х1. Нужно привести получившуюся матрицу 3х4 к треугольному виду и построить из нее Единичную матрицу.
Пробовал множество вариантов, но не выходит, где-то частично программа работает, но не полностью!
Может кто-то уже сталкивался с этим и может помочь?

Код:
{Приведение к треугольному виду}

var p,i,j,t:integer; q:real;

procedure perest;
var i,j:integer; r:real;
begin

i:=p+1;
while (x[p,p]=0) and (i<=3) do
begin
for j:=1 to 3 do
begin
r:=x[i,j];
x[i,j]:=x[p,j];
x[p,j]:=r;
end;
r:=z[i];
z[i]:=z[p];
z[p]:=r;
i:=i+1;
end;
end;


begin
for t:=1 to 60 do
for p:=1 to 3 do
begin
if x[p,p]=0 then perest;

for i:=p+1 to 3 do
begin
q:=x[i,p]/x[p,p];
for j:=1 to 3 do
x[i,j]:=x[i,j]-q*x[p,j];
z[i]:=z[i]-q*z[p];
end;
end;
end;

{Единичная матрица}

var p,i,j,t:integer; q:real;
begin
for p:=3 downto 2 do
for i:=p-1 downto 1 do
begin
q:=x[i,p]/x[p,p];
for j:=3 downto 1 do
x[i,j]:=x[i,j]-q*x[p,j];
z[i]:=z[i]-q*z[p];
end;
for i:=1 to 3 do
begin
z[i]:=z[i]/x[i,i];
x[i,i]:=x[i,i]/x[i,i];
end;
 
Статус
Закрыто для дальнейших ответов.