Значит есть такое задание:
решить методом простых итераций систему уравнений :
-9,13*x1 + 2,02*x2 - 0,73*x3 = -1,34
7,51*x1 + 6,25*x2 -2,32*x3 = 2,33
-4,64*x1 + 1,13*x2 - 8,88*x3 = -3,75
Вот программа, которую написали:
program itera;
uses wincrt;
label 1;
const n=3;
var i,j: integer;
s,l,m,e,r,z:real;
type matr=array[1..n,1..n] of real;
vektor=array[1..n] of real;
const ap: matr=((-9.13,2.02,-0.73),(7.51,6.25,-2.32),(-4.64,1.13,-8.88));
bp:vektor=(-1.34,2.33,-3.75);
a:matr=((1,0.221,0.079),(-0.195,1,-0.368),(0.522,-0.127,1));
b:vektor=(0.146,0.119,0.422);
var x,y:vektor;
begin
writeln('vvedi e,l');
readln(e,l);
m:=e*(1-l)/l;
for i:=1 to n do
x[i]:=0;
1: for i:=1 to n do
begin
s:=0;
for j:=1 to n do
s:=s-(a[i,j]/a[i,i])*x[j];
y[i]:=s+x[i]+b[i]/a[i,i];
end;
r:=abs(x[1]-y[1]);
for i:=1 to n do
z:=abs(x[i]-y[i]);
if r>z then
r:=z
else r:=r;
if r>m then
begin
for i:=1 to n do
x[i]:=y[i];
goto 1;
end
else
begin
writeln('r=',r);
for i:=1 to n do
writeln('x',i,' = ',x[i]:8:3);
end;
a:=ap; b:=bp;
for i:=1 to n do
writeln(x[1]*a[i,1]+x[2]*a[i,2]+x[3]*a[i,3]:8:3);
end.
Когда зпускаем программу, вводим значение: 0.001 0.649 и жмем Enter.
Он начинает выдавать следующий результат:
x1 = 0.054
x2 = 0.282
x3 = 0.430
А должны быть другие значения x1,x2,x3:
x1=0,182
x2=0,290
x3=0,364
Что там не так не можем понять... подскажите кто-нибудь...
Заранее благодарен.
Сообщение отредактировано: Hi-Tech -