Documente Academic
Documente Profesional
Documente Cultură
Soluţionarea ecuaţiilor
neliniare
1
1 2 3 4 5 6 7 8 9 10
200
100
100
4 3 2 1 0 1 2 3 4
F(x)=3·x8-5·x7-6·x3-x - 9
Soluţionarea ecuaţiilor neliniare
Soluţionarea unei ecuaţii neliniare se realizează în MathCAD cu
ajutorul funcţiei root, care se apelează astfel: root(f(x),x),
unde x este aproximaţia iniţială care trebuie furnizată prealabil.
Determinarea rădăcinilor unui polinom în MatLAB se efectuează cu
funcţia roots, care se apelează cu sintaxa: r = roots(c),
unde c este un vector - linie care conţine coeficienţii polinomului,
înscrişi în ordine descrescătoare a puterilor variabilei.
Exemplu: x3-2·x2-3·x + 10 =0
x 0 c = [ 1 -2 -3 10]
3 2 r = roots (c)
f ( x) x 2 x 3 x 10
Se obţine: r = 2 + 1.0000 i
root ( f ( x) x) 2 2 - 1.0000 i
- 2.0000
Metoda înjumătăţirii intervalului
(metoda bisecţiei)
Presupune că funcţia f(x) este continuă pe intervalul compact
[a,b] şi are valori de semne opuse la capetele intervalului:
F(x)=3·x8-5·x7-6·x3-x - 9
20
10
xî xs
0
10
20
1.83 1.84 1.85 1.86 1.87 1.88 1.89 1.9 1.91 1.92 1.93
Metoda înjumătăţirii intervalului
Pasul 1:
xi xs
x1 1.88 F( x1) 2.375 F( x1) F( xi) 33.069 xs x1 xs xi 0.05
2
30
Pasul 2:
20
10
xî x1 xs
0
10
20
1.83 1.84 1.85 1.86 1.87 1.88 1.89 1.9 1.91 1.92 1.93
Metoda înjumătăţirii intervalului
xi xs
x1 1.88
2
Pasul 2:
xi xs
x2 1.855 F( x2) 6.451 F( x2) F( xi) 89.811 xi x2 xs xi 0.025
2
30
Pasul 3:
20
10
xî xs
0
10
20
1.83 1.84 1.85 1.86 1.87 1.88 1.89 1.9 1.91 1.92 1.93
Metoda înjumătăţirii intervalului
xi xs
x1 1.88
2
Pasul 2:
xi xs
x2 1.855 F( x2) 6.451 F( x2) F( xi) 89.811 xi x2 xs xi 0.025
2
30
Pasul 3:
20
10
xî x2 xs
0
10
20
1.83 1.84 1.85 1.86 1.87 1.88 1.89 1.9 1.91 1.92 1.93
Metoda înjumătăţirii intervalului
xi xs
x2 1.855
2
Pasul 3:
xi xs
x3 1.867 F( x3) 2.217 F( x3) F( xi) 14.299 xi x3 xs xi 0.012
2
30
Pasul 4:
20
10
xî xs
0
10
20
1.83 1.84 1.85 1.86 1.87 1.88 1.89 1.9 1.91 1.92 1.93
Metoda înjumătăţirii intervalului
xi xs
x2 1.855
2
Pasul 3:
xi xs
x3 1.867 F( x3) 2.217 F( x3) F( xi) 14.299 xi x3 xs xi 0.012
2
30
Pasul 4:
20
10
xî x3 xs
0
10
20
1.83 1.84 1.85 1.86 1.87 1.88 1.89 1.9 1.91 1.92 1.93
Metoda înjumătăţirii intervalului
xi xs
x3 1.867
2
Pasul 4:
xi xs
x4 1.874 F( x4) 0.033 F( x4) F( xi) 0.074 xs x4 xs xi 0.006
2
30
20
10
xî xs
0
10
20
1.83 1.84 1.85 1.86 1.87 1.88 1.89 1.9 1.91 1.92 1.93
Metoda înjumătăţirii intervalului
xi xs
x3 1.867
2
Pasul 4:
xi xs
x4 1.874 F( x4) 0.033 F( x4) F( xi) 0.074 xs x4 xs xi 0.006
2
30
20
10
xî x4 xs
0
10
20
1.83 1.84 1.85 1.86 1.87 1.88 1.89 1.9 1.91 1.92 1.93
Start
[f(x)=….
xî, xs,
dа
x
x = (xî + xs)/2
da nu
f(x)*f(xî)>0 Stop
xî =x xs=x
x(0),
x prec= x +2
nu
|x prec -x|>
dа x
x prec = x
x = (x) Stop
atan ( x) 1 x 0 x atan ( x) 1
10
7.5
5
f(x)=arctg(x)+1-x Fi( x) atan ( x) 1
2.5
DFi( xixs eps ) x xi max( DFi( 2 3 0.01) ) 0.2
0
while x xs
2.5
ii 1
5
d
7.5
A Fi( x)
i dx
10
f1( z) 2.131 if ( 2.131 0.0001) z ( 2.131 0.0001)
10 8 6 4 2
20 otherwise
0 2 4 6 8 10 x x eps
3
A
MIT ( xixs eps ) if max( DFi( xixs eps ) ) 1 MIT ( 2 3 0.01) 2.131
2.8
x xi 2 eps
2.6 while x xi eps
x xi
2.4
xi Fi( xi)
xi
2.2
"inconvergenta" otherwise
φ(x)=arctg(x)+1
2
2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3
Metoda iteraţiilor
8
7 3
8 7 3 5 x 6 x x 9
3 x 5 x 6 x x 9 0 x
3
8
7 3
5x 6x x 9
Fi( x)
3
DFi( xixs eps ) x xi max( DFi( 0.534 0.01) ) 0.821 1. Se crează un fişier fi.m
while x xs max( DFi( 2.150.6 0.01) ) 21.54 function s = fi(x),
ii 1 s = atan(x) +1;
d
2. Se crează un fişier miter.m
A Fi( x) function miter (x,eps),
i dx
xprec = x + 2*eps;
x x eps
while abs (xprec - x) >eps,
A
xprec = x;
MIT ( xixs eps ) if max( DFi( xixs eps ) ) 1 MIT ( 0.534 0.01) 1.838 x = fi(x);
x xi 2 eps MIT ( 2.150.6 0.01) "inconvergenta" end
while x xi eps REZ = [Solutia -, num2str(x)];
x xi
disp(REZ)
3. Se apelează: miter (2.0, 0.001)
xi Fi( xi)
Se obţine: Solutia - 2.13266
xi
"inconvergenta" otherwise
Metoda Newton-Raphson
(metoda tangentei)
Metoda poate fi aplicată în cazul în care derivatele funcţiei f(x) –
f’(x) şi f’’(x) sunt determinate, continue şi îşi păstrează semnul
în intervalul de separare a rădăcinii.
Graficul funcţiei f(x) se înlocuieşte cu
tangenta la graficul funcţiei în x0
(aproximaţia iniţiala presupusă
cunoscută), intersecţia tangentei cu
axa x este luată ca aproximaţie
următoare x1 a rădăcinii. Procedeul
continua cu x1 astfel determinat.
Un dezavantaj al metodei îl prezintă necesitatea calculului la
fiecare pas de iteraţie a derivatei funcţiei f(x).
Metoda Newton-Raphson
x(0),
T=2
nu
|T|>
dа x
T = F(x)/dF(x)
x =x -T Stop
8 7 3
F( x) 3x 5 x 6 x x 9
2
d
MN ( xixs eps ) x xs if F( xs) F( xs) 0 if xi xs
2
d xs
xi otherwise
T 2 eps
while T eps
F( x)
T
d
F( x)
dx
x x T 2
d
xi 1.83 F( xi) F( xi) 26925.1
2
x d xi
2
d
MN ( 0.534 0.01) 1.874 xs 1.93 F( xs)
2
F( xs) 73953.251
d xs
MN ( 2.150.6 0.01) 0.901
Metoda Newton-Raphson
1. Se formează un fişier fn.m care conţine funcţia din partea dreaptă a ecuaţiei neliniare
function s = fn(x),
s = 3*x8 - 5* x7 - 6*x3 – x - 9;
2. Se formează un fişier dfn.m care conţine derivata funcţiei din partea dreaptă a ecuaţiei
function s = dfn(x),
s = 24*x7 - 35*x6 - 18*x2 - 1;
3. Se formează un fişier metnew.m de precizare a rădăcinii ecuaţiei neliniare
function metnew (x,eps),
T = 2*eps;
while abs (T) > eps,
T = fn(x)/dfn(x);
x = x –T;
end
end
REZ = [Rădăcina ecuaţiei -,num2str(x)];
disp(REZ)
Apel: metnew(1.93, 0.001).
Se obţine: Rădăcina ecuaţiei - 1.87366
Întrebări ?