Sunteți pe pagina 1din 6

Seminarul republican al profesorilor de informatică

Raisa Miron, grad didactic superior


Utilizarea calculului aproximativ la rezolvarea problemelor
de matematică şi informatică
I. Metoda înjumătăţirii sau metoda bisecţiei intervalului.
Fie că se cere de rezolvat ecuaţia
f(x)=0 pe intervalul [a, b]
Condiţiile necesare pentru a putea fi aplicată metoda bisecţiei sunt:
1. Funcţia f -să aibă proprietatea Darboux pe intervalul [a, b];
2. f(a)*f(b)<0
[ Reamintim: Se spune că o funcţie f: I  R are proprietatea Darboux pe intervalul I dacă pentru
orice valori x1, x2 ce aparţin intervalului I, x1<x2 şi oricare ar fi numărul c situat între f(x1) şi f(x2), să
existe cel puţin un punct x, ce aparţine [a, b] astfel incât f(x)=c ]
Remarcă: Orice funcţie continuă pe un interval are proprietatea Darboux pe acel interval.
Metoda injumătăţirii constă în încadrarea, succesivă, a soluţiei ecuaţiei, în intervale din ce în ce mai
mici.
Vom descrie acest procedeu:
Fie dată ecuaţia f(x)=0, unde f: [a, b]  R
1. f- este o funcţie continuă pe [a, b]
2. pentru simplitate fie f(a)<0 iar f(b)>0

Vom defini trei şiruri (an), (bn), (cn), n>=0 în felul următor:
ao=a, bo=b, co=(ao+bo) / 2
Dacă f(co)=0, atunci co- soluţie
altfel
Dacă f(co)< 0 atunci a1=co; b1= bo, iar c1=(a1+b1) / 2
altfel a1=ao; b1= co, iar c1=(a1+b1) / 2;
ş.a.m.d

Dacă f(cn-1)=0 atunci cn-1- soluţie altfel


Dacă f(cn-1)< 0 atunci an=cn-1; bn= bn-1, iar cn=(an+bn) / 2
altfel an=an-1; bn= cn-1, iar cn=(an+bn) / 2;

Ilustrarea grafică:

Pagina 1 din 6
Seminarul republican al profesorilor de informatică
Raisa Miron, grad didactic superior
Din construcţia şirurilor avem că cn=(an+bn) / 2,  an- cn <0, bn - cn >0 

an < cn < bn, pentru  n N 


a0  a1  a2  ...  an<cn<bn  bn-1  ...  b0.
Deoarece b1 –a1 = (b-a) /2  b2 – a2 = (b1 –a1) /2 = (b-a)/ 22  …. 
ba
bn  a n  n
2
Atunci obţinem că şirul (an), n>=0 este monoton crescător şi mărginit superior de bo, şirul (bn), n>=0
este monoton descrescător şi mărginit inferior de ao. Conform teoremei Weierstrass şirurile (an) şi
(bn) sunt convergente .
Deoarece
(b  a)
lim (bn  a n )  lim  0  lim a n  lim bn  A
n  n  2n n  n

Deoarece f(an)<0, iar f(bn)>0 şi f(x) -o funcţie continuă,


trecând la limită obţinem
lim f (a n )  f (lim a n )  f ( A)  0
n  n 
 f(A)=0  A soluţie a ecuaţiei f(x)=0
lim f (bn )  f (lim bn )  f ( A)  0
n  n 
Deoarece
an < cn < bn, pentru  n N,
conform teoremei cleştelui primim, că şirul (cn) de asemenea este convergent şi
lim c n  A , iar f(A)=0
n 

Deci: pentru a găsi soluţia ecuaţiei f(x) =0 pe intervalul [a, b], calculăm termenii şirului (cn) şi limita
acestui şir este soluţia ecuaţiei pe [a, b].
Problemă:
cum se determină limita şirului (cn) şi cât de repede converge şirul (cn) la A.

Mai precis, fiind dat un  > 0, cîţi termeni consecutivi ai şirului trebuie calculaţi pentru a obţine un
n astfel încât:
cn  A   ?
Din păcate însă A e necunoscut, şi cum să-l determinăm pe n?
Există două modalităţi de aflare aproximativă a soluţiei A cu exactitatea 
1. Estimarea apriori a erorii;
2. Estimarea aposteriori a erorii.

Estimarea apriori a erorii:


constă în aflarea numărului n, astfel încât
cn  A   n-?
Deoarece cn, A  [an, bn] rezultă:
ba
c n  A  a n  bn  bn  a n 
2n
ba
Cum numai <  rezultă că şi cn  A  
2n
ba
Din inegalitatea <  <  îl aflăm pe n-?
2n

Pagina 2 din 6
Seminarul republican al profesorilor de informatică
Raisa Miron, grad didactic superior
2n 1 ba ba ba
  2n   n ln(2) > ln ( )  n > ln ( ) / ln(2) 
ba n
   

n=[ ln (( (b-a) / )) / ln 2 ] + 1, sau n=trunc( ln ( ( b-a ) / ) / ln 2 ) +1

Deci, cunoscând a, b,  şi calculând numărul n din formula


n=trunc( ln ( ( b-a ) / ) / ln 2 ) +1,
vom determina toţi termenii consecutivi ai şirului co, c1, ... , cn.
Drept soluţie a ecuaţiei cu exactitatea  se ia cn.

Estimarea aposteriori a erorii


constă în obţinerea unei inegalităţi de forma
c n  A  const * c n  c n 1
Atunci cum numai
const * c n  c n 1    c n  A  

drept soluţie cu exactitatea  putem lua cn


const-?
Din definiţia şirurilor an, bn, cn avem:
a n  c n  bn  c n  a n  bn / 2  a n  bn  2 * a n  c n  2 * bn  c n
Însă an = cn-1, sau bn = cn-1  a n  bn  2 * c n  c n 1

Însă A [an, bn] şi cn [an, bn] 


c n  A  a n  bn  2 * c n  c n 1 
c n  A  2 * c n  c n 1
Aşa dar const=2

Deci cum numai 2 * c n  c n 1   , vom primi că şi cn  A  


şi drept soluţie cu exactitatea  luăm cn.

Aşa dar: pentru a calcula soluţia ecuaţiei f(x)=0, cu exactitatea  vom calcula toţi termenii consecutivi
ai şirului cn pâna când
2 * c n  c n 1  
Exempu 1:
Să se rezolve ecuaţia x3+x2-1=0, pe intervalul [-3, 3]
(Răspuns: x0.7548776663, =0.0001)
Rezolvare:
Fie f(x)= x3+x2-1  f – este o funcţie continuă pe R
f(-3) = -27+9-1 = -19
f(3) = 27 +9 -1 = 35  putem aplica metoda bisecţiei

Programul în limbajul Pascal:


Estimarea apriori
Pagina 3 din 6
Seminarul republican al profesorilor de informatică
Raisa Miron, grad didactic superior
program prob1_metoda_bisectiei_apriori;
uses crt;
var a,b,c,eps: real; i, n: integer; u:boolean;
function f(x:real):real;
begin

f:=sqr(x)*x+sqr(x)-1;
end;

begin clrscr;
a:=-3; b:=3;
writeln('Introduceti exactitatea:');
readln(eps);
n:=trunc(ln((b-a)/eps)/ln(2))+1; u:=true;
for i:=1 to n do begin
c:=(a+b)/2;
if f(c)=0 then begin
writeln(c:10:6,'-solutia exacta a ecuatiei');
u:=false; break; end
else
if f(a)*f(c)>0 then a:=c
else b:=c;
end;
if u then writeln(c:15:10,'-solutia aproximativa a ecuatiei');
readln;
end.
Rezultatul: exactitatea 0.000001 x0.7548773289

Estimarea aposteriori:
program prob1_metoda_bisectiei_aposteriori;
uses crt;
var a,b,c,c1,eps: real; u:boolean;
function f(x:real):real;
begin

f:=sqr(x)*x+sqr(x)-1;
end;
begin clrscr;
a:=-3; b:=3;
writeln('Introduceti exactitatea:');
readln(eps);
c:=a; u:=true;
repeat c1:=c;
c:=(a+b)/2;
if f(c)=0 then begin
writeln(c:10:6,'-solutia exacta a ecuatiei');
u:=false; break; end
else
if f(a)*f(c)>0 then a:=c
else b:=c;
until 2*abs(c-c1)<eps;
if u then writeln(c:15:10,'-solutia aproximativa a ecuatiei');
readln;
end.
Rezultatul: exactitatea 0.000001 x0.7548776865

Pagina 4 din 6
Seminarul republican al profesorilor de informatică
Raisa Miron, grad didactic superior
În caz cînd nu se cercetează funcţia matematic şi capetele intervalullui se citesc cu ajutorul procedurii
read, programul trebuie să verifice, dacă poate fi aplicată metoda bisecţiei sau nu si să cerceteze toate
cazurile posibile:
Exemplu 2
3x2+11x+1=0, pe [a, b]

program prob2_metoda_bisectiei_apriori;
uses crt;
var a,b,c,eps: real; i, n: integer;
u:boolean;
function f(x:real):real;
begin
f:=3*sqr(x)+11*x+1;
end;
begin clrscr;
write('a='); readln(a);
write('b='); readln(b);
if f(a)=0 then writeln(a:12:10,'-solutia exacta')
else if f(b)=0 then
writeln(b:12:10,'-solutia exacta')
else
if f(a)*f(b)<0 then begin
writeln('Introduceti exactitatea:');
readln(eps); u:=true;
n:=trunc(ln((b-a)/eps)/ln(2))+1;
for i:=1 to n do begin
c:=(a+b)/2;
if f(c)=0 then begin
writeln(c:10:6,'-solutia exacta ');
u:=false;
break; end
else
if f(a)*f(c)<0 then b:=c
else a:=c;
end;
if u then writeln(c:15:10,'-solutia aproximativa ');
end
else
writeln('nu putem aplica metoda bisectiei');
readln;
end.

Exerciţiul 2 (pagina 25 [Bib.1])


Să se rezolve următoarele ecuaţii prin metoda injumătăţirii cu estimarea aprioră a erorii:
=0.000000001
Rezultatele:
a) x3+x2-1=0, pe intervalul [-3, 3] x0.7548773289
b) 3x2+11x+1=0, pe intervalul [-1, 1]
c) x2ln(1+x)-sin x-1=0, pe intervalul [0, 2]
d) 3*x*lnx-1=0, pe intervalul [1, 3]
e) 2x-ln x-4=0, (2x=ex*ln2) pe intervalul [1, 3]
d) ex-x+sin(1+x+ 2  x )- 5  x =0, pe intervalul [0, 3]

.Exerciţiu 3 (pagina 25 [Bib.1])


Pagina 5 din 6
Seminarul republican al profesorilor de informatică
Raisa Miron, grad didactic superior
Să se rezolve următoarele ecuaţii prin metoda injumătăţirii cu estimarea aposterioară a erorii:
=0.000000001
Rezultatele:
1) x5+x3+x+1=0, pe intervalul [-1, 1] x-0.6368829
2) x2-6x+5=0, pe intervalul [2, 9]
3) x2- x -1=0, pe intervalul [1, 2]
4) x2+ln x –x=0, pe intervalul [1, 5]
5) ex -2 1  x =0, pe intervalul [0, 3]
6) x2- x -6=0, pe intervalul [1, 4]

Literatură:

1. George-Daniel Mateescu, Ileana-Carmen Mateescu


Analiza numerică, manual pentru clasa XII
Editura Petrion Bucureşti
2. Sergiu Corlat
Calculul numeric, informatica clasa XII-a, Chişinău 2004

Pagina 6 din 6

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