CATEGORII DOCUMENTE |
Metoda bipartitiei
Fie ecuatia
f (x) = 0 (1.1)
unde f : [ a , b ] → R este continua iar f (a) f (b) < 0.
Impartim segmentul [ a , b ] in doua parti. Distingem urmatoarele cazuri:
1. si atunci este radacina cautata si oprim procedeul;
2. si in acest caz selectam din cele doua intervale si pe acela pentru care valorile functiei in capete au semne contrare.
Acest interval il notam [ a1 , b1 ] si apoi continuam procedeul.
Se obtine, fie radacina exacta, fie un sir de intervale inchise cuprinse unele in altele
astfel incat
pentru n = 1, 2,. (1.2)
Prin urmare avem
Capetele din stanga ale acestor intervale a1, a2, ., an, . formeaza un sir crescator si marginit superior de b, iar capetele din dreapta b1, b2, ., bn, . formeaza un sir descrescator si marginita inferior de a. Din teorema "clestelui" urmeaza
( fiind limita lor comuna). (1.3)
aratam ca numarul este radacina ecuatiei (1.1). Trecand la limita in (1.2) si tinand cont de continuitatea functiei f si de faptul ca sirurile si sunt convergente avem:
sau
si tinand cont de (1.3) rezulta
adica
Observatie 1.1.1 Metoda presupune ca radacinile lui (1.1) au fost separate pe [a, b].
Observatie 1.1.2 Daca este o valoare aproximativa a lui la pasul n atunci avem
.
Observatie 1.1.3 Metoda este comoda pentru obtinerea unei estimari initiale a radacinii separate, pentru utilizarea ei in alte metode si este usor programabila pe calculator.
Observatie 1.1.4 Procedeul converge lent.
Observatie 1.1.5 In cazul in care radacinile nu au fost separate luam dupa caz o valoare foarte mica pentru a1 (de exemplu -10 n cu n N si b1 = 0 sau a1 = 0 si b1 = 10 n astfel incat sa avem f (a1) f (b1) < 0.
Observatie 1.1.6 In momentul opririi procedeului mai putem imbunatati precizia calculelor facand media aritmetica a ultimelor doua valori an si bn ( n N * ), adica
Exemplu 1.1.1 Sa determinam radacina functiei
cuprinsa in intervalul [0, 1].
Solutie:
Avem: f (0) = - 1, f (1) = 1
f (0,5) ≈ 0,125 - 2 ∙ 0,25 + 3 ∙ 0,5 - 1 = 0,1250.
Deci intervalul ales [ a1 , b1 ] este [0, (0,5)]. Continuam procedeul.
f (0,25) ≈ 0,0156 - 2 ∙ 0,0625 + 3 ∙ 0,25 - 1 = - 0,3594.
Deci intervalul ales [ a2 , b2 ] va fi [(0,25), (0,5)].
f (0,375) ≈ 0,0527 - 2 ∙ 0,1406 + 3 ∙ 0,375 - 1 = - 0,1035.
Intervalul ales [ a3 , b3 ] va fi [(0,375), (0,5)].
f
Intervalul ales [ a4 , b4 ] va fi [(0,375), (0,4375)].
f
Deci segmentul ales [ a5 , b5 ] va fi [(0,4063), (0,4375)].
f
Intervalul ales [ a6 , b6 ] va fi [(0,4219), (0,4375)].
f
Intervalul ales [ a7 , b7 ] va fi [(0,4297), (0,4375)].
f
Intervalul ales [ a8 , b8 ] va fi [(0,4297), (0,4336)].
f
Intervalul ales [ a9 , b9 ] va fi [(0,4297), (0,4317)].
f
Luam in final
Programul pentru metoda bipartitiei
Programul prezentat mai jos determina solutia unei ecuatii de forma (1.1) in urmatoarele ipoteze:
solutia este separata intr-un interval [a, b];
functia este continua pe intervalul [a, b].
Datele de intrare sunt: capetele intervalului in care se cauta solutia (a, b) si precizia dorita (epsilon). Functia este definita in cadrul programului.
#include<iostream.h>
#include<math.h>
#include<conio.h>
double f ( double x)
void main (void)
else
if (f(a) * f(c) < 0)
b=c;
else
a=c;
while ( ( t = = 0) && (fabs (b-a) > eps) );
if ( t = = 0)
cout<<"Solutia aproximativa este x ="<< (a+b)/2<<endl;}
getch ( );}
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 899
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved