Решение СЛАУ методом Гаусса и Зейделя.

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

Anti

#1
Нужно написать программу для решения систем линейных алгебраических уравнений методом Гаусса и Зейделя. Исходный текст задания с описанием решения прикрепил в теме. Но то, что там написано, я не смог понять. Пришлось разбираться самому, разобрался и написал только для Гаусса:
Код:
uses crt;
const
n=4;
var
i,j:byte;
A: array [1..n,1..n] of real;
x: array [1..n] of real;
b: array [1..n] of real;
f:text;


Procedure InitMass;
Begin
A[1,1]:=1; A[1,2]:=7; A[1,3]:=3; A[1,4]:=4;
A[2,1]:=2; A[2,2]:=3; A[2,3]:=8; A[2,4]:=2;
A[3,1]:=8; A[3,2]:=1; A[3,3]:=1; A[3,4]:=3;
A[4,1]:=5; A[4,2]:=2; A[4,3]:=4; A[4,4]:=2;

{A[1,1]:=1; A[1,2]:=2; A[1,3]:=1; A[1,4]:=1; A[1,5]:=1; A[1,6]:=1;
A[2,1]:=2; A[2,2]:=1; A[2,3]:=1; A[2,4]:=1; A[2,5]:=1; A[2,6]:=1;
A[3,1]:=1; A[3,2]:=1; A[3,3]:=1; A[3,4]:=2; A[3,5]:=1; A[3,6]:=1;
A[4,1]:=1; A[4,2]:=1; A[4,3]:=2; A[4,4]:=1; A[4,5]:=1; A[4,6]:=3;
A[5,1]:=1; A[5,2]:=3; A[5,3]:=1; A[5,4]:=1; A[5,5]:=1; A[5,6]:=1;
A[6,1]:=1; A[6,2]:=1; A[6,3]:=2; A[6,4]:=1; A[6,5]:=1; A[6,6]:=2;}

{A[1,1]:=10; A[1,2]:=10;
A[2,1]:=7; A[2,2]:=7;}

b[1]:=3;	 b[2]:=5;	 b[3]:=2;	 b[4]:=2;
End;






Procedure MatrixOut;
var
x,y:byte;
Begin
for x:=1 to n do begin
for y:=1 to n do write(A[x,y]:10:10,' ');
if y=n then write('=',b[x]:10:10);
writeln;
end;
writeln('________________________');
End;

Procedure Gauss;
var
k:integer;
h:real;
Begin															  {прямой ход}
for i:=1 to n-1 do for j:=i+1 to n do begin
a[j,i]:=-a[j,i]/a[i,i];
for k:=i+1 to n do
a[j,k]:=a[j,k]+a[j,i]*a[i,k];
b[j]:=b[j]+a[j,i]*b[i];
end;
x[n]:=b[n]/a[n,n];
{обратный ход}

for i:=n-1 downto 1 do begin
h:=b[i];
for j:=i+1 to n do h:=h-x[j]*a[i,j];
x[i]:=h/a[i,i];
end;
writeln('Korni:');
for i:=1 to n do writeln('x(',i,')=',x[i]:10:10);
End;

BEGIN
clrscr;
InitMass;
MatrixOut;
Gauss;
Readln;
END.
Для Зейделя не смог ни понять, не найти что-то вменяемое (может я и тупой или искать не умею), все исходники, какие видел, на С, но я этот язык совсем не знаю. Поэтому, огромная просьба, объясните как этот метод вообще осуществить, что за чем должно идти (алгоритм короче говоря). Заранее благодарен.
 

Вложения

Статус
Закрыто для дальнейших ответов.