Ads 468x60px

Якобын итераци


ßêîáûí èòðàöûí àðãûí ïðîãðàìûã ã¿éöýýæ, ¿ð ä¿íã ãàðãà.


uses crt;
var
    i,j,n,m,k:integer;
    a:array[1..10,1..10] of real;
    {x, e, max, l, r
    õóâüñàã÷äûã çàðëà /5 îíîî/}
    f,rr,tt,y:array[1..20] of real;
begin clrscr;
     write('E='); readln(E);
     write('m='); readln(m);
 for i:=1 to m do
     begin
          write('f[',i,']=');
          readln(f[i]);
          {for öèêëèéã ã¿éöýý /1 îíîî/}
          begin
              {a[i,j]-ã
              ãàðààñ îðóóë /1 îíîî/}
          end;

 
          write('x',i,'='); readln(x[0,i]);
     end;
k:=0; l:=0; r:=0;
repeat
 for i:=1 to m do
 begin
       begin
       for j:=1 to i-1 do
       l:=l+a[i,j]*x[k,j];
     end;
     for j:=i+1 to m do
     r:=r+a[i,j]*x[k,j];
     {x[k+1,i] –ä óòãà îëãî /1 îíîî/}
     y[i]:=x[k+1,i];
     l:=0; r:=0;
     end;
 k:=k+1;
 for j:=1 to m do rr[j]:=0;
     for i:=1 to m do
         for j:=1 to m do
          rr[i]:=rr[i]+a[i,j]*y[j];
 for j:=1 to m do
          tt[j]:=abs(rr[j]-f[j]);
 max:=tt[1];
 for j:=2 to m do
  begin
    {Õýðýâ max <= tt[j] áîë max-ä tt[j] óòãà îëãî /1 îíîî/}
  end;
until max<E;
 for j:=1 to m do  begin
 writeln('x',j,'=',y[j]:5:5);
 end;        writeln(k);
 readln;
end.


                        øóãàìàí òýãøèòãýëèéã îéðîëöîîãîîð áîä.  Ýíä e= 0.0001;  áàéíà. /1 îíîî/


Õàðèó: