Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
Chișinău, 2019
Analiza problemei
Graficul funcției f(x) = sin(3x)+3cos(x)-1
Metoda bisecției (sau a 3
înjumătățirii intervalului) este o
metodă simplă de determinare a 2
unei soluţii a ecuaţiei f(x) = 0.
Aceasta determină punctul de 1
mijloc «c» al segmentului [a, b],
0
apoi calculul valorii f(c) după un -2 -1 0 1 2
algoritm specific. Dacă f(c) = 0, -1
atunci c este soluţia exactă a
ecuaţiei. În caz contrar, soluţia -2
este căutată pe unul dintre
segmentele [a, c] şi [c, b]. -3
x f(x)
-2 -1,96903
-1 0,479787
0 2
1 0,762027
2 -2,52786
Elaborarea algoritmului
Fie dată funcția f(x) = sin(3x)+3cos(x)-1 . Să se determine o rădăcină a ecuaţiei f(x) = 0 pe
segmentul [-2; 2] pentru 10 divizări consecutive.
Scrierea programului
Atunci cînd numărul de aproximări succesive este fixat, iar extremităţile segmentului
cunoscute, atribuirile se realizează nemijlocit în program (exemplu Program P1). Însă atunci cînd
dorim să introducem numărul de divizări consecutive de la tastatură se va elabora Program P2.
Program P1; Program P2;
var a,b,c: real; var a,b,c: real;
i,n:integer; i,n:integer;
function f(x:real):real; function f(x:real):real;
begin begin
f:=sin(3*x)+3*cos(x)-1; f:=sin(3*x)+3*cos(x)-1;
end; end;
begin begin
a:=-2; a:=-2;
b:=2; b:=2;
n:=10; writeln ('introducem numarul n=');
for i:=1 to n do readln(n);
begin c:=(b+a)/2; for i:=1 to n do
writeln ('i=',i:3,' x=',c:10:8,' begin c:=(b+a)/2;
f(x)=',f(c):12:8); writeln('c=',c);
if f(c)=0 then break if f(c)=0 then break
else if f(c)*f(a)>0 then a:=c else if f(c)*f(a)>0 then a:=c
else b:=c; else b:=c;
end; end;
end. end.
Testarea programului
Rezultatul programului P1: Rezultatul programului P2:
i= 1 x=0.00000000 f(x)= 2.00000000 introducem numarul n=10
i= 2 x=-1.00000000 f(x)= 0.47978691 c=0
i= 3 x=-1.50000000 f(x)= 0.18974172 c=-1
i= 4 x=-1.75000000 f(x)= -0.67580367 c=-1.5
i= 5 x=-1.62500000 f(x)= -0.17572347 c=-1.75
i= 6 x=-1.56250000 f(x)= 0.02457898 c=-1.625
i= 7 x=-1.59375000 f(x)= -0.07122496 c=-1.5625
i= 8 x=-1.57812500 f(x)= -0.02222751 c=-1.59375
c=-1.578125
i= 9 x=-1.57031250 f(x)= 0.00145043
c=-1.5703125
i= 10 x=-1.57421875 f(x)= -0.01031996 c=-1.57421875
Concluzie
Metoda bisecției este aplicabilă atunci când rezolvăm ecuația f(x)=0 pentru variabila reală
x, unde f este o funcție continuă definită pe intervalul [a; b], iar f(a) și f(b) au semne opuse
(f(a)*f(b)<0). Atunci în acel interval se găsește cel puțin o rădăcină a ecuației f(x)=0.
La fiecare pas, metoda împarte intervalul în două, calculând jumătatea intervalului
c:=(b+a)/2 și valoarea funcției f(c) în acest punct. Procesul continuă până cînd intervalul este
suficient de mic.