Sunteți pe pagina 1din 4

METODE NUMERICE DE REZOLVARE A ECUAŢIILOR ALGEBRICE

- METODA BISECȚIEI -

În practica inginerească se întâlnesc adeseori situaţii în care este necesară rezolvarea unor
ecuaţii algebrice polinomiale sau transcendente cu o singură variabilă, ale căror soluţii nu se pot obţine
pe cale analitică, prin metodele cunoscute în algebră. Pentru rezolvarea unor asemenea ecuaţii se
folosesc metode numerice de calcul aproximativ care permit calculul rădăcinilor cu o precizie
suficientă unui calcul ingineresc obişnuit.
Fie o ecuaţie algebrică de forma f ( x ) = 0 . Condiţia necesară şi suficientă pentru ca acesta să
aibă o singură soluţie în intervalul [a, b] este ca funcţia f ( x ) să fie continuă, strict monotonă şi să
prezinte o schimbare de semn pe intervalul [a, b], deci f ( x ) trebuie să îndeplinească condiţiile:
1. f : [a, b]→ R să fie o funcţie Rolle , continuă şi derivabilă în intervalul [a, b] cu f ′( x )> 0
sau f ′( x )< 0;
2. f ( a ) * f ( b ) < 0 ⇔ f ( a ) < 0, f ( b ) > 0 sau f ( a ) > 0, f ( b ) < 0 ;
Cele mai utilizate metode numerice aproximative pentru determinarea soluţiilor unei ecuaţii
algebrice sunt:
1. metoda înjumătăţirii intervalului (bisecţiei);
2. metoda coardei (secantei);
3. metoda tangentelor de ordinul I a lui Newton (Newton- Raphson);
4. metoda tangentelor de ordinul II a lui Newton;
5. metoda iterativă pentru ecuaţii de forma x=g(x).
Un caz particular de aplicare a metodelor lui Newton îl constituie extragerea rădăcinii de
ordinul k dintr-un număr pozitiv N .

Metoda bisecției, numită uneori și metoda dihotomiei sau a înjumătățirii intervalelor, este
cea mai simplă dintre metodele de rezolvare a ecuațiilor algebrice și transcendente pentru determinarea
rădăcinii unei ecuaţii algebrice de forma f ( x ) = 0 , rădăcină află în intervalul (a,b).
Condiţiile necesare pentru a putea aplica această metodă sunt:
 f(x) să fie o funcţie continuă, derivabilă şi strict monotonă în intervalul [a, b];
 funcţia să prezinte o variaţie de semn în intervalul [a, b], adică
f(a)⋅f(b)<0

Metoda se bazează pe următorul algoritm:


1. se calculează valorile funcţiei f(x) în trei puncte: la capetele intervalului a, b şi la mijlocul
distanţei: c = (a + b) / 2 şi se verifică semnele;
2. se calculează din nou valorile funcţiei f(x) pentru subintervalul pentru care funcţia prezintă
variaţie de semn în trei puncte: la capetele intervalului respectiv la mijlocul distanţei;
3. se repetă algoritmul până când se obţine o lungime pentru ultimul subinterval mai mică
decât eroarea cerută pentru calculul rădăcinii: ε = xn+1 – xn
Sunt posibile următoarele patru cazuri prezentate în tabelul 1:

Tabelul 1
Caz f(a) f(c) f(b) Rădăcina ξ
1 - + + ξ ϵ (a,c)
2 - - + ξ ϵ (c,b)
3 + + - ξ ϵ (c,b)
4 + - - ξ ϵ (a,c)

În figura de mai jos este prezentat graficul unei funcţii ce corespunde cazului 1 şi apoi cazului 2
prezentate în tabelul 1.

Exemplu de implementare a aplicației


Folosind metoda bisecţiei să se afle rădăcina ecuaţiei algebrice transcendente:
ln x + 3x2 − 4x −1 = 0 , cu o eroare ε<10-5 (cu cinci zecimale exacte), ştiind că această rădăcină se află
în intervalul [1, 2]. Să se reprezinte grafic ecuația dată și soluția găsită.

Rezolvare: Pentru determinarea soluţiei ecuaţiei date, prin metoda bisectiei, se aplică
algoritmul prezentat mai jos:
clear
clc
er=10^-5 % se impune eroarea de calcul
n=50 % se stabileste numarul maxim de iteratii admise
a=zeros(n,1); % se vor stoca valorile pt limita inferioara
b=zeros(n,1); % se vor stoca valorile pt limita superioara
a(1)=1; % se impune limita inferioara a domeniului de cautare
b(1)=2; % se impune limita superioara a domeniului de cautare
for k=1:n
m(k)=(a(k)+b(k))/2; % se calculeaza mijlocul intervalului
fm(k)=log(m(k))+3*m(k)^2-4*m(k)-1; % se calculeaza semnul fct in pct de mijloc
fa(k)=log(a(k))+3*a(k)^2-4*a(k)-1; % se calculeaza semnul fct in limita inferioara
if abs(a(k)-m(k))<er; % se impune conditia de oprire a calculelor
break
% se stabileste subintervalul in care se gaseste solutia
else if (fa(k)*fm(k))<0;
a(k+1)=a(k);
b(k+1)=m(k);
else
a(k+1)=m(k);
b(k+1)=b(k);
end

1
end
end
solutie_gasita=m(k) % solutia care s-a gasit
eroare_calcul=abs(a(k)-m(k)) % valoarea calculata a erorii de calcul
iteratii_efectuate=k % numarul de iteratiii executate

% mai jos sunt codurile de afisare grafica


x=1:0.01:2;
y=log(x)+3*x.^2-4*x-1;
plot(x,y)
grid on
hold on
stem(m(1:k),fm(1:k))
plot(m(k),fm(k),'ks')

Tabelul 2

k ak mk bk f(a) f(m) f(b) eroare


1 1 1.5 2 -2 0.155465 3.693147 0.5
2 1 1.25 1.5 -2 -1.08936 0.155465 0.25
3 1.25 1.375 1.5 -1.08936 -0.50967 0.155465 0.125
4 1.375 1.4375 1.5 -0.50967 -0.18788 0.155465 0.0625
5 1.4375 1.46875 1.5 -0.18788 -0.01891 0.155465 0.03125
6 1.46875 1.484375 1.5 -0.01891 0.067601 0.155465 0.015625
7 1.46875 1.476563 1.484375 -0.01891 0.024177 0.067601 0.007813
8 1.46875 1.472656 1.476563 -0.01891 0.002592 0.024177 0.003906
9 1.46875 1.470703 1.472656 -0.01891 -0.00817 0.002592 0.001953
10 1.470703 1.47168 1.472656 -0.00817 -0.00279 0.002592 0.000977
11 1.47168 1.472168 1.472656 -0.00279 -0.0001 0.002592 0.000488
12 1.472168 1.472412 1.472656 -0.0001 0.001246 0.002592 0.000244
13 1.472168 1.47229 1.472412 -0.0001 0.000573 0.001246 0.000122
14 1.472168 1.472229 1.47229 -0.0001 0.000236 0.000573 6.1E-05
15 1.472168 1.472198 1.472229 -0.0001 6.81E-05 0.000236 3.05E-05
16 1.472168 1.472183 1.472198 -0.0001 -1.61E-05 6.81E-05 1.53E-05
17 1.472183 1.472191 1.472198 -1.61E-05 2.60E-05 6.81E-05 7.63E-06

Metoda bisecţiei este slab convergentă. Soluţia aproximativă a ecuaţiei este ξ=1.472191
calculată cu o eroare ε < 10-5 după 17 paşi.
În figura de mai jos poate fi observată maniera în care este depistată soluția

2
Probleme propuse spre rezolvare

Problema 1
- Să se implementeze algoritmul metodei bisecţiei. Pe baza implementării să se
determine o rădăcina a ecuaţiei : x 2  14 x  45  0 cu precizia de 0.0000000001 ( zece
zecimale exacte), impunând domeniu de căutare [0, 14].
- Realizaţi o reprezentare grafică 2D a ecuaţiei : x 2  14 x  45  0 în intervalul [0, 14]
- Realizaţi o reprezentare grafică 2D a modului în care se depistează rădăcina ecuaţiei
folosind sintaxa stem.

Problema 2
- Să se implementeze algoritmul metodei bisecţiei. Pe baza implementării să se
determine o rădăcina a ecuaţiei : x 3  21x 2  138 x  280  0 cu precizia de 0.001, impunând
domeniu de căutare [-2, 25].
- Realizaţi o reprezentare grafică 2D a ecuaţiei : x 3  21x 2  138 x  280  0 în intervalul
[2, 12]
- Marcaţi pe graficul funcţiei x 3  21x 2  138 x  280  0 rădăcina găsită, cu un cerc negru.

Problema 3
- Să se implementeze algoritmul metodei bisecţiei. Pe baza implementării să se
1 1
determine o rădăcina a ecuaţiei : 44  2
 15   1  0 cu precizia de 0.01, impunând
x x
domeniu de căutare [0, 15].
1 1
- Realizaţi o reprezentare grafică 2D a ecuaţiei : 44  2
 15   1  0 în intervalul [0, 15]
x x
- Realizaţi o reprezentare grafică 2D a modului în care se depistează rădăcina ecuaţiei
folosind sintaxa stem.

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