Sunteți pe pagina 1din 12

Ministerul Educaiei Republicii Moldova

Colegiul Financiar-Bancar din Chiinu

Tema: Rezolvarea ecuaiilor algebrice

A elaborate: Florea Victoria


gr. CB 1305 G

A verificat: Zatca Tamara

Chiinu,2015
Cuprins:
1.Separarea rdcinilor ecuaiilor;

2.Metoda dihotomiei(biseciei);

3.Metoda coardelor;

4.Metoda Newton;

5.Metoda mixt.
1.Separarea rdcinilor ecuaiilor
A rezolva ecuaia algebric sau transcendent f(x)= 0 nseamn a determina
acele valori ale variabilei x pentru care egalitatea f(x)= 0 este una adevrat. n
cazul cnd ecuaia are o structur simpl, soluiile ei pot fi determinate exact i
relativ uor prin metodele analitice, care se studiaz n cadrul cursului liceal de
matematic. Dac ns structura ecuaiei este complicat, procedura de
determinare a soluiilor devine destul de anevoioas. Mai mult dect att, atunci
cnd ecuaia modeleaz anumite situaii, fenomene care depind de mai muli
parametri, iar valoarea acestora este cunoscut doar aproximativ, noiunea de
soluie exact i pierde n general sensul. Din acest motiv, este util de a cunoate
i metodele de calcul aproximativ al soluiilor ecuaiilor i algoritmii care
realizeaz aceste metode.
Fie dat ecuaia:
f(x)= 0, f(x) fiind definit i continu pe un oarecare intervala x b;
Orice valoare , pentru care expresia f() = 0 este adevrat, se numete zeroul
funciei f(x) sau soluie a ecuaiei f(x)= 0.
n cele ce urmeaz se va presupune c ecua ia f(x)=0, are soluii distincte
(izolate), adic pentru fiecare soluie a ecuaiei exist o vecintate a sa, care nu
conine alte soluii. Astfel, rezolvarea prin metode numerice a unei ecuaii se divi
de n dou etape:
1. Separarea intervalelor pe care ecuaia are o singur soluie.

2. Micorarea pe ct mai mult posibil a fiecrui din aceste intervale (dac se pune
problema determinrii tuturor soluiilor) sau a unuia din ele (dac trebuie de
determinat doar una din soluii).

Metoda analitic.Pentru separarea analitic a soluiilor vor fi folosite


proprietile derivatei.
Metoda grafic.O alt posibilitate de separare a rdcinilor ecuaiei f(x) = 0
este cercetarea direct a graficului funciei f(x). Pentru construcia acestuia
pot fi folostie att aplicaii software specializate, ct i programe simple,
elaborate cu ajutorul instrumentelor unui limbaj de programare.

Separarea grafic a soluiilor unei ecuaii pe un segment dat poate fi realizat i


local, cu ajutorul unei aplicaii de calcul tabelar. Este suficient s se construiasc
un tabel cu dou coloane. Prima coloan va reprezenta o divizare a segmentului n
segmente elementare de lungimi egale. Cea de-a doua coloan va conine o
formul care calculeaz valoarea funciei f(x) pentru valorile respective din prima
coloan. n baza datelor din coloana cu valorile f(x) se construiete o diagram
liniar, care reprezint graficul funciei analizate.

Metoda grafic
+

Metoda analitic

f(x)= X 3 + 13X 15

() = 3 2 + 13
13
() = 3 2 + 13=0; 3 2 = 13=> 2 = 3 => nu are soluii reale n metoda analitic
2. Metoda dihotomiei(biseciei)
Fie dat funcia f(x), continu pe segmentul [a, b], i f(a) f(b) < 0. Se cere
s se determine pe segmentul [a, b] o soluie a ecuaieif(x) = 0.

Una dintre cele mai simple metode de deter mi nare a unei soluii a ecuaiei
f(x) =0 este metoda biseciei. Metoda presupune determinarea punctului de mijloc
c al segmentului [a, b], apoi calculul valorii f(c). Dac f(c) = 0, atunci ceste soluia
exact a ecuaiei. n caz contrar, soluia este cutat pe unul dintre seg
mentele [a,c] i [c, b]. Ea va aparine segmentului pentru care semnul funciei n
extremiti este diferit.

Dac f(a) f(c) > 0,atunci soluia e cutat n continuare pe segmentul [1 ,,


1 ,] unde 1 , primete valoarea c, iar 1 , valoarea b. n caz contrar, a1 primete
valoarea a, iar 1 , valoarea c. Procesul de divizare se reia pe segmentul [1 , 1 ],
repetndu-se pn cnd nu se obine soluia exact sau (n majoritatea absolut a
cazu rilor!) devierea soluiei calculate de la cea exact nu devine suficient de
mic.
Program P100;
var a, b, c:real;
i, n:integer;
function f(x:real):real;
begin
f:=sqr(x)*x+13*x-15;
end;
begin
a:= 0; b:=5; n:=20;
for i:=5 to n do
begin
c:=(b+a)/2;
writeln ('i=' , i:3, ' x=' , c:10:8, ' f(x)=' , f(c):12:8);
if f(c)=0 then break
else if f(c)*f(a)>0 then a:=c else b:=c;
end;
end.

i= 5 x=2.50000000 f(x)= 33.12500000


i= 6 x=1.25000000 f(x)= 3.20312500

i= 19 x=1.06185913 f(x)= 0.00146246


i= 20 x=1.06178284 f(x)= 0.00021258
3. Metoda coardelor
Metoda biseciei, cu toat simplitatea ei, nu este eficient n cazurile cnd
rezultatul trebuie obinut printr-un numr redus de iteraii, cu o exactitate nalt.
Astfel stnd lucrurile, este mai potrivit metoda coardelor, care const n divizarea
segmentului n pri proporionale, proporia fiind dat de punctul de intersecie al
coardei care unete extremitile segmentului cu axa 0x.

Fie dat funcia f(x), care posed urmtoarele proprieti:

1. f(x) continu pe segmentul [a, b] i f(a) f(c) < 0.


2. Pe segmentul [a, b] exist f(x) 0; f(x) 0, continui, iar semnul lor pe [a,b]
este constant.

Proprietile enumerate garanteaz existena soluiei unice a ecuaiei f(x) = 0


pe [a,b]. Metoda coardelor presupune alegerea n cali tate de aproximare a soluiei
punctul determinat de intersecia dreptei ce trece prin punctele (a, f(a)) i (b, f(b))
cu axa 0x. Pentru realizarea metodei se stabilete extremi tatea ea segmentului
[a,b] prin care se va duce o serie de coarde. Aceast extremitate este determinat
de condiia:

f(e) f(e) > 0

Cealalt extremitate a segmentului [a, b] se consider aproximare iniial a


soluiei:0 . Prin punctele (e, f(e)) i (0 , f(0 )) se construiete o coard. Se
determin punctul 1 . n care coarda intersecteaz axa 0x. Punctul 1 este
considerat urmtoarea aproximare a soluiei.

Punctele e i 0 snt cunoscute. Folosind ecuaia dreptei ce trece prin dou puncte,
putem determina aproximarea 1 (f(1 ) = 0):
Program P101;
var a, b, c, e, x :real;
i, n:integer;
function f(x:real):real;
begin
f:= sqr(x)*x+13*x-15;
end;
begin
a:=0; b:=5; n:=60;
c:=a-f(a)/(f(b)-f(a))*(b-a);
if f(c)*f(a)>0 then begin e:=b; x:=a; end
else begin e:=a; x:=b; end;
for i:=1 to n do
begin x:=x-f(x)/(f(e)-f(x))*(e-x);
writeln (x:10:8, ' ' ,f(x):12:8); end;
end.

0.39473684 -9.80691427
0.63911850 -6.43039713
...
1.06176986 0.00000000
1.06176986 0.00000000
4. Metoda Newton
Fie dat funcia f (x), care posed urmtoarele proprieti:

1. f (x), continu, pe segmentul [a, b] i f (a)f (b) < 0 .

2. Pe segmentul [a, b] exist f(x) 0, f(x) 0, continui, i semnul lor pe [a, b] este
constant. Urmeaz s se rezolve ecuaia f (x) = 0 pentrux [a, b]. Se va ncerca
rezolvarea problemei prin trasarea consecutiv a unor tangente la graficul funciei,
prima dintre ele fiind construit prin extremitatea E0

(0 , 0 ) a segmentului [a, b], extremitate pentru care se respect condiia:

f (0 ) f(0 ) > 0.

Fie c tangenta cu numrul iintersecteaz axa 0x n punctul ). Urmtoarea


tangent (i+1) va fi trasat prin punctul +1 cu coordonatele ( ), f ( ))) i va
intersecta axa absciselor n punctul +1 . irul de valori 0 , 1 , 2 , ..., , +1 , ...
va converge ctre soluia ecuaiei f (x) = 0. Aceast metod de calcul al soluiei
ecuaiei f (x)=0 este numit metoda tangentelorsau Newton, dup numele
matematicianului care a introdus-o.

Pentru a calcula valorile 1 , 2 , , se va folosi ecuaia tangentei la funcia ce


trece printr-un punct dat:

y f( ) = f( )(x ).

n caz general ecuaia precedent reprezint tangenta la funcia f (x), care


trece prin punctul ( , f ( )). Ea va intersecta axa absciselor n punctul cu
coordonatele (+1 , 0). n consecin se obine:
( )
+1 = - (
)
Program P102;
var a, b, c, x:real;
i, n:integer;
function f(x:real):real;
begin
f:= sqr(x)*x+13*x-15; end;
function fd1(x:real):real;
begin
fd1:=3*sqr(x)+13; end;
begin a:=0; b:=5; n:=50; i:=0;
c:=a-f(a)/(f(b)-f(a))*(b-a);
if f(a)*f(c)<0 then x:=a else x:=b;
while i<n do
begin i:=i+1; x:=x-f(x)/fd1(x);
writeln ('i=' , i:2, ' x=' ,x:15:12, ' f=' , f(x):15:12);
end;
end.

i= 1 x= 3.011363636364 f=51.455709112040
i= 2 x= 1.731527918134 f=12.701310774090
...
i=49 x= 1.061769860569 f= 0.000000000000
i=50 x= 1.061769860569 f= 0.000000000000
5.Metoda mixt
Metoda mixt este o mbinare a metodelor coardelor i Newton.

Program P103;
var a, b, c, x, t, eps: real;
function f(x:real):real;
begin f:= sqr(x)*x+13*x-15; end;
function fd1(x:real):real;
begin fd1:=3*sqr(x)+13; end;
function fd2(x:real):real;
begin fd2:=6*x; end;
begin
a:=-0.5; b:=5; eps:=0.0001;
if fd1(a)*fd2(a)>0 then
begin t:=a; c:=b end
else begin t:=b; c:=a end;
while(t-c)>=eps do
begin t:=t-(f(t)/fd1(t));
c:=(c*f(t)-t*f(c))/(f(t)-f(c));
end;
x:=(c+t)/2;
writeln (x, ' ' ,f(x));
end.

1.06177013788594 4.54302397656647E-06

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