Misol. Tenglamalar sistemasini =0,001 aniqlikda oddiy iterasiya usuli bilan yeching:
Yechish:
Demak, iterasiya yaqinlashuvchi.
.
Nolinchi yaqinlashish: , .
(6.4) formula yordamida hisoblashlarni bajaramiz.
Ushbu jadval hosil bo’ladi.
Yaqinlashishlar (k)
|
x1
|
x2
|
x3
|
|
|
|
0
|
2
|
3
|
5
|
-
|
-
|
-
|
1
|
1,92
|
3,19
|
5,04
|
0,08
|
0,19
|
0,04
|
2
|
1,9094
|
3,1944
|
5,0446
|
0,0106
|
0,0044
|
0,0046
|
3
|
1,90923
|
3,19495
|
5,04485
|
0,00017
|
0,00055
|
0,00025
|
Bunda , , bajariladi. x=x(3) ChTS ning taqribiy ildizi.
Tenglamalar sistemasini oddiy iterasiya usulida yechish uchun ABC Pascal algortmik tilida tuzilgan dastur matni.
program iter_sis; uses crt;
label 1,2; const n=3; {tenglamalar coni}
type matrisa=array[1..n,1..n] of real;
vektor=array[1..n] of real;
var a,a1:matrisa; x,x0,b,b1:vektor; eps,s:real; i,j,k:integer;
begin clrscr;
for i:=1 to n do begin
for j:=1 to n do begin write('a[',i:1,',',j:1,']='); read(a[i,j]) end;
write('b[',i:1,']='); read(b[i]); end;
eps:=0.0001; for i:=1 to n do begin
b1[i]:=b[i]/a[i,i];
for j:=1 to n do a1[i,j]:=-a[i,j]/a[i,i] end;
for i:=1 to n do begin
x0[i]:=b1[i]; a1[i,i]:=0; end;
2: for i:=1 to n do Begin s:=0.0;
for j:=1 to n do s:=s+a1[i,j]*x0[j];
x[i]:=b1[i]+s; end; k:=0;
for i:=1 to n do if abs(x[i]-x0[i])
then begin k:=k+1; if k=n then goto 1 end
else begin for j:=1 to n do x0[j]:=x[j]; goto 2 end;
1: writeln('Sistemaning taqribiy yechimi:');
for i:=1 to n do writeln('x[',i:1,']=',x[i]:10:8);
end.
Do'stlaringiz bilan baham: |