Математическое моделирование и численные методы в решении технических задач

курсовая работа

4.3. Метод Зейделя

Теоретические сведения

Метод Зейделя (иногда называемый методом Гаусса-Зейделя) является модификацией метода простой итерации, заключающейся в том, что при вычислении очередного приближения x(k+1) его уже полученные компоненты x1(k+1), ...,xi - 1(k+1) сразу же используются для вычисления xi(k+1).

В координатной форме записи метод Зейделя имеет вид:

x1(k+1) = c11x1(k) + c12x2(k) + ... + c1n-1xn-1(k) + c1nxn(k) + d1 x2(k+1) = c21x1(k+1) + c22x2(k) + ... + c2n-1xn-1(k) + c2nxn(k) + d2 ... xn(k+1) = cn1x1(k+1) + cn2x2(k+1) + ... + cnn-1xn-1(k+1) + cnnxn(k) + dn где x(0) - некоторое начальное приближение к решению.

Таким образом i-тая компонента (k+1)-го приближения вычисляется по формуле

xi(k+1) = ? j=1i-1 cijxj(k+1) + ? nj=i cijxj(k) + di , i = 1, ..., n

Условие окончания итерационного процесса Зейделя при достижении точности е в упрощенной форме имеет вид:

|| x (k+1) - x (k) || ? е.

Блок схема

Текст задачи

var a:array[1..100,1..100] of integer;

t:text;

i,j,m,n,k:byte;

e,ed,alfa:real;d:boolean; x:array[1..100] of real;

begin

ed:=0.001;

assign(t,H:Phoenix4.txt);

reset(t);

while not eof(t) do

begin

i:=i+1;

j:=0;

while not eoln(t) do

begin

j:=j+1;

read(t,a[i,j]);

end;

readln(t);

end;

close(t);

n:=i;

m:=j;

for i:=1 to n do begin

for j:=1 to m do

write(a[i,j], );

writeln;

end;

repeat

k:=k+1;

writeln(k=,k, );

for i:=1 to n do

begin

x[i]:=a[i,n+1]/a[i,i];

for j:=1 to n do

if j<>i then x[i]:=x[i]-(a[i,j]*x[j])/a[i,i];

write(x[,i,]=,x[i]:0:5, );

end;

d:=false;

for i:=1 to n-1 do

begin

alfa:=0;

for j:=1 to n do

alfa:=alfa+(a[i,j]*x[j]);

e:=abs((alfa-a[i,n+1])/(a[i,n+1]));

write(e=,e:2:9, );

if e>=ed then d:=true;

end;

writeln;

until not d;

end.

Результаты

2

4

3

7

1

8

0

2

Корни уравнений х1=2; х2=-1; х3=0; х4=4;

Вывод

Достоинства метода Зейделя в том, что он достаточно прост в написании текста программы, недостатки метода в том, что объем текста программы большой и громоздкие операции.

Делись добром ;)