PDF / ZEIDEL
.pdf1: program ZEIDEL; 2:
3:const
4:maxn=10;
5:
6:type
7:matrix = array [1..maxn,1..maxn] of real;
8:vector = array [1..maxn] of real;
9:
10:procedure gauss_zeidel (N: integer; var A: matrix; var B,X: vector; E: real);
11:var
12:m,em:real;
13:i,j:integer;
14:x0:vector;
15:begin
16:repeat
17:x0:=x;
18:for i:=1 to n do
19:begin
20:m:=b[i];
21:for j:=1 to n do
22:if j<>i then m:=m-a[i,j]*x[j];
23:x[i]:=m/a[i,i]
24:end;
25:em:=abs(x[1]-x0[1]);
26:for j:=2 to n do
27:if abs(x[i]-x0[i])>em then em:=abs(x[i]-x0[i]);
28:until em<=e;
29:end;
30:
31:var
32:ns,i,j:integer;
33:err:real;
34:as:matrix;
35:xs,bs:vector;
37:begin
38:WriteLn('-- Решение СЛАУ методом Гаусса-Зейделя --');
39:Write(' Порядок СЛАУ : ');
40:ReadLn(ns);
41:for i:=1 to ns do
42:for j:=1 to ns do
43:begin
44:Write(' Введите : A(',i,',',j,') = ');
45:ReadLn(as[i,j]);
46:end;
47:for j:=1 to ns do
48:begin
49:Write(' Введите : B(',j,') = ');
50:ReadLn(bs[j]);
51:end;
52:Write(' Введите абсолютную погрешность вычисления корней : ');
53:ReadLn(err);
54:gauss_zeidel(ns,as,bs,xs,err);
55:for j:=1 to ns do
56:WriteLn(' Решение : X(',j,') = ',xs[j]:3:0);
57:ReadLn;
58:END.
59:
60:
61:
62:
63:
64: