Sunteți pe pagina 1din 10

Rezolvarea numeric a ecuaiilor algebrice i transcendente. Metoda biseciei.

Introducere

Ecuaiile nelineare cu o necunoscut se mpart n ecuaii algebrice transcendente. Ecuaia se numeste algebric, daca functia F(x)=0 este o functie algebrica. Dac functi F(x) nu-i algebric atunci ecuatia se numete transcendent. Metode numerice de rezolvare a ecuaiilor algebrice i transcendente sunt:

biseciei Metoda coardelor Metoda Newton


Metoda

Metoda biseciei. Informaie teoretic


Una dintre cele mai simple metode de determinare a unei soluii a ecuaiei f(x) = 0 este metoda biseciei. Fie data funcia f(x), continu pe segmentul [a, b] i f(a)f(b)< 0. Se cere s se determine o soluie a ecuaiei f(x) =0 pe segmentul [a, b]. Proprietile funciei asigur existenta cel puin a unei soluii pe segmentul [a, b]. Metoda presupune determinarea punctului de mijloc c a segmentului [a, b] apoi calculul valorii f(c).

Reprezentare geometric a metodei biseciei.


Daca f(c) = 0, atunci c este soluia exact a ecuaiei. n caz contrar soluia este cutat n continuare pe acel dintre segmentele [a, c] sau [c, b], pentru care semnul funciei n extremiti este diferit. Daca f(a)f(c)>0, atunci soluia e cutat n continuare pe segmentul [ai, bi] , unde a1= c, b1= b. n caz contrar extremitile noului segment vor fi a1= a, b1= c.

n urma iteraiilor succesive se obine consecutivitatea segmentelor [a0,b0], [a1,b1],..., [ai,bi],... Pentru fiecare din ele are loc relaia f(ai)f(bi) < 0, i=0,1, 2,....

Algoritmul de calcul pentru un numr prestabilit n de aproximri succesive:


Pas 0: Iniializarea: i =0(din poze condiia) Pas 1: Determinarea mijlocului segmentului a+b/2; Pas 2: Reducerea segmentului ce conine soluia: daca f(c) = 0 atunci soluia calculat este x = c. SFARIT. n caz contrar daca f(a)f(c)>0, atunci a=c; b=b, altfel a=a; b = c. Pas 3: i=i+1; Daca i = n atunci soluia calculata este x=a+b/2. SFARIT. n caz contrar se revine la Pasul 1.

Exemplu:
S se determine o rdcin a ecuaiei x*x*x*x+2*x*sqr(x)-x1=0 pe segmentul [0,1] pentru 16 divizri consecutive.
program bisectie; var a,b,c:real;i,n,j:integer; function f(x:real):real; begin f:=x*x*x*x+2*x*sqr(x)-x-1; end; begin a:=0;b:=1; n:=16; i:=1; c:=a; while (i<=n) and (f(c)<>0) do begin c:=(a+b)/2; writeln('i=',i:3,' x=', c:10:8, ' f(x)=', f(c):10:8); if f(c)=0 then Writeln('solutia exacta') else if f(c)*f(a)>0 then a:=c else b:=c; inc(i); end; readln end.

Estimarea erorii
Deoarece x e un punct al segmentului [ai, bi] rezult c diferena dintre soluia exact i cea calculat nu este mai mare dect lungimea segmentului [ai, bi].

Localizarea soluiei pe un segment cu lungimea asigur o eroare ce nu depete lungimea a segmentului.

ai bi ai

Algoritmul de calcul pentru o precizie data.


Pas 1:Determinarea mijlocului segmentului (a+b)/2; Pas 2:Daca f(c) = 0 atunci soluia calculat este x=c. SFARIT. n caz contrar daca f(a)f(c) > 0, atunci a= c; b= b, altfel a = a; b= c. Pas 3 :Daca lungimea intervaluluib |b-a|< , atunci solutia este x=(a+b)/2. SFARIT, n caz contrar se revine la Pas 1.

Exemplu:
Scriei un program Pascal pentru aflarea soluiei ecuaiei x*x*x*x+2*x*sqr(x)-x-1=0 pe intervalul [0,1] cu o precizie de 0.001.
program bisectie; var a,b,c,e:real;i,n,j:integer; function f(x:real):real; begin f:=x*x*x*x+2*x*sqr(x)-x-1; end; begin a:=0;b:=1; i:=0;c:=a;e:=0.001; while (abs(b-a)>e) and (f(c)<>0) do begin c:=(a+b)/2; writeln('i=',i:3,' x=', c:10:8, ' f(x)=', f(c):10:8); if f(c)=0 then Writeln('solutia exacta') else if f(c)*f(a)>0 then a:=c else b:=c; inc(i); end; readln end.

Concluzii
Metoda biseciei este destul de clar sub aspect algoritmic i sigur n aplicare:n cazul rdcinilor simple ea genereaz iruri convergente pentru orice funcii continue, posednd stabilitate la erori de rotunjire. Dei viteza de convergen la aplicarea metodei este redus(la execuia unui pas precizia doar se dubleaz), n multe cazuri aceast metod are o complexitate temporal acceptabil n contex practic. Metoda dat nu poate fi aplicat n cazul rdcinilor de multiplicitate par.

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