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

Тема в разделе "Pascal and Delphi", создана пользователем NemoI3, 27 мар 2011.

Статус темы:
Закрыта.
  1. NemoI3

    NemoI3 Гость

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

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

    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;
     
Загрузка...
Похожие Темы - Приведение матрицы треугольному
  1. Dantes95
    Ответов:
    0
    Просмотров:
    1.025
  2. kobrin13
    Ответов:
    0
    Просмотров:
    1.037
  3. FCDK
    Ответов:
    0
    Просмотров:
    1.267
  4. PahaStar
    Ответов:
    0
    Просмотров:
    1.079
  5. Evgesha777
    Ответов:
    1
    Просмотров:
    1.402
Статус темы:
Закрыта.

Поделиться этой страницей