MBc

9
Metoda Bisectiei Chihai Ion, cl 12-B

Transcript of MBc

Page 1: MBc

Metoda Bisectiei

Chihai Ion, cl 12-B

Page 2: MBc

Introducere Ecuaţiile nelineare cu o necunoscută se împart în ecuaţii

algebrice transcendente. Ecuaţia se numeste algebrică, daca functia F(x)=0 este o functie

algebrica. Dacă functiă F(x) nu-i algebrică atunci ecuatia se numeşte

transcendentă.

Metode numerice de rezolvare a ecuaţiilor algebrice şi transcendente sunt:

Metoda bisecțieiMetoda coardelorMetoda Newton

Page 3: MBc

Informaţie teoretică

Una dintre cele mai simple metode de determinare a unei soluţii a ecuaţiei f(x) = 0 este metoda bisecţiei.

Fie data funcţia f(x), continuă pe segmentul [a, b] şi f(a)f(b)< 0.

Se cere să se determine o soluţie a ecuaţiei f(x) =0 pe segmentul [a, b]. Proprietăţile funcţiei asigură existenta cel puţin a unei soluţii pe segmentul [a, b].

Metoda presupune determinarea punctului de mijloc c a segmentului [a, b] apoi calculul valorii f(c).

Page 4: MBc

Reprezentare geometrică a metodei bisecției.Daca f(c) = 0, atunci c este soluţia exactă a ecuaţiei. În caz

contrar soluţia este căutată în continuare pe acel dintre segmentele [a, c] sau [c, b], pentru care semnul funcţiei în extremităţi este diferit.

Daca f(a)f(c)>0, atunci soluţia e căutată în continuare pe segmentul [ai, bi] , unde a1= c, b1= b. În caz contrar extremităţile noului segment vor fi a1= a, b1= c.

În urma iteraţiilor succesive se obţine consecutivitatea segmentelor

[a0,b0], [a1,b1],..., [ai,bi],... Pentru fiecare din ele are loc relaţia

f(ai)f(bi) < 0, i=0,1, 2,....

Page 5: MBc

Algoritmul de calcul pentru un număr

prestabilit n de aproximări succesive:Pas 0: Iniţializarea: i =0(din poze condiţia)

Pas 1: Determinarea mijlocului segmentului a+b/2;

Pas 2: Reducerea segmentului ce conţine soluţia:

daca f(c) = 0 atunci soluţia calculată este x = c. SFARŞIT.

Î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 soluţia calculata este x=a+b/2. SFARŞIT. în caz contrar se revine la Pasul 1.

Page 6: MBc

Exemplu:Să se determine o rădăcină a ecuației x*x*x*x+2*x*sqr(x)-x-1=0 pe segmentul [0,1] pentru 16 divizări 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;begina:=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.

Page 7: MBc

Algoritmul de calcul pentru o precizie ε data.

Pas 1:Determinarea mijlocului segmentului (a+b)/2;Pas 2:Daca f(c) = 0 atunci soluţia calculată este

x=c. SFARŞIT. Î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. SFARŞIT, în caz contrar se revine la Pas 1.

Page 8: MBc

Exemplu:Scrieți un program Pascal pentru aflarea soluției ecuației 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;begina:=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.

Page 9: MBc

Concluzii

Metoda bisecţiei este destul de clară sub aspect algoritmic şi sigură în aplicare:în cazul rădăcinilor simple ea generează şiruri convergente pentru orice funcţii continue, posedînd stabilitate la erori de rotunjire.

Deşi viteza de convergenţă la aplicarea metodei este redusă(la execuţia 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 rădăcinilor de multiplicitate pară.