Sunteți pe pagina 1din 8

REZOLVAREA NUMERICĂ A ECUAŢIILOR

ALGEBRICE ŞI TRANSCENDENTE

1. Metoda înjumătăţirii intervalului (Bisecţiei)


Considerăm că ecuaţia f ( x )  0 are o singură rădăcină în intervalul
(a 0 , b 0 ) şi că funcţia f este continuă pe acest interval. Această presupunere este
valabilă, în condiţiile parcurgerii primei etape, aceea de separare a unei singure
rădăcini într-un anumit interval.
Fie  eroarea admisă pentru soluţia ecuaţiei. Din punct de vedere grafic,
rezolvarea ecuaţiei prin această metodă, este ilustrată în Fig.1. Intervalul iniţial
(a 0 , b 0 ) se împarte în două părţi egale prin punctul:

a 0  b0
c0 
2
f(x)

A0

c0
x
a0 xR b0
a1 b1
B0

Fig.1.

Se efectuează apoi produsul f (a 0 )f (c 0 ) . Intervalul care conţine în


continuare soluţia se notează (a 1 , b1 ) . Situaţiile care pot apărea sunt următoarele:

 0, x R  (a 0 , c 0 ), se noteaza a1  a 0 , b1  c 0

f (a 0 )f (c 0 ) :  0, x R  c 0
 0, x  (c , b ), se noteaza a  c , b  b .
 R 0 0 1 0 1 0
În situaţia prezentată în grafic avem f (a 0 )f (c 0 ) < 0. Cu intervalul (a 1 , b1 ) se
procedează în mod asemănător.
Rezultă două şiruri,  a n  nN crescător (sau constant pe porţiuni) şi  b n 
descrescător (sau constant pe porţiuni) soluţia x R aflându-se în permanenţă în
intervalul (a n , b n ) .
Lungimea acestui interval este:
1
bn  a n  b0  a 0 .
2n
Numărul minim de iteraţii nmin se determină funcţie de precizia  impusă calculelor:
bn  a n   .

Rezultă pentru nmin o expresie de forma:


 b0  a 0 
n min  log 2   1,
  

unde [] reprezintă funcţia parte întreagă.


Valoarea nmin nu depinde de complexitatea ecuaţiei care se rezolvă ci numai
de lungimea intervalului iniţial şi de precizia  impusă.
Orice valoare cuprinsă în intervalul final (a n , b n ) poate fi considerată ca
fiind soluţie aproximativă pentru ecuaţia dată. De obicei se consideră
1
xR  (a n  b n ),
2
mijlocul ultimului interval determinat.

Aplicaţie: function rad_ec = bisectie_ec(a0,b0,max_err,max_it,index_f)

Unde: a0, b0 = extremităţile intervalului iniţial în care se cauta o rădacină


max_err = valoarea maximă admisă pentru eroare
max_it = numărul maxim de iteraţii admis
index_f = selector de funcţie, f, astfel:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function val = f(x,index)

% functia f :

switch index
case 1
val = x.^6 - x - 1;
case 2
val = x - exp(-x);
case 3
val = x.^3-x-2;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Exemplu : bisectie_ec(0,1,0.001,20,2)

Se vor rezolva ecuaţiile date în atât prin limitarea numărului de iteraţii cât şi prin
stabilirea unei erori maxime admise.

2. Metoda lui Newton (tangentei)


Considerăm că ecuaţia f ( x )  0 conţine în intervalul (a 0 , b 0 ) o singură
soluţie x R . Grafic, rezolvarea ecuaţiei prin această metodă este ilustrată în Fig.2. De
asemenea, considerăm că pe acest interval derivatele f' şi f" păstrează semn
constant, deci f este strict monotonă şi

f(x)
A0

A1
xR b0
x
x0 =a0 x1 x2
B0

Fig.2.
nu are punte de inflexiune.
Ea presupune aproximarea soluţiei exacte x R printr-un şir de valori x 1 , x 2
... obţinute prin intersecţia tangentelor duse la graficul funcţiei f în punctele A0, A1,...
cu axa absciselor.
Punctul iniţial x 0 se alege ca fiind una din extremităţile intervalului
(a 0 , b 0 ) şi anume aceea care îndeplineşte condiţia:

f ( x 0 )f " ( x 0 )  0
Această condiţie ne asigură că intersecţia tangentei la grafic cu axa Ox se va
afla în interiorul intervalului iniţial.
Considerăm punctul generic A k ( x k , f ( x k )) situat pe graficul funcţiei f.
Ecuaţia tangentei în acest punct la graficul lui f este:
y  f ( x k )  f ' ( x k )( x  x k ) .

Intersecţia cu axa Ox este punctul x k 1 obţinut pentru y = 0:


f (x k )
x k 1  x k  ; k  0,1,2,....
f ' (x k )
Această expresie este formula iterativă a lui Newton.
Se notează:
f (x)
( x )  x  .
f ' (x)

Funcţia  se numeşte funcţia de iterare a lui Newton.


Cu noua notaţie, relaţia de recurenţă a lui Newton se poate pune sub forma:
x k 1  ( x k ), k  0,1,2,...

Notând  k  x k  x R , eroarea de aproximare la pasul k, se poate scrie că:

" ( x R )
 k 1   2
k  .
2!
Această relaţie arată că eroarea de aproximare evoluează după o lege
pătratică. Metoda lui Newton are deci o viteză mare de convergenţă.
Dezavantajul metodei constă în faptul că în cadrul fiecărui pas este necesar
calculul derivatei funcţiei în punctul respectiv.

Aplicaţie : function root = newton_ec(x0,max_err,max_it,index_f)

Unde: x0 = punctul iniţial, din care începe procesul iterativ


max_err = valoarea maximă admisă pentru eroare
max_it = numărul maxim de iteraţii admis
index_f = selector de funcţie, f, astfel:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function val = f(x,index)

% Definirea functiei f:

switch index
case 1
val = x.^6 - x - 1;
case 2
val = x - exp(-x);
case 3
val = x.^3-x.^2-x-1;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Exemplu : newton_ec(2,0.000001,12,3)
Se vor rezolva ecuaţiile date în atât prin limitarea numărului de iteraţii cât şi prin
stabilirea unei erori maxime admise.

3. Metoda aproximaţiilor succesive.


Pentru rezolvarea ecuaţiei f ( x )  0 prin această metodă, printr-un artificiu
de calcul se aduce această ecuaţie la forma echivalentă:
x  ( x ) .

Dacă x R este soluţie pentru ecuaţia f ( x )  0 , ea este soluţie şi pentru


ecuaţia echivalentă, deci vom avea:
x R  ( x R ) .

Fie x 0  (a 0 , b 0 ) o aproximaţie iniţială pentru soluţia ecuaţiei.


Metoda constă în aproximarea soluţiei exacte x R printr-un şir de valori x 1 ,
x 2 ..., construit pe relaţia iterativă
x k 1  ( x k ), k  0,1,2,...

Considerăm că funcţia , derivabilă pe intervalul (a 0 , b 0 ) satisface condiţia:


' ( x )    1 () x  (a 0 , b0 ) .

În aceste condiţii, şirul de iterare definit de relaţia iterativă este convergent către
soluţia x R a ecuaţiei.
Acest lucru se poate arăta pornind de la relaţia evidentă
x k 1  x R  ( x k )  ( x R )

şi aplicând teorema lui Lagrange pe intervalul de extremităţi x k şi x R :


x k 1  x R  ( x k )  ( x R )  ' ( k )(x k  x R )

unde:  k  ( x k , x R ).
Ţinând cont de aceste relaţii şi facând înlocuirile, prin aplicarea modulului se
obţine:
x k 1  x R    x k  x R , k  0,1,2,... .

Dând lui k valori obţinem:


x k 1  x R  k 1  x 0  x R .

Deoarece  < 1, prin trecere la limită se obţine:


lim x k 1  x R .
k 

Funcţia  este continuă iar prin trecere la limită în relaţia de recurenţă


x k 1  ( x k ), k  0,1,2,... , se obţine:
lim x k 1  ( lim x k )
k  k 

adică:
x R  ( x R ).

Rezultă că limita şirului de puncte x 0 , x 1 , x 2 ,... reprezintă soluţia ecuaţiei.


Din punct de vedere grafic, rezolvarea ecuaţiei f ( x )  0 prin această metodă
se desfăşoară aşa cum este prezentat în Fig.3 şi în Fig.4.
y y
y=x y=φ(x) y=x

y=φ(x)

xR x2 x1 x0 x x1 xR x2 x0 x

(a) (b)
0<<1, (Convergenţă)
Fig.3.
y y=φ(x) y
y=(x)
y=x
y=x

x1 xR x0 x2 x x1 x0 xR

(a) (b)
>1 (Divergenţă)
Fig.4.

Notând eroarea  k  x k  x R obţinem:


 k 1   k  ' ( x R ).
Se obţine un grad de convergenţă liniar; eroarea de la pasul (k+1) este
proporţională cu eroarea de la pasul k.

Aplicaţie : function rad_ec = aprox_succ_ec(x0,max_err,max_it,index_fi)

Unde : x0 = punctul iniţial, din care începe procesul iterativ


max_err = valoarea maximă admisă pentru eroare
max_it = numărul maxim de iteraţii admis
index_fi = selector de funcţie, φ, astfel:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function val = fi(x,index)

% Definirea functiei fi:

switch index
case 1
val = x.^3-2;
case 2
val = (x+2)^(1/3);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Exemplu : aprox_succ_ec(1.5, 0.0001,10,2)

Se vor analiza situaţiile prezentate, evidenţiind convergenţa metodei. Se rezolvă


efectiv ecuaţia.

4. Metoda secantei (coardei)


Considerăm ecuaţia f ( x )  0 pentru care am separat în intervalul (a 0 , b 0 ) o
singură soluţie.
Din punct de vedere grafic, rezolvarea ecuaţei prin această metodă este ilustrată în
Fig.5.

f(x)
A0

xR b0
x1
a0 x0

B0
Fig.5.
Se unesc punctele A 0 şi B0 printr-o dreaptă de ecuaţie:
f ( b 0 )  f (a 0 )
y  f (a 0 )   (x  a 0 ) .
b0  a 0
Intersecţia dreptei cu axa Ox (y = 0) ne dă punctul x 0 :
a f ( b )  b 0 f (a 0 )
x0  0 0
f ( b 0 )  f (a 0 )
Punctul x 0 împarte intervalul (a 0 , b 0 ) în două subintervale din care numai
unul va conţine în continuare soluţia x R .
Pentru a determina care subinterval conţine soluţia x R se efectuează
produsul:

 0, x R  (a 0 , x 0 ), se not. a1  a 0 , b1  x 0
f (a 0 )f ( x 0 ) :  .

 0, x R  (x 0 , b0 ), se not. a1  x 0 , b1  b0
Cu intervalul (a 1 , b1 ) se reia procedeul descris pentru (a 0 , b 0 ) . Rezultă un
şir de puncte x 1 , x 2 ,…, x n , unde:
a n f ( b n )  b n f (a n )
xn  .
f ( b n )  f (a n )

Aceste două şiruri,  a n  nN şi  b n  nN au o limită comună, soluţia x R a


ecuaţiei.
La toate metodele iterative prezentate procedeul de calcul se opreşte atunci
când există un indice n pentru care:
x n  x n 1   ,

 fiind eroarea admisă. Acest test nu ne asigură că am determinat o valoare


aproximativă pentru soluţia situată faţă de valoarea exactă la o distanţă mai mică decât
.
Pentru a fi mai siguri, în această situaţie se consideră o condiţie de oprire a
calculelor de forma:

x n  x n 1  .
10

Aplicaţie : function rad_ec = secanta_ec(a0,b0,max_err,max_it,index_f)

Unde : a0, b0 = extremităţile intervalului iniţial în care se cauta o rădacină


max_err = valoarea maximă admisă pentru eroare
max_it = numărul maxim de iteraţii admis
index_f = selector de funcţie, f, astfel:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function value = f(x,index)

% definirea functiei f

switch index
case 1
value = x.^6 - x - 1;
case 2
value = x - exp(-x);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Exemplu : secanta_ec(1,2,0.00001,12,2)

Se vor rezolva ecuaţiile date în atât prin limitarea numărului de iteraţii cât şi prin
stabilirea unei erori maxime admise.

Pentru ecuaţiile algebrice ( de tip polinomial ) se va face o verificare a rezultatelor


obţinute folosind funcţia roots . Pentru această funcţie se dă mai întâi help roots în
matlab pentru a înţelege modul de utilizare.
Se notează rezultatele obţinute cu această funcţie.

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