Sunteți pe pagina 1din 36

Universitatea Tehnică a Moldovei

Facultatea Energetică şi Inginerie Electrică

Soluţionarea ecuaţiilor
neliniare

dr.conf. Victor Gropa


« Metode Numerice şi Informatică Aplicată »
Cuprins
• Separarea rădăcinilor ecuaţiilor
neliniare.
• Calculul rădăcinilor ecuaţiilor
neliniare cu precizia dată:
– Metoda înjumătăţirii intervalului.
– Metoda iteraţiilor.
– Metoda Newton.
Ce este o ecuaţie neliniară ?

Ecuaţiile neliniare cuprind toate ecuaţiile cu


excepţia ecuaţiilor algebrice de gradul I şi, de
regulă, au forma:
f(x,P1,P2,...Pn)=0
unde:
• f – funcţia dată;
• x – mărimea necunoscută;
• P1,P2,...Pn – parametrii problemei.
Exemplu de ecuaţie neliniară: 3·x8-5·x7-6·x3-x-9=0
Cum se rezolvă ecuaţia neliniară ?

Soluţionarea numerică a ecuaţiilor neliniare se


efectuează în două etape:
• separarea rădăcinilor ecuaţiei, adică
determinarea intervalelor de variaţie a
variabilei x, care conţin câte o rădăcină;
• determinarea rădăcinilor ecuaţiei, pentru o
precizie dată.
Separarea rădăcinilor ecuaţiilor

Considerăm funcţia f(x) în intervalul [xî,xs]:


3

1
1 2 3 4 5 6 7 8 9 10

Exemplu grafic al funcţiei: f(x) = sin(x) + cos(x1/2) + 1


Separarea rădăcinilor ecuaţiilor
Conform teoremei Bolzano-Caushy rădăcinile
ecuaţiei se află în intervalele în care funcţia f(x)
îşi schimbă semnul.
Astfel, pentru diferite valori ale variabilei x
(xî,xî+h,xî+2h...) este necesar de a determina
f(x), în scopul identificării intervalelor în care
funcţia îşi schimbă semnul.
Această modalitate necesită un volum mare de
calcule şi se recomandă doar la determinarea
aproximaţiilor iniţiale ale rădăcinilor.
Separarea rădăcinilor ecuaţiilor
Se consideră o ecuaţie algebrică cu coeficienţi reali
a0,a1,a2...an (a0>0):
a0 · xm+a1 · xm-1+a2 · xm-2+...+am · x0=0
Utilizând relaţia lui Lagrange poate fi determinată
limita superioară a rădăcinilor pozitive reale (Rs+):
Rs+=1+(B/a0)1/k
unde:
• B – valoarea maximă absolută din şirul coeficienţilor negativi ai polinomului;
• k – numărul primului coeficient negativ (k>=1).
Separarea rădăcinilor ecuaţiilor
• Utilizând ecuaţia auxiliară: f1(x)= xm· f(1/x)
poate fi determinată limita inferioară a
rădăcinilor pozitive reale (Ri+ = 1/R1);
• utilizând ecuaţia auxiliară: f2(x)= f(-x)
poate fi determinată limita superioară a
rădăcinilor negative reale (Rs- = -R2);
• utilizând ecuaţia auxiliară: f3(x)= xm· f(-1/x)
poate fi determinată limita inferioară a
rădăcinilor negative reale (Ri- = -1/R3).
Separarea rădăcinilor ecuaţiilor
Toate rădăcinile pozitive reale ale ecuaţiei
algebrice vor satisface inegalitatea:
x+ <= Rs+
Dacă R1, R2, R3 sunt limitele superioare ale
rădăcinilor pozitive reale ale ecuaţiilor auxiliare
atunci se satisfac inegalităţile:
Ri+ <= x+ <= Rs+
Rs- <= x- <= Ri-
Separarea rădăcinilor ecuaţiilor
Se consideră ecuaţia (m=8):
3·x8-5·x7-6·x3-x - 9=0
• Rs+=1+(B/a0)1/k =1+(9/3)1/1=4.00
f1(x)= xm · f(1/x) -> -(9·x8+x7+6·x5+ 5·x – 3)=0
• Ri+=1/[1+(B/a0)1/k] =1/[1+(3/9)1/8]=1/1.87=0.53
f2(x)= f(-x) -> 3·x8+5·x7+6·x3+x - 9=0
• Rs-=-[1+(B/a0)1/k] =-[1+(9/3)1/8]=-2.15
f3(x)= xm · f(-1/x) -> -(9·x8-x7-6·x5- 5·x – 3)=0
• Ri-=-1/[1+(B/a0)1/k] =-1/[1+(6/9)1/1]=-1/1.67=-0.60
Separarea rădăcinilor ecuaţiilor
Determinarea limitelor pentru ecuaţia:
3·x8-5·x7-6·x3-x - 9=0
a confirmat că se satisfac inegalităţile:
0.53 <= x+ <= 4.00
-2.15 <= x- <= -0.60

După determinarea limitelor intervalelor ce


conţin rădăcinile ecuaţiei neliniare poate fi
demarată etapa de separare a rădăcinilor.
300

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:

În aceste condiţii rezultă că ecuaţia f(x)=0 are cel puţin o rădăcină


α în interiorul intervalului [a,b].
Algoritmul prevede înjumătăţirea
continuă a intervalului de
separare a rădăcinii şi
determinarea de fiecare dată a
părţii, care conţine rădăcina.
Procedura continuă până când lăţimea intervalului curent |b-a|
nu devine mai mică decât precizia dată ε.
Metoda înjumătăţirii intervalului
Este o metodă sigură (robustă)
de determinare a unei
aproximaţii grosiere a
poziţiei unei rădăcini reale.
Pentru rafinarea soluţiei
această metodă nu este
comodă, conducând la un
număr mare de iteraţii.
De exemplu, este posibil ca la o
anumită iteraţie să fim
aproape de soluţie, iar la
pasul următor să ne
îndepărtăm de ea.
Metoda înjumătăţirii intervalului
xi  1.83 F( xi)  13.922
Pasul 0:
xs  1.93 F( xs)  24.736 xs  xi  0.1
30

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, 

|xs - xî| >  nu


x
x = (xî + xs)/2

da nu
f(x)*f(xî)>0 Stop

xî =x xs=x

Algoritmul executării Metodei Înjumătăţirii


Metoda înjumătăţirii intervalului
Se consideră ecuaţia: 3·x8-5·x7-6·x3-x - 9=0

8 7 3 1. Se crează un fişier fn.m


F( x)  3 x  5 x  6 x  x  9
function s = fn(x),
s = 3*x8 - 5* x7 - 6*x3 – x - 9;
MINJ ( xixs eps )  while xs  xi  eps
2. Se crează un fişier minj.m
xi  xs function minj(xi,xs,eps),
x while abs (xs – xi) >eps,
2
x =(xi + xs) /2;
xi  x if F( xi)  F( x)  0 if fn(x)*fn(xi)>0,
xs  x otherwise xi = x;
else xs = x;
x end
end
MINJ ( 0.534 0.01)  1.879 REZ = [Solutia -, num2str(x)];
disp (REZ)
MINJ ( 2.150.6 0.01)  0.897
3. Se apelează: x = minj (0.53,4.00, 0.01)
Se obţine: Solutia - 1.879
Metoda iteraţiilor
(metoda aproximaţiilor succesive)
Această metodă se bazează pe principul contracţiei şi presupune
găsirea iterativă a rădăcinii unei ecuaţii echivalente pentru
ecuaţia iniţială f(x)=0:
x=φ(x),
unde funcţia φ(x)=x-f(x) se numeşte iterată.
Evident că rădăcina α a ecuaţiei f(x)=0 va satisface şi ecuaţia:
α =φ(α).
Metoda nu converge dacă derivata ecuaţiei echivalente este mai
mare de 1 pentru orice x din intervalul de separare a rădăcinii.
Totodată, cu cât valoarea maximă a derivatei ecuaţiei echivalente
este mai mică, cu atât mai repede converge procesul.
Metoda iteraţiilor

Se alege o aproximaţie iniţială a


rădăcinii x(0), care se substituie
în partea dreaptă a ecuaţiei
iterate şi se calculă prima
valoare precizată a rădăcinii:
x(1)=φ(x(0)).
Analogic: x(2)=φ(x(1));
x(k+1)=φ(x(k))...
Procesul se întrerupe atunci, Din punct de vedere geometric prin
când se îndeplineşte condiţia: această metodă se determină
x (i1)  x (i )   rădăcina ca intersecţie a graficului
funcţiei φ(x) cu prima bisectoare.
Start
[(x)=….

x(0),

x prec= x +2

nu
|x prec -x|>

dа x

x prec = x
x = (x) Stop

Algoritmul executării Metodei Iteraţiilor


Metoda iteraţiilor
f1( z)  2.131 if ( 2.131  0.0001)  z  ( 2.131  0.0001)
20 otherwise

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( xixs eps )  x  xi max( DFi( 2 3 0.01) )  0.2
0
while x  xs
 2.5
ii 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 ( xixs eps )  if max( DFi( xixs 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( xixs eps )  x  xi max( DFi( 0.534 0.01) )  0.821 1. Se crează un fişier fi.m
while x  xs max( DFi( 2.150.6 0.01) )  21.54 function s = fi(x),
ii 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 ( xixs eps )  if max( DFi( xixs eps ) )  1 MIT ( 0.534 0.01)  1.838 x = fi(x);
x  xi  2 eps MIT ( 2.150.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

Este recomandabil pornirea procesului iterativ din acea


extremitate a intervalului [a,b] care satisface condiţia:
f(x0) · f′′(x0) > 0.
Start
[F(x)=….
[dF(x)=….

x(0),

T=2

nu
|T|>

dа x

T = F(x)/dF(x)
x =x -T Stop

Algoritmul executării Metodei Newton


Metoda Newton-Raphson

8 7 3
F( x)  3x  5 x  6 x  x  9

2
d
MN ( xixs 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.534 0.01)  1.874 xs  1.93 F( xs) 
2
F( xs)  73953.251
d xs
MN ( 2.150.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 ?

S-ar putea să vă placă și