1. Uzdevuma
formulējums:
Atrisināt vienādojumu sistēmu
ar precizitāti 10-5 . Jāizmanto
divas metodes.

2.Algoritmisks
risinājuma pamatojums:
Dota vienādojumu sistēma
ar m mainīgajiem.

Apzīmējam x = (x1,x2,...,xm),
x
Rm, tad katru fju fi(x1,x2,...,xm)
var apzīmēt ar fi(x), un ievedot vēl vektoru-funkciju f(x)=(f1(x),f2(x),...,fm(x)),
tad sākotnējo sistēmu var uzrakstīt formā f(x)=0.

1.)Vienādojumu sistēmu risināšana ar Ņūtona metodi:
Dota vienādojumu sistēma f(x)=0.
Dots kaut kāds nulltais tuvinājums x0 = (x01,...,x0m)
sistēmas atrisinājumam a=(a1,a2,...,am).
Kļūdas vektors ir e = a - x0 = (a1
- x01,...,am - x0m)
= (e1,...,em).
Vienādībā f(a)
= 0 aizvietojam a
= x0 + e
: f(x0
+ e)
= 0.
Paņemsim no vienādojumu sistēmas galveno lineāro daļu, lai
to izdarītu katru fju fi(x0 + e) = 0 izvirzīsim pēc
Teilora formulas, saglabājot tikai lineāro daļu, bet pārējo atmetot. Tā mēs
iegūsim lineāru vienādojumi sistēmu, kas tuvināti aizstāj doto vien. sistēmu:
, kur i = 1,2,...,m.

Izrēķinot to mēs iegūsim tuvinātus kļūdus rezultātus e0i.
Sākotnējo tuvinājumu mēs varam uzlabot aizstājot to ar x0i
+ e0i.
Tātad x11 = x01 + e01;
... x1m = x0m + e0m.
Tādā veidā aprēķinus var turpināt. Rezultātā mēs katrai vērtībai ai
iegūsim tuvinājumu rindu, kurā katru nākamo atrisinājumu var iegūt no lineāras
vienādojumu sistēmas pēc iepriekšējā tuvinājuma:

To var pārveidot par f '(x)(xn+1 - xn)
= -f(xn), kur f '(x) ir fju sistēmas fi (i = 1,2,..,m)
Jakobi matrica:

Pareizinot vienādojums f '(x)(xn+1 - xn)
= -f(xn) abas puses no labās puses ar [f '(x)]-1 ieģūsim: xn+1 = xn - [f '(x)]-1 (n = 0,1,...,N), kur
(
- precizitāte ar kādu vēlas iegūt vienādojumu
sistēmas atrisinājumu.


Tuvinājumu rindas konverģences nosacījums ir:
, ja det[f '(x)] nav nulle
atrisinājuma a
apkārtnē.

Tagad izrakstīsim Ņūtona metodes formulas gadījumā m = 2:






Tātad n+1 tuvinājmu aprēķina pēc formulām:


Tagad apskatīsim doto vienādojumu sistēmu:

Pārveidojam to par:

Izrēķinām Jakobi matricu:

D = -cos(x+1)siny+2
Tātad n+1 tuvinājumu dotajai vien. sistēmai var izrēķināt
pēc formulām:


2.)Vienādojumu sistēmu risināšana ar Vienkāršo
iterācijas metodi:
Dota vienādojuma sistēma f(x)=0.
Dots kaut kāds nulltais tuvinājums x0 = (x01,...,x0m)
sistēmas atrisinājumam a=(a1,a2,...,am).
Pārveidojam doto sistēmu formā x = j(x), kur

Tā pat kā iepriekšējā metodē ņemam kļūdas:




Tātad M<1. Pietiekamais un nepieciešamais tuvinājuma
rindas konverģences nosacījums ir Jakobi matricas īpašvērtībām jābūt
(i = 1,2,...,m).

Apskatām doto vienādojumu sistēmu un paŗveidojam to šādā
formā:

![]() |
Tātad iteratīvā funkcija ir:

Grafiski nosaka aptuvenu atrisinājuma un aprēķina Jakobi
matricas īpaðvērtības ðajā punktā.
Aptuvens atrisinājums ir x = 0.5 un y = -0.2, tātad l2
= -1/2cos(1.5)sin(-0.2)
l = ±0.0059, tātad |l|<1 un tuvinājumu rinda
konverģē.
3. Programmas:
{ROMUALDS BARKA'NS 2Dz2}
program nutona_metode_sistemam;
{ e
- kl'u'da,
x0 - x nulltais tuvina'jums, y0 -
y nulltais tuvina'jums,
f1 - siste'mas pirmais
viena'dojums,
f2 - siste'mas otrais
viena'dojums,
f1x - pirma' vien. atvasina'jums pe'c x,
f1y - pirma' vien. atvasina'jums pe'c y,
f2x - otra' vien. atvasina'jums pe'c x,
f2y - otra' vien. atvasina'jums pe'c y.}
const e=0.00001;
x0=0;
y0=0;
var x,y,a,b,x1,y1: real;
function f1(x,y:real):real;
begin f1:=sin(x+1)-y-1.2 end;
function f2(x,y:real):real;
begin f2:=2*x+cos(y)-2 end;
function f1x(x,y:real): real;
begin f1x:=cos(x+1); end;
function f1y(x,y:real): real;
begin f1y:=-1 end;
function f2x(x,y:real): real;
begin f2x:=2 end;
function f2y(x,y:real): real;
begin f2y:=-sin(y) end;
function nutoX(x,y:real):real;
begin
nutoX:=x-f2y(x,y)/(f1x(x,y)*f2y(x,y)-f1y(x,y)*f2x(x,y))*f1(x,y)-
(-f1y(x,y))/(f1x(x,y)*f2y(x,y)-f1y(x,y)*f2x(x,y))*f2(x,y)
end;
function nutoY(x,y:real):real;
begin
nutoY:=y-(-f2x(x,y))/(f1x(x,y)*f2y(x,y)-f1y(x,y)*f2x(x,y))*f1(x,y)-
f1x(x,y)/(f1x(x,y)*f2y(x,y)-f1y(x,y)*f2x(x,y))*f2(x,y)
end;
begin
x:=x0;
y:=y0;
x1:=nutoX(x,y);
y1:=nutoY(x,y);
writeln;
writeln(x:11:7,y:11:7);
writeln(x1:11:7,y1:11:7);
while (abs(x-x1)>e) or (abs(y-y1)>e) do
begin
x:=x1;
y:=y1;
a:=nutoX(x1,y1);
b:=nutoY(x1,y1);
x1:=a;
y1:=b;
writeln(x1:11:7,y1:11:7);
end;
writeln('Vien. sist. atrisinajums ar
kludu',e:8:5,' pec Nutona metodes ir:');
writeln('x=',x1:7:5,' y=',y1:7:5);
end.
{ROMUALDS BARKA'NS 2Dz2}
program vien_iteracijas_metode_sistemai;
{
e - kl'u'da,
x0, y0 - nulltais tuvina'jums,
fi1 - viena'dojums forma'
x=fi1(x,y),
fi2 - viena'dojums forma'
y=fi2(x,y).}
const
e=0.00001;
x0=0;
y0=0;
var x,y,a,b,x1,y1:real;
function fi1(x,y:real):real;
begin
fi1:=-cos(y)/2+1
end;
function fi2(x,y:real):real;
begin
fi2:=sin(x+1)-1.2
end;
begin
x:=x0;
y:=y0;
x1:=fi1(x,y);
y1:=fi2(x,y);
writeln(x:11:7,y:11:7);
writeln(x1:11:7,y1:11:7);
while (abs(x-x1)+abs(y-y1)>e) do
begin
x:=x1;
y:=y1;
a:=fi1(x1,y1);
b:=fi2(x1,y1);
x1:=a;
y1:=b;
writeln(x1:11:7,y1:11:7);
end;
writeln('Vien. sist. atrisinajums ar
kludu',e:8:5,' pec vienkarsas iteracijas metodes ir:');
writeln('x=',x1:7:5,' y=',y1:7:5);
end.
4. Rezultātu analīze:

1.) Ņūtona metode:
Izpildot programmu,
tiek iegūti šādi tuvinājumi:
|
x
|
y
|
Nulltais
tuvinājums:
|
0.000000
|
0.000000
|
Pirmais:
|
0.500000
|
-0.088378
|
Otrais:
|
0.506966
|
-0.202012
|
Treðais:
|
0.510149
|
-0.201833
|
Ceturtais:
|
0.510150
|
-0.201838
|
Tātad sistēmas atrisinājums ar precizitāti 10-5 ir
x = 0.51015 un y = -0.20184
2.) Vienkāršā iterācijas metode:
Izpildot programmu,
tiek iegūti šādi tuvinājumi:
|
x
|
y
|
Nulltais
tuvinājums:
|
0.000000
|
0.000000
|
Pirmais:
|
0.500000
|
-0.358539
|
Otrais:
|
0.531793
|
-0.202505
|
Treðais:
|
0.510217
|
-0.200760
|
Ceturtais:
|
0.510042
|
-0.201834
|
Piektais:
|
0.510149
|
-0.201845
|
Sestais:
|
0.510150
|
-0.201838
|
Tātad sistēmas atrisinājums ar precizitāti 10-5 ir
x = 0.51015 un y = -0.20184
Nav komentāru:
Ierakstīt komentāru