Sunteți pe pagina 1din 14

METODE MUMERICE LUCRRI DE LABORATOR

#05

LUCRAREA #05

REZOLVAREA NUMERIC A ECUAIIILOR ALGEBRICE

REZUMATUL I SCOPUL LUCRRII


n aceast lucrare de laborator se prezint o serie de metode pentru rezolvarea
ecuaiilor algebrice, polinomiale i transcendente.
Exist multe metode special concepute pentru a rezolva ecuaii algebrice.
Metodele de gsire a soluiei sunt de obicei metode iterative. Aceste metode
furnizeaz un ir de aproximaii, care tinde la x*, n anumite condiii.
O metod iterativ presupune 3 aspecte importante:
Alegerea unei condiii iniiale pentru soluia ecuaiei;
Relaia de iteraie ce st la baza calculului irului de aproximaii;
Condiii de oprire a procesului iterativ de calcul.
Lucrarea are drept scop elaborarea unor funcii MatLab pentru metodele
rezolvare a ecuaiilor algebrice i transcendente:
metoda njumtirii intervalului (metoda biseciei);
metoda falsei poziii;
metoda lui Newton (metoda tangentei);
metoda secantei.
nsuirea metodelor se va face pe exemple concrete de ecuaii prin realizarea
aplicaiilor specifice.
Pentru ecuaiile polinomiale se prezint funciile predefinite n MatLab, care se pot
aplica direct.

CUPRINSUL LUCRRII
1. Consideraii introductive
2. Metoda njumtirii intervalului (metoda biseciei)
3. Metoda falsei poziii
4. Metoda Newton-Raphson (metoda tangentei)
5. Metoda secantei
6. Rezolvarea ecuaiilor polinomiale
7. Aplicaii de laborator

63

#05

Rezolvarea numeric a ecuaiilor algebrice

1. Consideraii introductive
Se consider f(x)=0, cu x [a,b]., n care f(x) este o funcie continu, f(x):[a,b] R.
Se presupune c ecuaia admite o soluie real x*, izolat pe acest interval i se
dorete gsirea ei.
Dac f(x) ar fi o funcie liniar, problema este banal i admite o soluie analitic.
S presupunem c f(x) este neliniar. Dac f este un polinom, atunci ecuaia se
numete polinomial, dac nu, ecuaia se numete transcendent.
Metodele de gsire a soluiei sunt de obicei metode iterative. Aceste metode
furnizeaz un ir de aproximaii, care tinde la x*, n anumite condiii.
O metod iterativ presupune 3 aspecte importante:
Alegerea unei condiii iniiale pentru soluia ecuaiei;
Relaia de iteraie ce st la baza calculului irului de aproximaii;
Condiii de oprire a procesului iterativ de calcul.
Se vor studia 4 metode iterative de rezolvare a ecuaiilor i anume:
1. Metoda biseciei sau metoda njumtirii intervalului;
2. Metoda falsei poziii;
3. Metoda lui Newton sau metoda tangentei.
4. Metoda secantei

2. Metoda njumtirii intervalului (metoda biseciei)


Se consider ecuaia f(x)=0, f : R R continu. S presupunem c s-a gsit un
interval [a,b] R, pentru care: f (a) f (b) 0 , adic, exist cel puin o soluie n acest
interval.
Gsirea acesteia folosind metoda biseciei presupune aproximarea succesiv a
a b
rdcinii ecuaiei prin mijlocul intervalului [a,b] prin x
(fig. 5.1).
2
Dac f(x)=0, atunci x este rdcin pentru ecuaie. n caz contrar, se calculeaz
produsul f(a)f(x). Dac acesta este negativ atunci rdcina se afl n continuare n
intervalul [a,x], altfel rdcina se gsete n cealalt jumtate a intervalului iniial [x,b].
Calculele se reiau pentru noul interval.
Metoda este simpl i necesit doar o evaluare de funcie pentru fiecare iteraie.
S studiem cele 3 aspecte importante:
a)
condiii iniiale: se calculeaz f(a) i f(b) in eventualitatea c a sau b sunt
soluii ale ecuaiei.
b)
Relaia de iteraie: la fiecare pas soluia se aproximeaz cu jumtatea
a b
intervalului rmas la pasul anterior, adic xi i i
(5.1)
2
c)
Condiii de oprire a procesului: b a tol sau f ( x) tol pentru x [a,b].
Variabila tol reprezint tolerana cu care se calculeaz soluia ecuaiei.
Sfritul procesului se poate face i la depirea unui numr maxim de
iteraii. Calculul numrului maxim de iteraii se face astfel: dup un numr
64

METODE MUMERICE LUCRRI DE LABORATOR

#05

m de iteraii, intervalul de cutare devine

(b a)
. Numrul de iteraii va fi
2m

(b a)
tol . n acest fel rezult:
2m
(b a )
m log 2

tol

dat de relaia:

(5.2)

y f(a)=f(a0)
f(x)
x0

x0

a0 b0
2

b=b0
x

a=a0
f(x0)
f(b)=f(b0)
f(x0)*f(a0)<0, deci se pastreaza intervalul din stanga lui x0

f(a1)
f(x1)
b1
a1

x1

a1 b1
2

x1

x
f(b1)

Fig. 5. 1 Metoda biseciei de rezolvare a ecuaiilor algebrice

Dup cele spuse mai sus se poate construi algoritmul de rezolvare al unei ecuaii
cu metoda biseciei:
Date de intrare:
a, b capetele intervalului
f funcia continu
tol precizia determinrii soluiei
Date de ieire:
sol soluia ecuaiei
val valoarea funciei n soluie
err eroarea de calcul
1: Calculeaz f(a), f(b)
2: Dac f(a)f(b)<0
atunci f admite soluie pe intervalul [a,b]
altfel f nu admite soluie. Stop
sfarsit daca
3: Calculeaz max_iteratii=1+round((log(b-a)-log(tol))/log(2))
4: pentru k=1 pn la max_iteratii
Calculeaz c=(a+b)/2
Calculeaz f(c)
dac f(c)=0
atunci a=c; b=c;
altfel dac f(b)f(c)<0
atunci b=c
altfel a=c
sfarsit daca
sfarsit daca
dac b-a<tol

65

#05

Rezolvarea numeric a ecuaiilor algebrice

atunci Exit
sfarsit daca
5: Calculeaz sol=(a+b)/2
err=abs(b-a)
val=f(c)
6: afieaz valorile obinute

Rezolvarea n MatLab:
n cele ce urmeaz se propune o soluie de implementare a metodei biseciei n
limbajul de programare MatLab.
Pentru a avea generalitate, adic pentru a putea fi folosit la orice ecuaie algebric,
se implementeaz, dup algoritmul de mai sus, o funcie care poate fi adugat celorlalte
funcii MatLab. Se mai face nc o data observaia, ca pentru a funciona, aceasta trebuie
salvat ntr-un folder, a crui cale a fost setat cu opiunea Set path....
Codul de program MatLab pentru metoda biseciei poate fi urmtorul; acesta a
fost scris folosind multe comentarii pentru a putea fi neles mai uor.
function [solutie,val,eroare]=mbisect(f,a,b,tol)
echo off;
%functie pentru rezolvarea ecuatiilor algebrice prin metoda bisectiei
%sau metoda injumatatirii intervalului
% Intrari
%
f
numele functiei descrisa intr-un fisier functie
%
a
limita stanga a intervalului
%
b
limita dreapta a intervalului
%
tol
toteranta de caclul
% Iesiri
%
solutie
Solutia ecuatiei pe intervalul stabilit
%
val
Valoarea functiei in "solutie"
%
eroare
Eroarea estimata pentru solutie
ya=feval(f,a);
yb=feval(f,b);
if ya*yb<0
fprintf('Se observa ca ecuatia are solutie pe intervalul [%d %d]',a,b)
else
error('Ecuatia nu prezinta solutie pe intervalul stabilit')
return;
end
disp('Apasa o tasta...');
pause;
nr_iteratii=1 + round((log(b-a)-log(tol))/log(2));
for k=1:nr_iteratii
solutie=(a+b)/2;
val=feval(f,solutie);
if val==0
a=solutie;
b=solutie;
elseif yb*val>0
b=solutie;
yb=val;
else
a=solutie;
ya=val;
end
if b-a<tol
break;
end
end

66

METODE MUMERICE LUCRRI DE LABORATOR

#05

solutie=(a+b)/2;
val=feval(f,solutie);
eroare=abs(b-a)/2;

O dat scris i salvat ntr-o cale definit, funcia poate fi apelat pentru diverse
ecuaii i pentru diverse intervale.
Practic, pentru a calcula soluiile unei ecuaii folosind aceast metod, respectiv
aceast funcie definit mai sus, se parcurg urmtoarele etape:
1. se definete ntr-un fiier function, funcia matematic ce definete ecuaia;
2. se reprezint grafic funcia, pn cnd se descoper intervalele pe care ecuaia
are soluii izolate. Citirea acestor date se poate face interactiv folosind funcia MatLab
ginput;
3. se apeleaz funcia mbisect de tot attea ori, cte intervale s-au descoperit la
pasul anterior.
Exemplul 5.1. S se rezolve ecuaia x 3 3 x 1 0 .
Se definete un fiier funcie cu urmtorul coninut:
function y = ex5_1(x)
y = x.^3-3*x+1

Se reprezint grafic funcia folosind funcia fplot, astfel:


fplot(ex5_1,[-2,2])
grid

Rezult graficul din figura 5.2.


3
2. 5
2
1. 5
1
0. 5
0
-0.5
-1
-2

-1.5

-1

-0.5

0.5

1.5

Fig. 5. 2 Reprezentarea grafic a funciei din exemplul 5.1.

De pe grafic se observ c ecuaia prezint soluii pe intervalele [-2;-1,5], [0;0,5],


[1,5;2].
Deci se aplic funcia mbisect de 3 ori astfel:

67

#05

Rezolvarea numeric a ecuaiilor algebrice


[solutie1,val1,eroare1]=mbisect('ex5_1',-2,-1.5,0.0001)
[solutie2,val2,eroare2]=mbisect('ex5_1',0,0.5,0.0001)
[solutie3,val3,eroare3]=mbisect('ex5_1',1.5,2,0.0001)

rezultnd soluiile i erorile de calcul:


soutie1 =
-1.8794
val1 =
1.6125e-004
eroare1 =
3.0518e-005
solutie2 =
0.3473
val2 =
-6.3846e-005
eroare2 =
3.0518e-005
solutie3 =
1.5321
val3 =
-6.0270e-005
eroare3 =
3.0518e-005

Se vor scrie astfel de funcii pentru diferite ecuaii i se vor experimenta la ora de
laborator.
n Matlab este, de asemenea, implementat pentru ecuaii de forma f(x)=0 o variant a
metodei biseciei prin funcia fzero, cu sintaxa urmtoare (n forma cea mai simpl):
x = fzero(funct,x0)
x = fzero(funct,x0,tol)
x = fzero(funct,x0,tol,trace)
unde funct reprezint numele dat de utilizator funciei f(x) a crei expresie poate
fi particular transcendent, x0 este o aproximare iniial a soluiei ecuaiei, x reprezint
soluia de aproximare a ecuaiei dat de funcia Matlab, tol tolerana de calcul, iar variabila
trace controleaz afiarea rezultatelor intermediare pe ecran.
Exemplul 5.2. S se rezolve ecuaia e x sin( x) 3 .
Se definete fiierul function cu definiia ecuaiei astfel:
function y1=ex5_2(x)
y1=exp(x)-sin(pi*x)-3

Se reprezint grafic funcia cu:


fplot('ex5_2',[0.5,1.5])

68

METODE MUMERICE LUCRRI DE LABORATOR

#05

2.5
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-2.5
0.5

0. 6

0.7

0.8

0.9

1.1

1.2

1.3

1. 4

1.5

Fig. 5. 3 Reprezentarea grafic a funciei din exemplul 5.2.

Se observ c soluia se afl n intervalul [1;1,1]. Oricare din aceste dou valori
poate fi folosit pentru a afla soluia ecuaiei cu funcia fzero:
x=fzero('ex5_2',1)
x =
1.0476

Rezultatele pentru apelarea funciei cu celelalte dou sintaxe se vor vizualiza n


cadrul orei de laborator.

3. Metoda falsei poziii


Se consider ecuaia f(x)=0, f:R R continua i presupunem c s-a gsit un interval
[a,b] R, pentru care: f (a) f (b) 0 , adic, exist cel puin o soluie n acest interval.
Metoda calculului rdcinii aproximative se face prin interpolarea liniar a
funciei f (x) cunoscnd 2 puncte (a, f (a)) i (b, f (b)).
Cu alte cuvinte se mparte intervalul n dou pri prin intersecia lui cu
dreapta ce trece prin punctele specificate mai sus (fig. 5.4).
x a
f (ai )
Avem n acest caz: i i
, de unde rezult formula de iteraie:
bi ai
f (bi ) f (ai )

xi

ai f (bi ) bi f (ai )
f (bi ) f (ai )

(5.3)

Concluzionnd, se poate observa c regula falsei poziii este asemntoare cu


regula biseciei, prin mprirea intervalului n 2 subintervale, pentru care punctul de
mprire se calculeaz cu relaia de mai sus i pstrarea subintrevalului pentru care
funcia schimb semnul. Dup fiecare partiionare a intervalului se reactualizeaz nu
numai capetele intervalului, ci i valorile corespunztoare ale funciei, f (ai) i f (bi).

69

#05

Rezolvarea numeric a ecuaiilor algebrice

La final se va obine un ir de aproximaii ale soluiei ecuaiei, care converge ctre


soluia exact a ecuaiei.
y
f(bi)

ai

xi
bi

f(x)
f(xi)
f(ai)
Fig. 5. 4 mprirea intervalului de cutare la metoda falsei poziii

S studiem i n acest caz cele 3 aspecte importante:


a)
condiii iniiale: se calculeaz f(a) i f(b) in eventualitatea c a sau b sunt
soluii ale ecuaiei.
b)
Relaia de iteraie: la fiecare pas soluia se aproximeaz cu
a f (bi ) bi f (ai )
xi i
f (bi ) f (ai )
c)
Condiii de oprire a procesului: n ipoteza unei tolerane de calcul tol se
consider c xn 1 este o soluie a ecuaiei dac xn 1 xn tol sau f ( xn 1 ) tol
pentru x [a,b].
Dup cele spuse mai sus se poate construi algoritmul de rezolvare al unei ecuaii
cu metoda falsei poziii, folosind algoritmul descris la metoda biseciei. Acest lucru
rmne ca exerciiu pentru studeni.

4. Metoda Newton-Raphson (metoda tangentei)


Se consider ecuaia f(x)=0, f : R R continua i presupunem c s-a gsit un
interval [a,b] R, pentru care: f (a) f (b) 0 , adic, exist cel puin o soluie n acest
interval.
Ipotezele pentru funcia f(x) sunt urmtoarele:
f este continu pe intervalul [a,b];
f este derivabil de 2 ori pe intervalul [a,b] i derivata a doua pstreaz
semn constant pe [a,b];
derivata I nu se anuleaz pe intervalul specificat.
Metoda const n aproximarea soluiei ecuaiei cu punctul de intersecie al
tangentei la curba graficului, n punctele corespunztoare soluiei anterioare, cu axa Ox
(fig. 5.5).

70

METODE MUMERICE LUCRRI DE LABORATOR

#05

f(x0)
f(xi)
f(xn-1)
x

xn-1 ... xi ... x0

Fig. 5. 5 Metoda lui Newton

Metoda este cea mai eficient datorit convergenei rapide a irului de aproximaii
ctre soluia ecuaiei.
S studiem i n acest caz cele 3 aspecte importante:
a) condiii iniiale: este nevoie s se aleag o soluie iniial a ecuaiei. O bun
metod ar fi alegerea lui x0 astfel nct: f ''( x) f ( x0 ) 0 , pentru x0 [a,b].
Pentru uurin se alege unul din capetele intervalului, care respect aceast
relaie;
b) Relaia de iteraie: la fiecare pas soluia se aproximeaz cu
f ( xi )
xi 1 xi
(5.4)
f '( xi )
c) Condiii de oprire a procesului: n ipoteza unei tolerane de calcul tol se
consider c xn 1 este o soluie a ecuaiei dac xn 1 xn tol . De asemenea, se
impune un numr maxim de iteraii, iar funcia ar trebui s spun dac
condiia de mai sus este ndeplinit dup depirea numrului de iteraii.
Avantajele metodei constau n evaluarea funciei ntr-un singur punct i eficiena
ei i convergena rapid spre soluia ecuaiei.
Metoda are i dezavantaje: necesit cunoaterea n prealabil a derivatei I a funciei
i rezultatele sunt eficiente doar pentru o aproximaie iniial x0 foarte apropiat de soluia
exact a ecuaiei, altfel se poate ntmpla ca ntre soluia exact i x0 funcia s prezinte un
punct de extrem, caz n care se ntrerupe irul de calcule. De asemenea din condiia
iniial, ar trebui s se cunoasc chiar i derivata a II-a.
S scriem, conform celor spuse mai sus algoritmul metodei lui Newton:
Date de intrare:
a, b unul din capetele intervalului, care va fi prima aproximaie
f funcia continu i derivabil de 2 ori
f prima derivate
tol precizia determinrii soluiei
nr_iteraii numrul de iteraii

71

#05

Rezolvarea numeric a ecuaiilor algebrice

Date de ieire:
soluie soluia ecuaiei
val valoarea funciei n soluie
eroare eroarea de calcul
nr_it numrul de iteraii dup care s-a gsit soluia
pentru i=1 pn la max_iteratii
Calculeaz xi=xi-1-f(xi-1)/f(xi-1)
dac abs(xi-xi-1)<tol
atunci solutie=xi;
nr_it=i;
val=f(xi);
eroare=abs(xi-xi-1);
break
afieaz valorile obinute
solutie, nr_it, val, eroare

Implementarea n MatLab:
function [solutie,val,eroare,nr_it]=mnewton(f1,f2,x0,nr_iteratii,tol)
echo off;
%functie pentru rezolvarea ecuatiilor algebrice prin metoda lui Newton
%sau metoda tangentei
% Intrari
%
f1
numele functiei
%
f2
numele derivatei I a functiei
%
x0
aproximatia initiala a ecuatiei
%
nr_iteratii
numarul de iteratii impuse
%
tol
toteranta de caclul
% Iesiri
%
solutie
Solutia ecuatiei pe intervalul stabilit
%
val
Valoarea functiei in "solutie"
%
eroare
Eroarea estimata pentru solutie
%
nr_it
Numarul de iteratii dupa care s-a gasit solutia
i=1;rez=0;
while i<=nr_iteratii
x=x0-(feval(f1,x0)/feval(f2,x0));
if abs(x-x0)<tol
solutie=x;
nr_it=i;
val=feval(f1,x);
eroare=abs(x-x0);
rez=1;
return;
end
i=i+1;
x0=x
end
if rez==0
error('S-a depasit numarul impus de iteratii fara a se indeplini conditia de
oprire');
error('Mariti numarul de iteratii sau micsorati intervalele de cautare si
rulati din nou programul');
end

Exemplul 5.3. S se rezolve ecuaia x 3 3 x 1 0 , cu metoda Newton.


Coduri surs pentru fiierele funcie ce definesc ecuaia de rezolvat i cele dou
derivate ale acesteia.

72

METODE MUMERICE LUCRRI DE LABORATOR

#05

function y1 = ex5_3_1(x)
y1 = x.^3-3*x+1
function y2 = ex5_3_2(x)
y2 = 3*x.^2-3
function y3 = ex5_3_3(x)
y3 = 6*x

Graficul funciei este cel din fig. 5.2. Deci, intervalele de cutare sunt cele de pe
graficul respectiv.
Apelul funciei se face astfel:
[solutie1,val1,eroare1,nr_it1]=mnewton('ex5_3_1',ex5_3_2,-1.5,20,0.0001)
[solutie2,val2,eroare2,nr_it2]=mnewton('ex5_3_1',ex5_3_2,0.5,20,0.0001)
[solutie3,val3,eroare3,nr_it3]=mnewton('ex5_3_1',ex5_3_2,1.5,20,0.0001)
solutie1 =
-1.8794
val1 =
-3.9968e-014
eroare1 =
8.3097e-008
nr_it1 =
5
solutie2 =
0.3473
val2 =
5.7248e-009
eroare2 =
7.4131e-005
nr_it2 =
3
solutie3 =
1.5321
val3 =
1.4189e-011
eroare3 =
1.7570e-006
nr_it3 =
3

Comparai rezultatele obinute cu metoda newton i metoda biseciei.

5. Metoda secantei
Se consider ecuaia f(x)=0, f:R R continua i presupunem c s-a gsit un interval
[a,b] R, pentru care: f (a) f (b) 0 , adic, exist cel puin o soluie n acest interval.
Ipotezele pentru funcia f(x) sunt urmtoarele:
f este continu pe intervalul [a,b];
f este derivabil de 2 ori pe intervalul [a,b] i derivata a doua pstreaz
semn constant pe [a,b];
derivata I nu se anuleaz pe intervalul specificat.

73

#05

Rezolvarea numeric a ecuaiilor algebrice

Metoda secantei este asemntoare cu metoda lui Newton, cu deosebirea c prima


derivat a funciei este aproximat cu diferene finite. Vom vedea n continuare acest
lucru.
S studiem i n acest caz cele 3 aspecte importante:
a) condiii iniiale: este nevoie s se aleag o soluie iniial a ecuaiei. Ca i la
metoda lui Newton, o bun metod ar fi alegerea lui x0 astfel nct:
f ''( x) f ( x0 ) 0 , pentru x0 [a,b]. Pentru uurin se alege unul din capetele
intervalului, care respect aceast relaie;
b) Relaia de iteraie: la fiecare pas soluia se aproximeaz cu
f ( xi )
xi 1 xi
( x0 xn )
(5.5)
f ( x0 ) f ( xi )
c) Condiii de oprire a procesului: n ipoteza unei tolerane de calcul tol se
consider c xn 1 este o soluie a ecuaiei dac xn 1 xn tol . De asemenea, se
impune un numr maxim de iteraii, iar funcia ar trebui s spun dac
condiia de mai sus este ndeplinit dup depirea numrului de iteraii.
Din compararea relaiilor de iterare al celor dou metode se obine:

xi

f ( xi )
f ( xi )
xi
( x0 xi )
f '( xi )
f ( x0 ) f ( xi )

(5.6)

de unde rezult c aproximarea cu diferene finite a derivatei este:

f ( x0 ) f ( xi )
(5.7)
( x0 xi )
Deci, se poate spune c metoda secantei are marele avantaj c nu trebuie tiut de
la nceput care este derivata I a funciei, aceasta fiind exprimat prin relaia de mai sus.
f '( xi )

Se va scrie algoritmul de rezolvare n MatLab folosind algoritmul descris la


metoda lui Newton.

6. Rezolvarea ecuaiilor polinomiale


Dac n particular funcia f(x) este un polinom de gradul n, de forma:
f ( x) an x n an 1 x n 1 ... a1 x a0

(5.8)

atunci rezolvarea ecuaiei f(x)=0 este mult mai simpl, pentru c MatLab are
predefinit o funcie n acest scop: roots.
Funcia roots, poate fi apelat cu sintaxa:
r = roots(c)
unde c reprezint un vector care conine coeficienii polinomului n ordine
descresctoare a puterilor variabilei, adic:
c=[an an-1 ... a1 a0]
74

METODE MUMERICE LUCRRI DE LABORATOR

#05

Exemplu 5.4. S se determine rdcinile ecuaiei polinomiale:


x 8 x 5 3 x 4 10 x 2 3 0 .
Vectorul coeficienilor este: c=[1 0 0 1 3 0 -10 0 -3].
c=[1 0 0 1 3 0 -10 0 -3]
c =
1
0
0
1
r=roots(c)
r =
0.9409 + 1.3396i
0.9409 - 1.3396i
-0.8786 + 1.1968i
-0.8786 - 1.1968i
-1.4226
1.2915
0.0033 + 0.5257i
0.0033 - 0.5257i

-10

-3

Mai mult, MatLab mai are predefinit o funcie, poly, prin intermediul creia se pot
determina coeficienii unei ecuaii polinomiale, dac se cunosc rdcinile acesteia.
Sintaxa de apelare:
c = poly(r)
Roots i poly sunt funcii inverse.
Se verific exemplul de mai sus:
c=poly(r)
c =
Columns 1 through 7
1.0000
-0.0000
Columns 8 through 9
-0.0000
-3.0000

0.0000

1.0000

3.0000

-0.0000

-10.0000

7. Aplicaii de laborator
Aplicaia 5.1. S se rezolve ecuaia cos(x)-x=0, folosind metodele descrise.
Indicaii: Se scrie un fiier funcie, care conine definiia funciei:
function y = aplic5_1(x)
y = cos(x)-x

Se reprezint grafic funcia folosind funcia fplot, astfel:


fplot(aplic5_1,[-2,2])
grid

Rezult graficul din figura 5.6.


75

#05

Rezolvarea numeric a ecuaiilor algebrice


2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-2.5
-2

-1.5

-1

-0.5

0.5

1.5

Fig. 5. 6 Reprezentarea grafic a funciei din aplicaia 5.1.

Se observ c ecuaia admite o soluie pe intervalul [0,5;1]. Deci, se apeleaz funcia mbisect
astfel:
[solutie,val,eroare]=mbisect('aplic5_1',0.5,1,0.0001)

Care genereaz urmtorul rezultat:


solutie =
0.7391
val =
-3.3625e-005
eroare =
3.0518e-005

Folosirea funciei mNewton, implic scrierea a nc dou fiiere function cu definiiile


primelor derivate, astfel:
function y = aplic5_1_1(x)
y = -sin(x)-1
function y = aplic5_1_2(x)
y = -cos(x)

Se alege ca soluie iniial captul din dreapta al intervalului, adic x0=1 i se apeleaz
funcia mNewton astfel:
[solutie,val,eroare,nr_it]=mnewton('aplic5_1','aplic5_1_1',1,100,0.0001)

care genereaz urmtorul rezultat:


solutie =
0.7391
val =
-2.8472e-010
eroare =
2.7758e-005
Nr_it =
3

76

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