Sunteți pe pagina 1din 40

Capitolul 2.

Metode numerice
Capitolul 2. Metode numerice
2.1. Metoda njumtirii intervalului
Descrierea matematic
Fie dat ecuaia
0 ) ( x f
. (1)
Vom considera cazul, cnd funcia este continu pe [a, b] i
0 ) ( ) ( < b f a f
. Suplimentar
vom considera c pe [a, b] semnul derivatei 1 a funciei este constant, deci avem doar o singur
soluie.
Pentru determinarea soluiei ecuaiei (1) vom detecta mijlocul segmentului [a, b],
2
b a +

i vom calcula valoarea funciei n acest punct. Dac
0 ) ( f
, atunci este soluia ecuaiei.
n caz contrar cercetm
segmentele [a, ] i [, b].
Pentru aproximarea
urmtoare vom selecta
acel segment, pentru care
valoarea funciei n
extremiti are semne
opuse. Dac
)) ( sign( )) ( sign( f a f
, atunci vom continua cercetarea pe segmentul [a
1
, b
1
], unde
:
1
a
,
b b :
1
. n caz contrar, extremitile vor fi
a a :
1
,
:
1
b
. Noul segment [a
1
, b
1
]
din nou se divizeaz, apoi se repet cercetarea semnelor valorilor funciei n extremiti i n
1
Procesul de construire consecutiv a sistemului de segmente
ncluse, care conn soluia funciei pe segmentul [a,b]. La fiecare
iteraie se calculeaz valoarea funciei la extremiti i la mijlocul
segmentului.
Capitolul 2. Metode numerice
mijlocul segmentului. Procedura se repet pn cnd se obine soluia exact sau devierea
soluiei aproximative de la cea exact nu devine suficient de mic.
n procesul de construcie a segmentelor succesive obinem consecutivitatea
segmentelor
[a, b], [a
1
, b
1
], [a
2
, b
2
], [a
3
, b
3
], ... [a
n
, b
n
]... .
Pentru fiecare din ele are loc relaia
0 ) ( ) ( <
i i
b f a f
,
n i ..., , 2 , 1
. (2)
Deoarece lungimea fiecrui segment urmtor este egal cu din lungimea celui
precedent, putem exprima lungimea oricrui segment prin cea a segmentului iniial:
) (
2
1
a b a b
i
i i

,
_

. (3)
Din construcie i proprietile funciei
) (x f
, rezult c irul extremitilor stngi a,
a
1
, a
2
, ..., a
n
, ... este monoton cresctor, mrginit n partea superioar, iar irul extremitilor
drepte b, b
1
, b
2
, ..., b
n
, ... este monoton descresctor, mrginit inferior. De aici rezult
convergena ambelor iruri i existena limitei pentru fiecare din ele.
Trecnd la limit n egalitatea (3) obinem:

,
_



n
n
n
n
n
n
n
n
n
n
n
n
n
n
b a b a a b b a lim lim 0 lim lim
2
1
lim ) ( lim lim .
Trecnd la limit n inegalitatea (2) din continuitatea
) (x f
obinem 0 )) ( (
2
f . Prin
urmare,
0 ) ( f
, deci este soluia ecuaiei (1).
Deoarece este un punct din intervalul [a
n
, b
n
], rezult c
) (
2
1
0 a b a
n
n

.
n cazul cnd semnul derivatei nti alterneaz pe segmentul [a, b] , adic rdcinile
ecuaiei nu sunt separate, metoda permite determinarea doar a unei singure soluii.
Algoritmizarea metodei
Datorit simplitii sale metoda este uor de realizat n form algoritmic:
1. Ecuaia se reduce la forma
) (x f y
. Acest lucru simplific programarea metodei.
2. Se introduc valorile a, b extremitile segmentului, i e exactitatea cu care
trebuie obinut soluia.
3. Se calculeaz
, 2 / ) ( : b a c +
f(a), f(b), f(c).
4. Dac
)) ( sign( )) ( sign( c f a f
, atunci vom considera c a trece n c. n caz
contrar b va primi valoarea lui c.
5. Pentru noile valori a i b repetm paii 2 3 att timp ct
e a b ) (
.
6. Afim n calitate de soluie mijlocul ultimului segment [a, b].
2
Capitolul 2. Metode numerice
Exemplu
Elaborai un program ce calculeaz soluia ecuaiei
2
2
cos 2
x
e x
pe segmentul [0, 1] pentru valoarea erorii =0,0001. n program nu vei utiliza funciile
standard ale limbajului PASCAL cos(x) i exp(x). In calcule vei folosi descompunerea in
serie Taylor:
...
! 4 ! 3 ! 2 ! 1
1
4 3 2
+ + + + +
x x x x
e
x
;
...
! 6 ! 4 ! 2
1 ) cos(
6 4 2
+ +
x x x
x .
Valorile funciilor vor fi calculate cu aceeai exactitate.
Rezolvare. Pentru a calcula funciile e
x
i cos cu exactitatea cerut, avem nevoie de
formula termenului rest n descompunerea funciilor respective n serie Taylor. Vom folosi
formula Lagrange a termenului rest:
( 1)
1
0
( )
( ) ( )
( 1)!
n
n
n
f
r x x x
n

+
+

+
.
Pentru simplitate vom nlocui ) (
) 1 (

+ n
f prin ) ( sup
) 1 (

+ n
f pe segmentul dat:
( 1) ( 1)
1 1
0 0
( ) sup ( )
( ) ( ) ( )
( 1)! ( 1)!
n n
n n
n
f f
r x x x x x
n n

+ +
+ +

+ +
.
Pentru funcia e
x
avem
)! 1 (
) ( 3
) (
1
0
+

+
n
x x
x r
n
n
.
Derivata funciei e
x
de orice ordin este e
x
i pe segmentul [0, 1] valoarea ei maxima este 2,71
3. Mai inem cont c
x x x <
0 . Deci, cum atingem un indice n pentru care
<
+

+
)! 1 (
) ( 3
1
0
n
x x
n
,
oprim calculul funciei e
x
.
Pentru termenul rest al funciei
) cos(x
avem:
3
Capitolul 2. Metode numerice
)! 1 (
) (
) (
1
0
+

+
n
x x
x r
n
n
.
Derivata funciei cos(x) de orice ordin impar este sin(x) cu variaie de semn i pe segmentul
[0, 1] valoarea ei maxima nu depete 1. Atingnd un indice n pentru care
<
+

+
)! 1 (
) (
1
0
n
x x
n
,
oprim calculul funciei cos(x).
Program P1;
var m1,m2,x,e,a,b,c,a1,b1,c1,c2 : real;
i,nb,nc :integer;
function expo(x:real) : real;
{calculul functiei e la puterea x}
var t,s : real;
n : integer;
begin
s:=0;
t:=1;
n:=1;
while t>e do
begin s:=s+t; t:=t*x/n; n:=n+1; end;
expo:=s;
end;
function coso(x:real):real;
{calculul functiei cos(x)}
var t,s : real;
semn,n:integer;
begin
s:=0;t:=1;n:=2; semn:=-1;
while abs(t)>e do
begin s:=s+t; t:=semn*t*x*x/(n-1)/n; n:=n+2; end;
coso:=s;
end;
{calculul functiei din ecuatie}
function f(x:real):real;
begin
f:=2*coso(x)*coso(x)-expo(x/2);
end;
begin
{introducerea datelor: fixam valorile direct}
e:=0.0001; a:=0; b:=1;nb:=0; a1:=a; b1:=b;
{metoda bisectiei}
while (b-a) >e do
begin
nb:=nb+1;
c:=(a+b)/2;
4
Capitolul 2. Metode numerice
if f(c)*f(a)>0 then a:=c else b:=c;
end;
writeln(' x=',c:8:6,' f(x)=',f(c):10:6,' nb=',nb);
{metoda coardelor}
a:=a1; b:=b1;
m1:=-1;m2:=-5; {m1 -supremul f'(x), m2 - infimul f'(x)}
c1:=a; c2:=b; nc:=0;
while abs((m1-m2)/m2)*abs(c1-c2)>e do
begin
c:=a-f(a)/(f(b)-f(a))*(b-a);
c2:=c1; c1:=c;
if f(c)*f(a)>0 then a:=c else b:=c;
inc(nc);
end;
writeln(' x=',c:8:6,' f(x)=',f(c):10:6,' nc=',nc);
if nb>nc then writeln('Numar minim de iteratii - metoda
coardelor')
else writeln('Numar minim de iteratii - metoda bisectiei');
readln;
end.
ntrebri i exerciii
1. Care snt avantajele i dezavantajele metodei njumtirii intervalului?
2. Dai formularea matematic a metodei njumtirii intervalului.
3. Elaborai o procedur care realizeaz metoda njumtirii intervalului.
4. Formulai criteriul de convergen al metodei njumtirii intervalului.
5. Care este condiia de terminare a iteraiilor n metoda njumtirii intervalului?
6. Reprezentai pe un desen procesul de cutare a soluiei prin metoda njumtirii
intervalului.
7. Estimai eroarea metodei njumtirii intervalului.
8. Elaborai un program ce calculeaz soluia aproximativ a ecuaiei
3cos
2
x
2
= e
x/2
pe intervalul [0,1; 1] pentru cinci erori diferite , egale respectiv cu 0,1; 0,02; 0,003; 0,0004;
0,00005. Pentru fiecare valoare a erorii se va afia la ecran o linie ce va conine: eroarea ,
soluia aproximativ x i numrul de iteraii n.
9. Elaborai un program ce calculeaz soluia aproximativ a ecuaiei

0
4
cos 3
3
2 sin 2
2 2

x x
pe intervalul [0, 1] cu eroarea 0,0001.
10. Calculai prin metoda njumtirii intervalului soluiile urmtoarelor ecuaii:
a) e
x
+ x 2 = 0, x[-1, 1];
b) x
5
- 4x
4
+ x 9 = 0, x[0, 4];
5
Apropierea succesiv de soluia ecuaiei prin
metoda coardei
Capitolul 2. Metode numerice
c) e
x
x cos x 1 = 0, x[0, 3].
2.2. Metoda coardei
Descrierea matematic
Fie dat ecuaia
f(x) = 0.
Pentru utilizarea metodei coardei, vom cere ndeplinirea acelorai condiii asupra
funciei f(x) ca i pentru metoda precedent. Ca i n cazul metodei precedente, n calitate de
soluie vom cuta un punct interior al intervalului, dar de aceast dat el nu va fi mijlocul
segmentului, ci punctul interseciei dreptei ce trece prin punctele (a, f(a)) i (b, f(b)) cu axa
0x.
Ideea general a metodei este
urmtoarea: prin punctele (a, f(a)) i (b,
f(b)) se traseaz o dreapt. Se determin
punctul c n care ea intersecteaz axa 0x.
Apoi se determin semnul f(c).
Extremitatea n care semnul funciei
coincide cu semnul f(c), trece n c.
Procesul se repet pn nu obinem o
apropiere suficient de soluia exact.
Aceast interpretare a metodei o face s fie
tot att de lent ca i metoda biseciei.
Dac ns, suplimentar, vom cere
prezena i semnului constant al derivatei
de ordin 2 pentru funcia f(x) pe tot
segmentul [a, b] ( pe segmentul dat funcia
s fie concav sau convex.), putem aplica
o variaie mai puternica a acestei metode.
Ecuaia dreptei ce trece prin 2 puncte date
este determinat de relaia:
1 2
1
1 2
1
x x
x x
y y
y y

.
Prin urmare,
a b
a x
a f b f
a f y

) ( ) (
) (
.
n cazul interseciei cu axa x avem y = 0, deci putem calcula poziia punctului c pe axa
0x. Pentru a realiza calculul soluiei vom crea irul {x
n
} conform urmtoarelor reguli.
Iniial
6
Capitolul 2. Metode numerice
) (
) ( ) (
) (
1
a b
a f b f
a f
a x


.
La paii urmtori, valorile elementelor irului se vor forma, innd cont de urmtoarele
situaii:
a) dac funcia este convex (f (x) > 0 ) (secanta este plasat mai sus de graficul
funciei), atunci extremitatea segmentului iniial, n care valoarea funciei este pozitiv,
rmne nemicat (fix), iar cealalt extremitate trece de fiecare dat n punctul nou calculat.
b) dac funcia este concav (f (x) < 0 ) (secanta este plasat mai jos de graficul
funciei), atunci extremitatea segmentului iniial, n care valoarea funciei este negativ,
rmne nemicat (fix), iar cealalt extremitate trece de fiecare dat n punctul nou calculat.
Cu alte cuvinte, metoda secantelor are un punct fix, cellalt modificndu-se de fiecare
dat. Observm c fix este extremitatea pentru care are loc relaia
f (x) f (x) > 0.
Pentru a calcula cealalt extremitate a noului segment, trebuie s inem cont de
urmtoarele cazuri posibile:
1) f (x) > 0 i f (x) > 0;
2) f (x) > 0 i f (x) < 0;
3) f (x) < 0 i f (x) > 0;
4) f (x) < 0 i f (x) < 0.
Vom cerceta cazul 1 n care funcia este convex, cresctoare, celelalte cazuri fiind
cercetate n mod similar.
Deoarece a doua derivat e mai mare ca 0, graficul funciei este inferior coardei.
Pornind din extremitatea n care funcia este pozitiv, vom obine intersecia cu axa 0x ntr-un
punct interior al [a, b] (mai nti se intersecteaz axa, apoi se ajunge la extremitatea opus.)
Repetnd procedura, vom obine un ir de puncte interioare, care tind spre soluia exact.
Dac ns vom fixa extremitatea negativ, coarda generat la pasul 2 va intersecta mai nti
graficul, apoi axa 0x, ceea ce poate genera prsirea segmentului [a, b].
Deoarece funcia este cresctoare, vom fixa extremitatea B, lund n calitate de x
0
extremitatea A.
Conform formulei pentru secant,
determinm c a: = x
1
.
Repetnd procedura, obinem:
7
Capitolul 2. Metode numerice
Vom demonstra acum, c irul de aproximri a = x
0
, x
1
, , x
n
converge ctre soluia
ecuaiei f(x) = 0
Din formula recurent
( )
n
n
n
x n
x b
x f b f
x f
x x


+
) ( ) (
) (
1
rezult c x
n+1
> x
n
n (numitorul fraciei este pozitiv deoarece funcia este cresctoare, i
negativ, deoarece x
n
, este punctul de intersecie a coardei cu 0x, iar graficul funciei n acest
punct este inferior coardei, deci negativ, (b - x
n
) pozitiv, deci tot produsul este negativ, cu
n fa, trece n +).
Aadar, avem irul x
0
< x
1
< <x
n
<
1
< b.
irul este cresctor i mrginit, deci exist limita lui
1
. Trecnd la limit n formula
recurent, obinem
) lim (
) lim ( ) (
) lim (
lim lim
1 n
n
n
n
n
n
n
n
n
n
x b
x f b f
x f
x x




+


sau, dup nlocuire
sau
,
de unde rezult 0 = f(
1
) (numitorul fraciei e diferit de 0, al doilea factor la fel). Deci
1
este soluia ecuaiei iniiale. Prin urmare,
1
= , ceea ce i trebuia de demonstrat.
Celelalte trei cazuri se demonstreaz n mod analogic.
Algoritmizarea metodei
1. Determinm care va fi extremitatea fix a segmentului. n acest scop calculm
punctul de intersecie (x
1
) a coardei ce trece prin f(a)) i (b, f(b)) cu axa 0x. Drept
extremitate fix vom lua acel punct pentru care semnul funciei difer de semnul
f(x
1
).
2. Extremitatea flotant primete valoarea calculat x
1
.
3. Calculm urmtoarea aproximaie conform formulei:
( )
( ) fixa. ea extremitat este daca
) ( ) (
) (
) 2 (
fixa; ea extremitat este daca ,
) ( ) (
) (
) 1 (
1
1
b x b
x f b f
x f
x x
a a x
a f x f
x f
x x
n
n
n
x n
n
n
n
x n


+
+
4. Repetm pasul 3 pn obinem soluia cu exactitatea cerut.
8
Capitolul 2. Metode numerice
Estimarea erorii
Faptul c irul aproximrilor succesive prin metoda coardelor converge ctre soluia
exact implic urmtoarea concluzie: cu ct mai multe iteraii ale metodei vor fi realizate, cu
att mai bine va fi aproximat soluia. Totui, am putea determina o formul, care permite
estimarea exact a erorii de calcul, i, prin urmare, exactitatea soluiei obinute.
Vom considera c prima derivat a funciei f(x) este continu pe segmentul [a, b].
Fie atunci m
1
i M
1
dou numere pozitive, pentru care are loc relaia
0 < m
1
| f (x) | M
1
< + .
Pentru simplitate, vom cerceta cazul, cnd aproximrile succesive se fac dup formula
(2) (cazul, cnd e folosit formula (1) se demonstreaz n mod analogic). Aadar,
( )
( )
( ).
) ( ) (
) ( ) (
;
) ( ) (
) ( ) (
;
) ( ) (
) (
1
1
1
1
1
1
1
1
1
1
1
1


n n
n
n
n
n
n
n
x n
n
n
n
x n
x x
x b
x f b f
x f f
x b
x f b f
x f f
x x
x b
x f b f
x f
x x

Exprimm x
n
prin x
n-1
innd cont de faptul c 0 = f(), pe care l adugm la
numrtorul fraciei, apoi estimm diferena dintre soluia exact i cea aproximativ.
Pentru a deduce formula final vom folosi urmtoarea teorem (se demonstreaz n
cursul de analiz matematic)
Teorema Lagrange. Fie f:[a, b] R, continu i derivabil pe [a, b] . Atunci c (a, b)
astfel nct
f(b) f(a) = (b -a) f(c).
Vom aplica formula din teorem aparte pentru partea stng i partea dreapt a ultimei
egaliti:
( )
( ) ] , [ * *) ( ' ) ( ) (
]; , [ ) ( ' ) ( ) (
1 1 1
1 1 1




n n n
n n n
x b r r f x b x f b f
x r r f x x f f
nlocuind, obinem:
.
Deci, dac e necesar s obinem soluia cu exactitatea dat , vom repeta aproximrile
pn la respectarea inegalitii

1
1
1 1
n n
x x
m
m M
.
9
Capitolul 2. Metode numerice
Aici x
n
i x
n+1
sunt dou aproximaii succesive, iar M
1
i m
1
, respectiv, marginea
superioar i inferioar a f (x) pe [a, b].
Exemplu. Elaborai un program ce calculeaz soluia aproximativ a ecuaiei
x
x
2
cos
4

pe intervalul [0,5; 1,5] pentru patru erori diferite, egale respectiv cu 0,1, 0,01, 0,001,
0,0001. Pentru fiecare valoare a erorii se va afia la ecran o linie ce va conine: eroarea E,
soluia aproximativ x i numrul de iteraii n.
Mai nti verificm posibilitatea de a aplica metoda secantelor pe intervalul propus:
f (x)=-2cos(x)sin(x) ;
f (x) = -2 cos(2x);
f (x) = 0.
Rezult c x = /4 + k/2.
Unul din zerourile derivatei 2 este situat n intervalul n care se caut soluia, deci pe
segmentul propus funcia nu este monoton, de acea vom mpri mai nti segmentul n 2
pri, pe care le vom cerceta, apoi vom reduce segmentul la fragmentul n care se afl soluia,
funcia fiind monoton:
[0,5 , /4];
f(0,5)= cos
2
(0,5) - 1/8 > cos2( /6) - 1/8 = - 1/8 >0;
f( /4)= cos
2
( /4) - /16 = 1/2 - /16 >0.
Analiza ulterioar nu este necesar, ntruct este evident c soluia se afl pe segmentul
[ /4, 1.5]. Pe acest segment funcia este descresctoare, iar derivata 2 - pozitiv. Deci
extremitatea fix va fi a = /4, iar formula recurent
.
Mai rmne s estimm supremul i infimul derivatei pe acest interval. Din expresia
pentru derivata 1 rezult c supremul nu poate depi 3/4, iar infimul valoarea 5/4.
Program P2;
var e, a,b,c,c1,c2,m1,m2:real;
i,n:integer;
{calculm valoarea funciei n punctul x}
function f(x:real):real;
begin f:=cos(x)*cos(x)-1/4; end;
begin
e:=1;
for i:=1 to 4 do
begin
{pentru fiecare epsilon repetm iniializarea datelor}
10
Capitolul 2. Metode numerice
a:=pi/4;b:=1.5; n:=0;
m1:=3/4; m2:=-5/4;
e:=e*0.1;
c1:=b; c2:=a;
while abs((m1-m2)/m2)*abs(c1-c2)>e do
{att timp ct nu a fost atns exactitatea}
begin
c:=c1-f(c1)/(f(c1)-f(a))*(c1-a);
{calculm urmtoarea aproximare}
c2:=c1; c1:=c;
inc(n);
end;
writeln('e=',e:6:4,' x =',c:8:6,' functia=',f(c):10:6,'
iteratii:', n);
end;
end.
ntrebri i exerciii
1. Care snt avantajele i dezavantajele metodei coardei?
2. Dai formularea matematic a metodei coardei.
3. Elaborai o procedur care realizeaz metoda coardei.
4. Formulai criteriul de convergen pentru metoda coardei.
5. Care este condiia de terminare a iteraiilor n metoda coardei?
6. Reprezentai pe un desen procesul de cutare a soluiei prin metoda coardei.
7. Estimai eroarea metodei coardei.
8. Elaborai un program ce calculeaz prin metoda coardei soluia aproximativ a
ecuaiei
3 cos
2
x
2
= e
x/2
pe intervalul [0,1; 1] pentru cinci erori diferite , egale respectiv cu 0,1; 0,02; 0,003; 0,0004;
0,00005. Pentru fiecare valoare a erorii se va afia la ecran o linie ce va conine: eroarea ,
soluia aproximativ x i numrul de iteraii n.
9. Elaborai un program ce calculeaz prin metoda coardei soluia aproximativ a
ecuaiei

0
4
cos 3
3
2 sin 2
2 2

x x
pe intervalul [0, 1] cu eroarea 0,0001.
10. Calculai prin metoda coardei soluiile urmtoarelor ecuaii:
a) e
x
+ x 2 = 0, x[-1, 1];
b) x
5
- 4x
4
+ x 9 = 0, x[0, 4];
c) e
x
x cos x 1 = 0, x[0, 3].
11
Capitolul 2. Metode numerice
11. Se cunoate faptul c funcia y = x sin(x/2) are pe intervalul [3, 5] un maximum
local unic. Elaborai un program cu care, fiind dat eroarea = 0,0001, se afl valoarea x
max
pentru care funcia ia valoarea maxim, utiliznd metoda coardelor pentru aflarea zerourilor
derivatei. La ecran se va afia x
max
, y
max,
i numrul de iteraii n.
12. Compunei un program ce calculeaz soluia aproximativ a ecuaiei
sin
2
x = x/2
pe intervalul [0,5, 1] pentru trei erori diferite, egale respectiv cu 0,1, 0,01, 0,001. n
program nu vei utiliza funciile trigonometrice standard ale limbajului Pascal. n calcule vei
folosi descompunerea n serie Taylor
sin x = x x
3
/3! + x
5
/5! x
7
/7! + .
Valoarea funciei se va calcula cu aceeai exactitate. Pentru fiecare valoare a erorii se va afia
la ecran o linie ce va conine eroarea , soluia aproximativ x i numrul de iteraii n.
13. Compunei un program ce calculeaz soluia aproximativ a ecuaiei
x
2
= sin 5x
pe intervalul [0,5, 0,6] pentru nou erori diferite, egale respectiv cu 0,1, 0,02, 0,003,,
0,000000009. n program nu vei utiliza funciile trigonometrice standard ale limbajului
Pascal. n calcule vei folosi descompunerea n serie Taylor
sin x = x x
3
/3! + x
5
/5! x
7
/7! + .
Valoarea funciei se va calcula cu aceeai exactitate. Pentru fiecare valoare a erorii se va afia
la ecran o linie ce va conine eroarea , soluia aproximativ x i numrul de iteraii n.
14. Elaborai un program ce va calcula soluia aproximativ a ecuaiei
x/4 = cos
2
x
pe intervalul [0,5, 1,5] prin dou metode: metoda coardelor i metoda njumtirii
intervalului pentru valoarea erorii egal cu 0,000001. n program nu vei utiliza funciile
trigonometrice standard ale limbajului Pascal. n calcule vei folosi descompunerea n serie
Taylor
cos x = 1 - x
2
/2! + x
4
/4! x
6
/6! + .
Valoarea funciei se calculeaz cu aceeai exactitate. Programul va afia la ecran eroarea ,
soluia aproximativ x i denumirea metodei prin care soluia cu exactitatea cerut se
calculeaz printr-un numr mai mic de iteraii.
2.3. Metoda lui Newton
Descrierea matematic
Ideea general a metodei este urmtoarea: prin punctul (b, f(b)) se duce o dreapt tangent la
graficul functiei. Se determin punctul c n care ea intersecteaz axa 0x. Acest punct se considera noua
12
Apropierea succesiv de soluia ecuaiei prin
metoda tangentelor
Capitolul 2. Metode numerice
extremitate, prin care se duce tangenta. Procesul se repet, pn obinem o apropiere suficient de
soluia exact. Pentru aceast metod vom cere suplimentar existena semnului constant al derivatei
de ordin 2 pentru funcia f(x) pe tot segmentul [a, b] sau, cu alte cuvinte, pe segmentul dat funcia s
fie sau concav sau convex.
Pentru a determina extremitatea
din care pornim, trebuie s inem cont de
urmtoarele cazuri posibile:
1) f (x) > 0, f (x) > 0;
2) f (x) > 0, f (x) < 0;
3) f (x) < 0, f (x) > 0;
4) f (x) < 0, f (x) < 0.
Este adevrat afirmaia: selectarea
n calitate de punct iniial al metodei
tangentelor extremitii pentru care se
ndeplinete relaia f(x) f (x) > 0
permite determinarea soluiei cu orice
grad de exactitate e.
Vom cerceta cazul 1 funcia este
convex, cresctoare. (Celelalte cazuri se
cerceteaz la fel). Deoarece a doua
derivat e mai mare ca 0, graficul funciei
este superior coardei. Pornind din
extremitatea n care funcia este pozitiv,
vom obine intersecia cu axa 0x ntr-un punct interior al [a, b]. Vom considera acest punct noua
extremitate a intervalului. Repetnd procedura, vom obine un ir de puncte interioare, care tind spre
soluia exact. Dac ns vom fixa extremitatea negativ, tangenta generat poate prsi segmentul
[a, b]. Deoarece funcia este cresctoare, vom fixa extremitatea B.
Teorem. Dac f(a) f(b )<0, f (x) i f (x) 0 i i pstreaz semnul pe [a, b], atunci,
pornind de la o aproximare iniial x
0
[a, b] ( f (x
0
) f (x
0
) > 0), soluia unic a ecuaiei pe [a,
b] poate fi calculat cu orice grad de exactitate .
Demonstraie. Fie f(a) < 0, f(b) >0, f(x) > 0 f (x) > 0. Considerm x
0
= b, f(x
0
)>0.
Pentru demonstrare vom folosi metoda induciei matematice, verificnd ipoteza cum c toate
valorile irului x
n
sunt > , n.
Fie, pentru un oarecare n ipoteza este adevrat, x
n
> . Considerm = x
n
+ ( - x
n
), apoi
aplicm formula Tailor (pentru descompunerea funciei n sum de polinoame) i obinem:
0 = f () = f(x
n
) + f(x
n
) ( - x
n
) +1/2 f(c
n
) ( - x
n
)2 unde <c
n
< x
n
.
Deoarece f(x) > 0, rezult
f(x
n
) + f(x
n
) ( - x
n
) < 0 sau f(x
n
) ( - x
n
) < - f(x
n
) ( - x
n
) < - f(x
n
)/ f(x
n
) < xn -
f(xn)/ f(x
n
) = x
n+1
.
Din formula recurent rezult direct c x
0
> x
1
> >x
n
>
1
- limita x
n
.
Trecnd la limit, obinem

1
=
1
f(
1
)/ f(
1
),
13
Capitolul 2. Metode numerice
de unde f(
1
) = 0, deci
1
= , ceea ce i trebuia de demonstrat.
Algoritmizarea metodei
1. Calculm semnul derivatei 2 pe segmentul [a, b].
2. Fixm punctul iniial x
0
conform formulei: f(x
0
) f(x
0
) > 0.
3. Calculm urmtoarea aproximaie conform formulei:
4. Repetm pasul 2 pn obinem soluia cu exactitatea cerut.
Estimarea erorii
Faptul c irul aproximrilor succesive prin metoda tangentelor converge ctre soluia exact
implic urmtoarea concluzie: cu ct mai multe iteraii ale metodei vor fi realizate, cu att mai bine
va fi aproximat soluia. Totui, am putea determina o formul, care ar permite estimarea exact a
erorii de calcul i, prin urmare, exactitatea soluiei obinute.
Vom considera c prima derivat a funciei f(x) este continu pe segmentul [a, b]. Fie atunci
m
1
i M
1
dou numere pozitive, pentru care are loc relaia
0 < m
1
| f(x) | M
1
< + ;
.
Exprimm x
n
prin x
n-1
, innd cont de faptul c 0 = f(), i l adugm n partea stng a
egalitii, apoi estimm diferena ntre soluia exact i cea aproximativ. Pentru a deduce formula
final vom folosi teorema ce urmeaz.
Teorema Lagrange. Fie f : [a, b] R, continu i derivabil pe [a, b] . Atunci c(a, b)
astfel nct:
f(b) f(a) = (b -a) f(c).
Prin urmare,
nlocuind, obinem:
Deci dac e necesar s obinem soluia cu exactitatea dat , vom repeta aproximrile pn la
respectarea inegalitii
14
Capitolul 2. Metode numerice
.
Aici x
n
i x
n+1
sunt dou aproximaii succesive, iar M
1
i m
1
respectiv marginea superioar i
inferioar a derivatei f(x) pe intervalul [a, b].
Exemplul 1.
Elaborai un program ce calculeaz soluia aproximativ a ecuaiei
2
sin
2
x
x
pe segmentul [0,5, 1] pentru 4 erori diferite, egale cu: 0,1, 0,01, 0,001, 0,0001. Pentru fiecare
valoare a erorii pe ecran se va afia o linie ce va conine: eroarea e, soluia aproximativ x,
numrul de iteraii n.
Rezolvare. Vom verifica mai nti dac metoda lui Newton poate fi aplicat pe intervalul dat.
Pentru aceasta vom determina semnul derivatei 2 pe [0,5, 1]:
f(x) = sin
2
(x) x/2;
f(x) = 2sin(x)cos(x) 1/2 = sin(2x) 1/2;
f(x) = 2cos(2x);
sin(2x) = 1/2; 2x = /6 sau 2x = 5/6 => x = /12 sau x = 5/12.
Zerouri pentru derivata 1 pe interval nu avem. Intervalul [0.5 , 1] se conine n [/12, 5/12].
Pentru x=/4 f (x)=sin(/2) = > 0. Deci funcia este cresctoare pe acest interval.
cos(2x)=0.
2x = /2 + k sau x = /4+ k/2.
Pe intervalul [0,5, 1] avem zeroul derivatei 2 n x = /4. Urmeaz s stabilim pe care din
segmentele [0,5, /4] sau [/4, 1] se afl soluia ecuaiei n studiu.
f(/4) = sin2(/4) /8 = 1/2 /8 >0.
Deoarece f(/4) >0 i funcia este cresctoare, soluia trebuie cutat n intervalul [0,5, /4].
n calitate de punct iniial vom selecta extremitatea /4, deoarece pentru ea se ndeplinesc condiiile
teoremei: f(/4) f(/4) >0.
Valorile M i m pentru derivata 1 le vom stabili din expresia derivatei 1: M =1/2, m = -3/2,
deoarece sin(x) variaz ntre 1 i 1.
Program P3;
var x,e,a,b,c,c1,c2,m1,m2:real;
i,n:integer;
{x valoarea curent, e eroarea, a,b extremitile segmentului,
c1,c2 - 2 aproximri succesive
m1, m2 supremul i infimul derivatei pe segment}
function f(x:real):real;
begin f:=sin(x)*sin(x) - x/2; end;
15
Capitolul 2. Metode numerice
function fd1(x:real):real;
begin fd1:=sin(2*x) - 1/2; end;
begin
e:=1;
for i:=1 to 4 do {calculul se repet pentru 4 aproximri succesive}
begin
b:=pi/4; a:=0.5; n:=0; {iniializm datele}
m1:=1/2; m2:=-3/2;
e:=e*0.1;
c1:=b; c2:=a; c:=b;
while abs((m1-m2)/m2)*abs(c1-c2)>e do {Repetm calculul pn la
obinerea exactitii cerute}
begin
c:=c1-f(c1)/fd1(c1);
c2:=c1; c1:=c;
inc(n);
end;
writeln('e=',e:6:4,' x =',c:8:6,' functia=',f(c):10:8,'
iteratii:', n);
end;
end.
Exemplul 2.
Elaborai un program ce determin dac metod lui Newton poate fi aplicat la rezolvarea
ecuaiei
x
3
- 2x
2
+ x - 3 = 0
n punctul iniial x
0
=2,2 i care va rezolva, n caz afirmativ, ecuaia dat pentru 9 erori diferite, egale
cu: 0,1, 0,02, 0,003,... 0,0000000009. Pentru fiecare valoare a erorii se va afia pe ecran o linie ce va
conine: eroarea e, soluia aproximativ x, numrul de iteraii n.
Rezolvare. Evident,
f(x) = x
3
2x
2
+ x 3;
f(x) = 3x
2
4x + 1; x
1
=1/3, x
2
= 1 zerourile derivatei 1
f(x) = 6x 4; x = 2/3 zeroul derivatei 2.
n problema dat nu se indic segmentul pe care se caut soluia. Vom ncepe prin o analiz
matematic a problemei i separarea soluiilor:
f(1/3) < 1/3 + 1/3 + 1/3 +3 < 0;
f(1) = 1 2 + 1 3 <0;
f(2,2) = 2,2
2
(2,2 -2) 0,8 = 4,84 x 0,2 0,8 = 0,968 0,8 > 0.
Deci soluia se afl n intervalul [1,2, 2] si poate fi calculat prin metoda Newton, deoarece
derivata 2 i pstreaz semnul constant anume pe acest interval. Mai mult dect att, observm c i
f(2) = 1 < 0, deci restrngem intervalul la [2, 2,2]. Verificarea prin program a posibilitii nceputului
calculului prin metoda Newton const n programarea condiiilor teoremei respective.
Program r4;
var x,e,e1, a,b,c,c1,c2,m1,m2:real;
i,n:integer;
16
Capitolul 2. Metode numerice
{x valoarea curent, e eroarea, a,b extremitile segmentului,
c1,c2 - 2 aproximri succesive
m1, m2 supremul i infimul derivatei pe segment}
function f(x:real):real;
begin f:=x*x*x - 2*x*x +x -3; end;
function fd1(x:real):real;
begin fd1:=3*x*x - 4*x +1; end;
function fd2(x:real):real;
begin fd2:=6*x - 4; end;
begin
x:=2.2;
{verificarea posibilitii de aplicare a metodei}
if f(x)*fd2(x)>0 then
begin
e:=1;
for i:=1 to 9 do {Repetarea calculelor pentru urmtoarea eroare}
begin
b:=2.2; a:=2; n:=0; {iniializarea datelor}
m1:=fd1(2.2); m2:=fd1(2);
e:=e*0.1; e1:=e*i;
c1:=b; c2:=a; c:=b;
while abs((m1-m2)/m2)*abs(c1-c2)>e1 do {ct nu a fost atins
exactitatea cerut }
begin
c:=c1-f(c1)/fd1(c1);
c2:=c1; c1:=c;
inc(n);
end;
writeln('e=',e1:10:9,' x =',c:8:6,' functia=',f(c):10:6,'
iteratii:', n);
end;
end
else writeln('Conditii initiale incompatibile');
end.
ntrebri i exerciii
1. Care snt avantajele i dezavantajele metodei lui Newton?
2. Dai formularea matematic a metodei lui Newton.
3. Elaborai o procedur care realizeaz metoda lui Newton.
4. Formulai criteriul de convergen pentru metoda lui Newton.
5. Care este condiia de terminare a iteraiilor n metoda lui Newton?
6. Reprezentai pe un desen procesul de cutare a soluiei prin metoda lui Newton.
7. Estimai eroarea metodei lui Newton.
8. Elaborai un program ce calculeaz soluia aproximativ a ecuaiei
3cos
2
x
2
= e
x/2
pe intervalul [0,1; 1] pentru cinci erori diferite , egale respectiv cu 0,1; 0,02; 0,003; 0,0004;
0,00005. Pentru fiecare valoare a erorii se va afia la ecran o linie ce va conine: eroarea ,
soluia aproximativ x i numrul de iteraii n.
9. Elaborai un program un program ce calculeaz soluia aproximativ a ecuaiei
17
Capitolul 2. Metode numerice

0
4
cos 3
3
2 sin 2
2 2

x x
pe intervalul [0, 1] cu eroarea 0,0001.
10. Calculai soluiile urmtoarelor ecuaii:
a) e
x
+ x 2 = 0, x[-1, 1];
b) x
5
- 4x
4
+ x 9 = 0, x[0, 4];
c) e
x
x cos x 1 = 0, x[0, 3].
11. Se cunoate faptul c funcia y = x sin(x/2) are pe intervalul [3, 5] un maximum
local unic. Elaborai un program care, avnd eroarea = 0,0001, afl valoarea x
max
pentru care
funcia ia valoarea maxim, utiliznd metoda coardelor pentru aflarea zerourilor derivatei. La
ecran se va afia x
max
, y
max,
i numrul de iteraii n.
12. Compunei un program ce calculeaz soluia aproximativ a ecuaiei
sin
2
x = x/2
pe intervalul [0,5, 1] pentru trei erori diferite, egale respectiv cu 0,1, 0,01, 0,001. n
program nu vei utiliza funciile trigonometrice standard ale limbajului Pascal. n calcule vei
folosi descompunerea n serie Taylor
sin x = x x
3
/3! + x
5
/5! x
7
/7! + .
Valoarea funciei se va calcula cu aceeai exactitate. Pentru fiecare valoare a erorii se va afia
la ecran o linie ce va conine eroarea , soluia aproximativ x i numrul de iteraii n.
13. Compunei un program ce calculeaz soluia aproximativ a ecuaiei
x
2
= sin 5x
pe intervalul [0,5, 0,6] pentru nou erori diferite, egale respectiv cu 0,1, 0,02, 0,003,,
0,000000009. n program nu vei utiliza funciile trigonometrice standard ale limbajului
Pascal. n calcule vei folosi descompunerea n serie Taylor
sin x = x x
3
/3! + x
5
/5! x
7
/7! + .
Valoarea funciei se va calcula cu aceeai exactitate. Pentru fiecare valoare a erorii se va afia
la ecran o linie ce va conine eroarea , soluia aproximativ x i numrul de iteraii n.
14. Elaborai un program care va determina dac poate fi aplicat metoda lui Newton
pentru rezolvarea ecuaiei
x
3
- 2x
2
+ x 3 = 0
pornind din punctul iniial x
0
= 2,2 i care va rezolva, n caz afirmativ, ecuaia dat pentru
nou erori diferite, egale respectiv cu 0,1, 0,02, 0,003,, 0,000000009. Valoarea funciei se
va calcula cu aceeai exactitate. Pentru fiecare valoare a erorii la ecran se va afia o linie ce va
conine eroarea , soluia aproximativ x i numrul de iteraii n.
18
Capitolul 2. Metode numerice
2.4. Noiunea de determinant. Proprietile de baz ale determinanilor
Vom cerceta o matrice ptratic arbitrar de rang n:
nn n n
n
n
a a a
a a a
a a a
A
...
... ... ... ...
...
...
2 1
2 22 21
1 12 11

.
Fiecrei din matricele de acest tip i vom asocia o valoare numeric, numit
determinant. Vom defini aceast mrime n mod inductiv.
Fie c rangul matricei A este 1. Matricea este format dintr-un singur element a
11
.
Determinantul matricei A va fi chiar valoarea elementului a
11
.
22 21
12 11
a a
a a
A
.
Pentru o matrice de rangul 2 determinantul va fi egal cu valoarea expresiei
a
11
a
22
a
12
a
21
,
adic cu diferena produselor elementelor de pe diagonala principal i cea secundar.
Pentru a defini noiunea de determinant al unei matrice de rang n vom avea nevoie de
urmtoarele noiuni.
Vom numi minor de ordin n-1 al elementului a
ij
al matricei de rang n A determinantul
de ordin n-1, care se obine din matricea A la excluderea din ea a rndului i i a coloanei j.
Vom nota minorul elementului a
ij
prin
i
j
M
, unde i indic rndul, iar j coloana care
corespund elementului a
ij
.
Vom numi determinant al matricei A de rang n valoarea expresiei
care se va marca prin simbolul
3 2 1
2 22 21
1 12 11
...
... ... ... ...
...
...
) det(
n n n
n
n
a a a
a a a
a a a
A
.
Urmtoarele proprieti ale determinanilor permit calculul lor fr a recurge la
calcularea minorilor algebrici.
Proprietatea 1: Dac de o parte a diagonalei principale a determinantului sunt numai
zerouri, atunci valoarea determinantului este produsul elementelor de pe diagonala principal.
19
1
( 1)
n
i j i
ij j
j
a M
+

Capitolul 2. Metode numerice


Proprietatea 2: Dac schimbm locurile a dou linii (coloane) ale determinantului,
semnul acestuia se schimb n opus.
Proprietatea 3: Dac adugm la o linie a determinantului o alt linie nmulit cu un
numr, valoarea determinantului nu se schimb.
Aceste trei proprieti permit elaborarea unui algoritm simplu pentru calculul
determinanilor.
Scopul final este de a aduce determinantul la forma triunghiular (adic de o parte a
diagonalei principale s fie doar zerouri). Pentru a realiza aceasta, vom folosi iterativ
proprietatea 3.
Fie pe linia i elementul a
ii
0. Dac nmulim linia i cu a
ki
/a
ii


i o adugm la linia k,
valoarea determinantului nu se va schimba. n acelai timp, elementul a
ki
va deveni 0. ntr-
adevr, pentru el vom avea a
ki
+ a
ii
( a
ki
/a
ii
) = a
ki
+ (- a
ki
) = 0. De aici rezult, n cazul
aplicrii consecutive a acestei proceduri pentru toi k > i, apariia zerourilor n coloana i a
determinantului mai jos de diagonala principal. De aici rezult i algoritmul integral:
1. Numrul liniei (i) 0.
2. Numrul liniei se mrete cu 1 (i:=i+1).
3. Dac elementul a
i
i 0, atunci atribuim j:=i+1 i pentru fiecare din liniile (j) de la i+1
la n repetm procedura (P):
(P) linia i o nmulim cu a
ji
/a
ii
i o adugm la linia j. Dac ns a
ii
= 0, atunci mai nti
cercetm elementul a
ji
pe liniile situate sub linia i (coloana i). Dac detectm un
element nenul (fie n linia k), schimbm locurile liniilor i i k, apoi realizm
procedura (P). Dac toate elementele n coloana i situate mai jos de rndul i snt 0,
atunci valoarea determinantului este 0, corespunztor se ncheie lucrul
algoritmului.
4. Dac i< n revenim la pasul 1.
5. Calculm produsul elementelor de pe diagonala principal.
ntrebri i exerciii
1. Explicai noiunile de minor i determinant.
2. Formulai proprietile de baz ale determinanilor.
3. Elaborai un algoritm i procedura respectiv pentru calculul determinanilor.
4. Cte operaii aritmetice se efectueaz pentru calculul unui determinant de ordin n?
5. Calculai urmtorii determinani:
a)
3 2 1
0 0 2
2 2 1


b)
0 4 1
12 2 0
9 0 3

c)
2 3 2
4 1 3
1 0 1

d)
5 0 4 1
2 1 1 4
1 3 2 0
3 0 1 1

e)
3 2 2 9
1 1 2 2
1 0 2 1
2 0 1 3



f)
1 4 0 2
3 0 1 1
4 1 2 3
0 2 3 0


20
Capitolul 2. Metode numerice
2.5. Metoda lui Cramer de rezolvare a sistemelor de ecuaii liniare
Definiie. Matricea invers matricei A matricea, care fiind nmulit la A (fie la
stnga, fie la dreapta), d n rezultat matricea unitar E. Matricea invers matricei A va fi
notat A
-1
.
E A A AA
1 1
.
Definiie. Matricea ptratic A se numete nesingular, dac determinantul ei este diferit
de 0.
Teorem. Pentru orice matrice nesingular exist o matrice invers.
Metoda Cramer de rezolvare a sistemelor de ecuaii liniare
Fie dat sistemul din n ecuaii liniare cu n necunoscute:

+ + +
+ + +
+ + +
n n nn n n
n n
n n
b x a x a x a
b x a x a x a
b x a x a x a
...
...
...
...
2 2 1 1
2 2 2 22 1 21
1 1 2 12 1 11
.
Vom nota prin
1
1
1
1
]
1

nn n n
n
n
a a a
a a a
a a a
A
...
... ... ... ...
...
...
2 1
2 22 21
1 12 11
matricea coeficienilor liberi ai matricei
sistemului,
prin
1
1
1
1
]
1

n
b
b
b
b
...
2
1
- vectorul termenilor liberi ai sistemului, iar prin
1
1
1
1
]
1

n
x
x
x
x
...
2
1
- vectorul
soluiilor.
n form vectorial sistemul va avea forma Ax = b. n cazul cnd determinantul A este
diferit de 0, exist matricea invers A
-1
. nmulind ambele pri ale egalitii precedente la A
-1
,
obinem:
A
-1
Ax = A
-1
b sau x = A
-1
b,
ceea ce permite calculul soluiilor sistemului iniial. n cele ce urmeaz vom detalia formula
obinut, determinnd formulele de calcul pentru componentele vectorului x.
Vom folosi matricea adjunct matricei A:
1
1
1
1
]
1

nn n n
n
n
A A A
A A A
A A A
A
...
... ... ... ...
...
...
~
2 1
2 22 12
1 21 11
21
Capitolul 2. Metode numerice
n care A
ij
este minorul cu semn al elementului a
ij
din matricea A. Observm c minorii
elementelor din linia i vor forma coloana cu acelai indice, adic are loc operaia de
transpunere a minorilor elementelor matricei A.
Este cunoscut c

1 ~
1
A A
,
prin urmare

b A
b A x
~
1 ~
sau, la nivel de componente,
1
1
1
1
]
1

1
1
1
1
]
1

n n
x
x
x
...
1
...
2
1
2
1
,
unde
n n i n n i n n
n i i
n i i
n
j
j ji i
a a b a a
a a b a a
a a b a a
b A
, 1 , 1 , 1 ,
, 2 1 , 2 2 1 , 2 1 , 2
, 1 1 , 1 1 1 , 1 1 , 1
1
... ...
... ... ... ... ... ... ...
... ...
... ...
+
+
+


(*).
ntr-adevr, produsul unei matrice cu un vector coloan este un vector, componenta i a
cruia se calculeaz ca suma produselor elementelor liniei i a matricei cu componentele
respective ale vectorului coloan. Deoarece elementele liniei i a matricei sunt minorii matricei
A, descompuse dup coloana i, suma produselor lor i a elementelor vectorului b vor
corespunde descompunerii dup coloana i a matricei (*). De aici urmeaz direct formulele de
calcul a soluiilor sistemului iniial:

n
n
x x x x ..., , , ,
3
3
2
2
1
1
.
Algoritmizarea metodei.
1. Verificm dac determinantul al matricei A a coeficienilor sistemului este diferit de
0. Dac da, trecem pa pasul 2, n caz contrar afim mesajul de imposibilitate de
calcul, apoi SFRIT.
2. i:=1.
3. Pentru coloana activ (cu numrul i) facem o copie (A
cop
) a matricei coeficienilor
sistemului n care nlocuim coloana i cu vectorul termenilor liberi.
4. Calculm determinantul matricei A
cop
, memorm valoarea lui n componenta i a
vectorului x.
5. Dac i < n, incrementm i i revenim la pasul 3, n caz contrar trecem la pasul 6
6. Componentele vectorului x conin valorile
i
. Calculm soluia mprind
componentele x la .
7. Afim soluia. SFRIT.
22
Capitolul 2. Metode numerice
Structuri de date
1. Doua tablouri bidimensionale cu n linii i n coloane: primul va pstra matricea
coeficienilor A, al doilea copia ei cu coloana i nlocuit prin vectorul termenilor
liberi.
2. Dou tablouri unidimensionale din n elemente reale pentru pstrarea vectorului
termenilor liberi i vectorului soluiei obinute.
ntrebri i exerciii
1. Explicai termenii matrice invers, matrice nesingular i matrice singular.
2. Elaborai un algoritm i procedura respectiv pentru rezolvarea sistemelor de ecuaii
liniare prin metoda lui Cramer.
4. Cte operaii aritmetice se efectueaz pentru rezolvarea prin metoda lui Cramer a unui
sistem de ecuaii liniare de ordin n?
5. Se consider c este dat modulul SYSEQLIN care conine funcia Determinant.
Aceast funcie returneaz valoarea determinantului ca rezultat de tip real. Parametrii funciei
snt: matricea ptratic A de tip real i variabila n de tip integer dimensiunea matricei.
Elaborai un program pentru rezolvarea sistemului de n ecuaii liniare cu n necunoscute
folosind regula lui Cramer. Coeficienii sistemului de ecuaii se introduc de la tastatur.
Soluia sistemului se va afia la ecran.
Not. Nu se cere elaborarea algoritmul propriu-zis de calculare a determinanilor.
6. Scriei o funcie cu numele Det care are drept argument o matrice din 3 linii i 3
coloane cu elemente de tip real. Funcia returneaz ca rezultat de tip real determinantul
matricei.
7. Rezolvai prin metoda lui Cramer urmtoarele sisteme de ecuaii liniare:
1 2 3 + z y x 2 2 + z y x 2 2 3 3 + z y x
a)
2 2 + z y x
b)
2 4 3 + z y x
c)
1 2 4 + z y x
1 2 + z y x 6 2 2 + z y x 1 2 2 + + z y x
2.6. Metoda lui Gauss de rezolvare a sistemelor de ecuaii liniare
Fie dat sistemul din n ecuaii liniare cu n necunoscute:

+ + +
+ + +
+ + +
n n nn n n
n n
n n
b x a x a x a
b x a x a x a
b x a x a x a
...
...
...
...
2 2 1 1
2 2 2 22 1 21
1 1 2 12 1 11
.
Sistemul are o soluie unic doar n cazul n care determinantul matricei coeficienilor A
este diferit de 0. Evident, determinarea acestui fapt necesit calculul determinantului matricei
A. Metoda Gauss const n eliminarea succesiv a necunoscutelor din sistem, pn cnd n
ultima ecuaie nu va rmne doar o necunoscut (pasul direct). Din aceast ecuaie se afl
necunoscuta, care apoi se nlocuiete n ecuaie cu numrul n-1. Procesul se repet pn nu se
calculeaz ultima component necunoscut din vectorul soluiilor (pasul invers).
23
Capitolul 2. Metode numerice
Pasul direct
Fie a
11
0 (dac a
11
=0, se alege o alt ecuaie (i), n care a
i1
0). Vom nmuli
coeficienii primei ecuaii la -a
21
/a
11
i vom aduna ecuaia obinut la ecuaia a doua din sistem
(spre deosebire de determinani, aici se va transforma i termenul liber al ecuaiei 2). Apoi
vom nmuli coeficienii primei ecuaii la a
31
/a
11
i vom aduna ecuaia obinut la ecuaia cu
indicele (3) ... Procesul se repet pn la ultima ecuaie din sistem, pentru care ecuaia (1) se
nmulete cu -a
n1
/a
11
.
n rezultat obinem un sistem nou.
.
n acest sistem ncepem eliminarea necunoscutei x
2
din toate ecuaiile, ncepnd cu a
treia. Pentru aceasta vom repeta algoritmul pasului precedent, dar vom porni de la elementul
a
(1)
22
Coeficienii ecuaiei 2 vor fi pe rnd nmulii la - a
(1)
k2
/ a
(1)
22
, iar ecuaia obinut se va
aduna la ecuaia cu numrul de ordine k.
Vom obine sistemul
.
n caz general algoritmul este urmtorul. Fie pe linia i elementul a
ii
0. Dac nmulim
linia i cu a
ki
/a
ii
i o adugm la linia k, soluia sistemului nu se va schimba. n acelai
timp, elementul a
ki
va deveni 0. ntr-adevr, pentru el vom avea
a
ki
+ a
ii
( a
ki
/a
ii
) = a
ki
+ (- a
ki
) = 0.
De aici rezult, n cazul aplicrii consecutive a acestei proceduri pentru toi k > i,
apariia zerourilor n coloana i a ecuaiilor sistemului situate mai jos de ecuaia cu indicele i.
Tot n felul acesta rezult i algoritmul integral:
1. Numrul liniei (i) 0.
2. Numrul liniei se mrete cu 1 (i := i+1).
3. Dac elementul a
ii
0, atunci considerm j := i+1 i pentru fiecare din liniile (j) de la i+1
la n repetm procedura (P):
(P) linia i o nmulim cu a
ji
/a
ii
i o adugm la linia j (inclusiv termenii liberi). Dac
ns a
ii
= 0, atunci mai nti cercetm elementul a
ji
pe liniile situate sub linia i
(coloana i). Dac detectm un element nenul (fie n linia k), schimbm locurile
liniilor i i k, apoi realizm procedura (P). Dac toate elementele n coloana i situate
mai jos de rndul i snt 0, atunci valoarea determinantului care corespunde acestui
sistem de ecuaii este 0 i respectiv soluia unic nu exist.
24
Capitolul 2. Metode numerice
4. Dac i< n revenim la pasul 1.
n final, vom obine sistemul:
.
Aici se ncheie pasul direct al metodei Gauss.
Pasul napoi (Etapa indirect)
Din ultima ecuaie determinm x
n
:
x
n
= b
(n-1)
n
/ a
(n-1)
nn
.
nlocuind n ecuaia n-1, obinem:
n caz general
Conform formulei obinute toate componentele vectorului de soluii x se calculeaz
recurent, ncepnd cu x
n
Pentru realizarea practic a metodei Gauss vor fi necesare urmtoarele resurse de
memorie:
1. Tabloul bidimensional cu n linii i n+1 coloane : n fiecare linie coloana n+1 conine
termenii liberi ai ecuaiilor, primele n coeficienii de pe lng vectorul x n ecuaia
respectiv. Deoarece n procesul transformrilor se realizeaz mprirea, tipul datelor va
fi real, chiar dac iniial coeficienii sunt ntregi.
2. Tablou unidimensional din n elemente reale pentru pstrarea soluiei obinute.
ntrebri i exerciii
1. Explicai termenii pasul direct i pasul napoi.
2. Elaborai un algoritm i procedura respectiv pentru rezolvarea sistemelor de ecuaii
liniare prin metoda lui Gauss.
4. Cte operaii aritmetice se efectueaz pentru rezolvarea prin metoda lui Gauss a unui
sistem de ecuaii liniare de ordin n?
5. Elaborai un program de rezolvare a unui sistem de n ecuaii liniare cu n necunoscute
pentru cazul, cnd coeficienii ce se afl sub diagonala principal sunt egali cu zero, iar cei
25
( 1) ( 1)
1
( 1)
n
i j
i ij j
j i
i
i
ii
b a x
x
a

+

( 2) ( 2)
1 1
1
( 2)
1 1
n n
n n n n
n
n
n n
b a x
x
a

Capitolul 2. Metode numerice


situai pe diagonala principal sunt diferii de zero. Coeficienii sistemului se introduc de la
tastatur. Programul va afia soluia sistemului la ecran.
6. Rezolvai prin metoda lui Gauss urmtoarele sisteme de ecuaii liniare:
1 2 3 + z y x 2 2 + z y x 2 2 3 3 + z y x
a)
2 2 + z y x
b)
2 4 3 + z y x
c)
1 2 4 + z y x
1 2 + z y x 6 2 2 + z y x 1 2 2 + + z y x
2.7. Formula dreptunghiurilor pentru calculul aproximativ al integralei
Una dintre cele mai des aplicate implementri ale metodelor numerice este calcularea
integralei definite prin metode aproximative. Metodele directe nu ntotdeauna permit calculul
analitic al integralei i, de multe ori, formula care definete funcia ce trebuie integrat nici nu
e cunoscut. De obicei sunt date doar o serie de puncte n care este cunoscut valoarea
funciei. n aceste cazuri integrala poate fi calculat doar prin metode aproximative (n
condiia n care funcia de sub integral este continu pe segmentul pe care se opereaz
integrarea).
Din cursul de analiz matematic se tie c sensul geometric al integralei definite este
aria trapezului curbiliniu determinat de axa 0X, dreptele y = a i y = b, i graficul funciei
f(x) pe segmentul [a, b].
Aparatul matematic. Fie f o funcie derivabil pe [a, b] i
] , [
) ( ' sup
b a x
x f M

.
Considerm o diviziune a segmentului [a, b] n forma
a = x
0
< x
1
< x
2
< < x
n-1
< x
n
= b.
Pe fiecare din segmentele [x
i
, x
i+1
] vom aproxima suprafaa trapezului curbiliniu cu aria
dreptunghiului cu baza h = |x
i
, - x
i+1
| i nlimea egal cu valoarea funciei n unul din
punctele:
a) x = x
i
atunci metoda se numete a dreptunghiurilor de stnga;
26
Capitolul 2. Metode numerice
b) x = x
i+1
atunci metoda se numete a dreptunghiurilor de dreapta;
c) x=(x
i
,+ x
i+1
)/2 atunci metoda se numete a dreptunghiurilor medii.
Pentru simplitate, vom considera segmentele [x
i
, x
i+1
] egale. Atunci lungimea
segmentului va fi de
h = |b - a| / n,
iar punctele x
i
vor putea fi determinate conform formulei x
i
=a + i h.
Dreapta
y = (x
i
,+ x
i+1
)/2
(corespunztor y = x
i
pentru metoda dreptunghiurilor de stnga i

y = x
i+1
pentru metoda
dreptunghiurilor de dreapta) este graficul unei funcii constante (a polinomului de interpolare
Lagrange de grad 0, care aproximeaz funcia pe segmentul elementar [x
i
, x
i+1
] prin mijlocul
lui (corespunztor prin extremitatea stng pentru metoda dreptunghiurilor de stnga i prin
extremitatea dreapt - pentru metoda dreptunghiurilor de dreapta).
n acest caz valoarea integralei definite pe segmentul [a, b] pentru funcia f se va
aproxima conform formulei
1 1
1 1 1
0 0
1 1
1
0 0
1 1
1 1
0 0
( ) ( ) (( ) / 2) (( ) / 2)
( ) ( ) ( ) ( )
( ) ( ) ( )
b
n n
i i i i i i
i i
a
b
n n
i i i i
i i
a
b
n n
i i i
i i
a
f z dz x x f x x hf x x pentru dreptunghiuri medii
f z dz x x f x hf x pentru dreptunghiuri de stinga
f z dz x x f x h

+ + +


+


+ +

+ +


1
( )
i
f x pentru dreptunghiuri de dreapta
+
Pentru calculul numeric transformarea integralei ntr-o expresie aritmetic (sum) care
depinde doar de numrul de diviziuni ale segmentului (acest numr sau e dat apriori sau e
stabilit n procesul de calcul) i de valoarea funciei n nodurile de interpolare (valoare care
este de asemenea dat sau poate fi calculat) este foarte comod procedura de calcul devine
elementar.
27
Capitolul 2. Metode numerice
Determinarea erorii de calcul (marginea superioar). Eroarea de interpolare pe un
interval elementar se estimeaz ca modulul diferenei dintre valoarea exact a funciei pe
interval i funcia de interpolare. Corespunztor, eroarea de la integrare prin funcia de
interpolare va fi integrala erorii de interpolare. Pe un segment elementar eroarea de
interpolare este:
| f(z) - g(z) | M * (z (x
i+1
+ x
i
)/2) ),
unde
(x
i+1
+ x
i
) / 2 punctul de interpolare, iar g(z) este o funcie constant:
g(z) = f((x
i+1
+ x
i
)/2) pentru metoda mediilor;
g(z)= f(x
i
) pentru metoda dreptunghiurilor de stnga;
g(z)= f(x
i+1
) pentru metoda dreptunghiurilor de dreapta.
Estimarea erorii o facem prin integrarea diferenei | f(z) - g(z) | utiliznd nlocuirea
variabilei x prin t:
x = x(t) = (x
i+1
+ x
i
)/2 + t*(x
i+1
- x
i
) / 2.
2
1
* 2
2
| | 2
2
| |
2
2
|
2 2 2
| | )
2
( |
)
2
, ( ) (
2
, ) (
2
1
1
0
2
1
1
1
2
1
1 1
1
1
1 1 1
1 1
1
1 1 1

,
_

,
_

,
_

+
+

+

,
_

+ +

+
+ +

+ + +
+ +



+
+ + +
i i i i i i
i i i i i i i i
x
x
i i
x
x
i i
x
x
x
x
i i
x x
M dt t
x x
M dz t
x x
M
dt
x x x x
t
x x x x
M dz
x x
z M
dz
x x
z g z f dz
x x
z g dz z f
i
i
i
i
i
i
i
i
Prin urmare, eroarea total va fi
4
) (
4 1 4 2
2
2
1
h
M a b
h
M
a b h
M
h
a b x x
nM
i i


,
_


+
.
28
Capitolul 2. Metode numerice
Formula dat ne permite s stabilim apriori care este numrul necesar de iteraii pentru
obinerea unei erori mai mici dect cea prestabilit:
O metod mai simpl, care ne ferete de riscul obinerii unor valori din afara
diapazonului admisibil, este cea bazat pe divizarea binar a intervalului de iteraii. Vom
selecta o valoare maximal posibil pentru n
2
numrul iniial de iteraii i 0 pentru n
1

numrul minim posibil de iteraii. Deoarece eroarea este o expresie ce depinde de numrul de
iteraii, calculm eroarea pentru
n=(n
1
+ n
2
) div 2,
cea ce reprezint un numr mediu de iteraii. Dac eroarea obinut e este mai mic dect cea
cerut, considerm n
2
<- n (micorm numrul maxim de iteraii), n caz contrar n
1
<- n
(mrim numrul minim de iteraii).
Acesta e un proces de divizare binar i va continua att timp ct n
1
< n
2
. Va fi nevoie
de log
2
(maxlongint div 2) verificri pentru a stabili exact numrul minim necesar de iteraii
pentru obinerea exactitii date.
Algoritmizarea problemei varianta mediilor.
1. Se introduc limitele de integrare a, b.
2. Se stabilete numrul necesar de divizri n.
3. Se calculeaz pasul de deplasare h.
4. Pornind de la a calculm mijlocurile segmentelor elementare z
i
i ariile dreptunghiurilor
elementare.
5. nsumm ariile elementare.
6. Afim rezultatul.
Algoritmizarea problemei varianta dreptunghiurilor de stnga
1. Se introduc limitele de integrare a, b.
2. Se stabilete numrul necesar de divizri n.
3. Se calculeaz pasul de deplasare h.
4. Pornind de la a calculm extremitile stngi ale segmentelor elementare z
i
i ariile
dreptunghiurilor elementare.
5. nsumm ariile elementare.
6. Afim rezultatul.
Algoritmizarea problemei varianta dreptunghiurilor de dreapta
1. Se introduc limitele de integrare a, b.
2. Se stabilete numrul necesar de divizri n.
3. Se calculeaz pasul de deplasare h.
4. Pornind de la a calculm extremitile drepte ale segmentelor elementare z
i
i ariile
dreptunghiurilor elementare.
5. nsumm ariile elementare.
6. Afim rezultatul.
Exemplul 1. Elaborai un program ce calculeaz integrala
29
2 2
( ) ( )
( )
4 4 4
h M b a M b a
b a M n
n



Capitolul 2. Metode numerice
1
2 3
0
1 I x x dx

aplicnd formula dreptunghiurilor (metoda mediilor) pentru diferite numere de diviziuni ale
intervalului de integrare n=10, n=100, n=1000. Programul va afia la ecran valoarea integralei
I pentru fiecare numr de diviziuni N.
Rezolvare.
Program P4;
var x1,S,a,b,h,M :real;
j,i,n : integer;
function f(x:real):real;
begin
f:=x*x*sqrt(1-x*x*x);
end;
begin
b:=1; a:=0;
n:=10;
h:=(b-a)/n;
for j:=1 to 3 do
{contor utilizat pentru schimabarea numarului de divizari}
begin
s:=0;
for i:=0 to n-1 do
{calculul ariilor elementare si sumarea lor}
begin
x1:=a+i*h+h/2;
s:=s+h*f(x1);
end;
{afisarea rezultatelor pentru numarul dat de divizari}
writeln ('n=',n,' s=',s:8:4);
n:=n*10; {schimabarea numarului divizarilor}
h:=(b-a)/n; {recalcularea pasului}
end;
end.
Exemplul 2. Elaborai un program, ce calculeaz aria figurii mrginite de liniile ce nu se
intersecteaz definite de funciile y=sin(x) + 2, y=x
2
+ 1 si de dreptele x = 0 si x = 1.
Calculul se va efectua utiliznd formula dreptunghiurilor de stnga cu exactitatea e = 0,01. La
ecran se va afia valoarea S a ariei ntregii figuri i numrul de diviziuni n a intervalului de
integrare.
Rezolvare. In problema data se cere sa se calculeze 2 integrale, apoi sa se calculeze
diferenta lor. Aria cutat va fi
1 1
2
0 0
sin( ) 2 1 S x dx x dx + +

.
Menionm c n condiiile problemei este prezent un moment de nedeterminare:
exactitatea cerut se poate obine n un numr diferit de iteraii pentru fiecare din funciile
date. Din acest motiv vom afia numrul de iteraii pentru fiecare din integralele calculate.
Mai nti vom determina M pentru derivata funciilor date pe segmentul propus:
30
Capitolul 2. Metode numerice
y=sin(x)+2 y=cos(x) 1 pe segmentul [0, 1];
y=x
2
+1 y=2x 2 pe segmentul [0, 1].
Vom considera M
1
=1 si M
2
=2.
Program P5;
var x1,S1,s2,a,b,h,M1,m2,e :real;
j,i,n,n2 : integer;
function f1(x:real):real; {prima functie integrabila}
begin f1:=sin(x)+2; end;
function f2(x:real):real; {a doua functie integrabila}
begin f2:=1+x*x; end;
begin
{initializarea procesului de calcul. Datele le fixam direct in
program, deoarece nu sunt puse restrictii asupra introducerii lor}
b:=1; a:=0; e:=0.01; M1:=1; n:=2; h:=(b-a)/n;
{calculul primei integrale}
while (b-a)*M1*h >e do {atit timp cat nu e atinsa exactitatea
recalculam integrala}
begin
s1:=0;
for i:=0 to n-1 do {calculul ariilor elementare si sumarea lor}
begin
x1:=a+i*h;
s1:=s1+h*f1(x1);
end;
n:=n+1; {schimabarea numarului divizarilor}
h:=(b-a)/n; {recalcularea pasului}
end;
{initializarea datelor pentru calculul integralei 2:}
M2:=2; n2:=2; h:=(b-a)/n2;
while (b-a)*M2*h >e do {atit timp cat nu e atinsa exactitatea
recalculam integrala}
begin
s2:=0;
for i:=0 to n2-1 do {calculul ariilor elementare si sumarea lor}
begin
x1:=a+i*h;
s2:=s2+h*f2(x1);
end;
n2:=n2+1; {schimabarea numarului divizarilor}
h:=(b-a)/n2; {recalcularea pasului}
end;
writeln ('numarul de divizri pentru prima componenta ',n);
writeln ('numarul de divizri pentru componenta doi ',n2);
writeln ('aria figurii ',abs(s1-s2));
end.
31
Capitolul 2. Metode numerice
ntrebri i exerciii
1. Dai formularea matematic a metodei dreptunghiurilor (dreptunghiuri de stnga,
dreptunghiuri medii, dreptunghiuri de dreapta).
2. Elaborai o procedur care realizeaz fiecare din variantele metodei dreptunghiurilor:
de stnga, medii, de dreapta.
3. Care este eroarea de calcul a metodei dreptunghiurilor?
4. Se consider figura mrginit de graficul funciei y = |x| cos x + 1, axa 0x i de
dreptele x = -2 i x = 2. Elaborai un program care va determina poziia dreptei verticale, care
mparte figura examinat n dou pri, ariile crora, respectiv din stnga i din dreapta, se
raport ca 3:1. Calculele se vor efectua utiliznd formula dreptunghiurilor de stnga cu
exactitatea = 0,001. La ecran se va afia valoarea S a ariei ntregii figuri i coordonata
punctului b de pe axa 0x prin care trece dreapta vertical cutat.
5. Compunei un program ce calculeaz integrala


1
0
3 2
1 dx x x I
utiliznd formula dreptunghiurilor (metoda mediilor) cu exactitatea = 0,01. Programul va
afia la ecran valoarea integralei I i numrul de diviziuni n pentru care se realizeaz
exactitatea dat.
5. Elaborai un program ce calculeaz integrala
( )


1
0
2
1 dx e e I
x x
utiliznd formula dreptunghiurilor de dreapta cu exactitatea = 0,001. Programul va afia la
ecran valoarea integralei I i numrul de diviziuni n pentru care se realizeaz exactitatea dat.
6. Elaborai un program ce calculeaz integrala

+
1
0
1 dx x I
utiliznd formula dreptunghiurilor de stnga pentru diferite numere de diviziuni ale
intervalului de integrare n =10, 100, 1000. Programul va afia la ecran valoarea integralei I
pentru fiecare numr de diviziuni n.
7. Elaborai un program ce calculeaz aria figurii mrginite de liniile ce nu se
intersecteaz definite de funciile y = sin x + 2, y = x
2
+ 1 i de dreptele x = 0 i x = 1. Calculul
se va efectua utiliznd formula dreptunghiurilor de stnga cu exactitatea = 0,01. La ecran se
va afia valoarea S a ariei figurii i numrul de diviziuni n ale intervalului de integrare.
8. Elaborai un program ce calculeaz aria figurii mrginite de graficul funciei y = e
|x|
,
axa 0x i de dreptele x = -2 i x = 2. n program nu se va utiliza funcia standard a limbajului
Pascal exp(x). n calcule se va folosi descompunerea n serie Taylor
e
x
= 1 + x/1! + x
2
/2! + x
3
/3 + x
4
/4! + .
32
Capitolul 2. Metode numerice
Calculele se vor efectua utiliznd formula dreptunghiurilor de stnga cu exactitatea = 0,001.
Cu aceeai exactitate se va calcula i valoarea funciei. La ecran se vor afia valoarea S a ariei
figurii i numrul de diviziuni n ale intervalului de integrare.
9. Elaborai un program ce calculeaz aria figurii mrginite de graficul funciei
y = |x| cos x + 1, axa 0x i de dreptele x = -2 i x = 2. n program nu vei utiliza funciile
trigonometrice standard ale limbajului Pascal. n calcule vei folosi descompunerea n serie
Taylor
cos x = 1- x
2
/2! + x
4
/4! - x
6
/6! + .
Calculele se vor efectua utiliznd formula dreptunghiurilor de stnga cu exactitatea = 0,001.
Cu aceeai exactitate se va calcula i valoarea funciei. La ecran se va afia valoarea S a ariei
figurii i numrul de diviziuni n ale intervalului de integrare.
10. Se consider figura mrginit de graficul funciei y = sin3x + 1, axa 0x i de dreptele
x = -2 i x = 1. Elaborai un program care va determina poziia dreptei verticale, care mparte
figura examinat n dou pri de arie egal. Calculele se vor efectua utiliznd formula
dreptunghiurilor de dreapta cu exactitatea = 0,001. La ecran se va afia valoarea S a ariei
ntregii figuri i coordonata punctului b de pe axa 0x prin care trece dreapta vertical cutat.
11. Compunei un program ce calculeaz integrala

+
1
0
1 dx x I
utiliznd formula dreptunghiurilor de stnga cu exactitatea = 0,001. Programul va afia la
ecran valoarea integralei I i numrul de diviziuni n pentru care se realizeaz exactitatea dat.
n program nu se vor utiliza funciile trigonometrice standard ale limbajului Pascal. n calcule
se vor folosi descompunerile n serie Taylor
sin x = x x
3
/3! + x
5
/5! x
7
/7! + ;
cos x = 1 - x
2
/2! + x
4
/4! x
6
/6! + .
Valorile funciilor se vor calcula cu aceeai exactitate.
2.8. Formula trapezelor pentru calculul integralei
n paragraful precedent am folosit pentru aproximarea funciei integrale funcii
constante, care coincid cu valoarea funciei ntr-un singur punct (nceputul, mijlocul sau
sfritul segmentului elementar, pe care se opereaz aproximarea). Este logic dezvoltarea
metodei prin interpolarea mai exact a funciei de sub integral, de exemplu cu polinoame de
interpolare Lagrange de grad 1 (funcia de interpolare va coincide cu funcia integral n 2
puncte). n calitate de noduri de interpolare vom folosi extremitile segmentului elementar
[x
i
, x
i+1
] pe care realizm interpolarea.
Grafic procesul de aproximare a funciei l putem urmri n figura alturat. Menionm
c funcia de aproximare va fi o funcie liniar ce va trece prin punctele (x
i
, f(x
i
), x
i+1
, f(x
i+1
)).
33
Capitolul 2. Metode numerice
Formularea matematic a metodei
Pentru a avea posibilitatea de a aplica metoda trapezelor, vom cere suplimentar ca
funcia integral s fie de dou ori derivabil.
Fie f o funcie de dou ori derivabil pe [a, b] i
] , [
) ( ' ' sup
b a x
x f M

.
Considerm o diviziune a intervalului [a, b] n forma a = x
0
< x
1
< x
2
< < x
n-1
< x
n
= b.
Pe fiecare din segmentele [x
i
, x
i+1
] vom aproxima suprafaa trapezului curbiliniu cu aria
trapezului cu baza h = |x
i
, - x
i+1
| , laturile laterale cu lungimile f(x
i
,) i f(x
i+1
), iar latura
superioar dat de segmentul cu extremitile (x
i
, f(x
i
)) i (x
i+1
, f(x
i+1
)).
Ca i n cazul formulei dreptunghiurilor vom considera segmentele [x
i
, x
i+1
] egale.
Lungimea segmentului elementar va fi de h = |b - a|/n, iar punctele x
i
vor putea fi
determinate de formula x
i
=a + i * h.
Atunci valoarea integralei definite pe un segment elementar [x
i
, x
i+1
] pentru funcia f(x)
se va aproxima conform formulei
1 1 1
1 1
1 1
1 1
( ) ( ) ( ) ( ( ) ( ))
2
i i i
i i i
x x x
i i i i
i i i i
i i i i x x x
z x z x x x
g z dz f x dz f x dz f x f x
x x x x
+ + +
+ +
+ +
+ +

+ +


,
iar pentru ntreg segmentul [a, b] vom obine

+
+

+
+
+
+
+

+

,
_

+ +
1
0
1
1
0
1
1
1
0
1
1
1
1
2
) ( ) (
) (
)) ( ) ( (
2
) ( ) ( ) (
1 1
n
i
i i
n
i
i i
i i
b
a
n
i
x
x
i
x
x i i
i
i
i i
i
x f x f
a b
x f x f
x x
dz x f
x x
x z
dz x f
x x
x z
dz z g
i
i
i
i
Determinarea erorii de calcul (marginea superioar)
Eroarea de interpolare pe un interval elementar se estimeaz ca modulul diferenei ntre
valoarea exact a funciei pe interval i funcia de interpolare. Corespunztor, eroarea de la
integrare, exprimat prin funcia de interpolare, va fi integrala erorii de interpolare. Pe un
segment elementar eroarea de interpolare (conform formulei pentru estimarea erorii de
interpolare Lagrange) va fi:
34
Capitolul 2. Metode numerice
| f(z) - g(z, x
i
, x
i+1
) | M * |(z x
i+1
)(z - x
i
)| / 2!
unde
x
i ,
x
i+1
punctele de interpolare,
M supremul derivatei 2 pentru funcia f(z) pe segmentul elementar [x
i ,
x
i+1
].
Atunci eroarea de integrare pe segmentul elementar e de
( )
[ ]
3
1 1
2 2
1
1
2 2
1
3 3
1
3 3
1
1 1
2
1 1
2 1
1 1
) (
12 2 2 2 2
3 2
1 ) (
2
| ) ( |
2 2
) )( (
) , , ( ) ( , , ) (
1 1 1
1 1
1 1 1
i i i i i i
i i i i i i
i i
x
x
i i
x
x
i i
x
x
i i
x
x
i i
i i
x
x
x
x
i i
x
x
x
x
i i
x x
M
x x x x
M x x x x x x M
x x M
dz x x dz z x x dz z
M
dz x x z x x z
M
dz
x z x z M
dz x x z g z f dz x x z g dz z f
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
+
1
]
1

1
]
1

1
1
]
1

+ +
+ +


+ + +
+ + +
+
+ +
+ +
+
+ +



+ + +
+ +
+ + +
Eroarea de integrare pe tot segmentul poate fi interpretat drept suma erorilor de
integrare pe segmentele elementare, prin urmare poate fi estimat prin formula:
unde
M este supremul derivatei de ordin 2 al funciei integrate pe segmentul [a, b];
h lungimea unui segment elementar
Formula dat ne permite s stabilim apriori care este numrul necesar de iteraii pentru
obinerea unei erori mai mici dect cea prestabilit:
.
Pentru metoda trapezelor aceast formul este mai puin util din cauza convergenei
rapide a metodei de obicei numrul de divizri necesare este destul de mic. n anumite
condiii, totui ea poate optimiza procesul de calcul i poate fi utilizat direct pentru stabilirea
numrului de iteraii necesare.
Algoritmizarea problemei
Varianta A (pentru numrul cunoscut de divizri).
1. Se introduc limitele de integrare a, b.
2. Se indic numrul de divizri n.
35
Capitolul 2. Metode numerice
3. Se calculeaz pasul de deplasare h (pentru cazul cnd e cunoscut numrul de
divizri).
4. Pornind de la a calculm valorile funciei n extremitile segmentelor elementare

i
ariile trapezelor.
5. nsumm ariile elementare.
6. Afim rezultatul.
Varianta B (pentru exactitatea prestabilit).
1. Se introduc limitele de integrare a, b i sup(f (x)) pe [a, b].
2. Se indic exactitatea cerut .
3. Se fixeaz sistemul de noduri pentru divizarea segmentului [a, b] (iniial poate fi
considerat din 2 puncte extremitile segmentului [a, b] ).
4. Pornind de la a calculm valorile funciei n extremitile segmentelor elementare

i
ariile trapezelor.
5. nsumm ariile elementare.
6. Estimm eroarea conform formulei. Dac eroarea este mai mare dect exactitatea
cerut, mai adugm un nod la divizarea curent, apoi repetm paii 4-5, n caz
contrar afim rezultatul. Sfrit.
Funcii frecvent utilizate
function itera(a,b,M,e:real):longint;
{funcia determin numrul minim de divizri necesar pentru
obinerea exactitii cerute
- metoda dreptunghiurilor, toate variaiile}
var n1,n2,n : longint;
e1:real;
begin
{fixm numrul minim posibil i maxim acceptabil de divizri}
n1:=0;
n2:=maxlongint div 2;
while(n2-n1)>1 do
{divizm intervalul att timp, ct lungimea lui e mai mare ca 2}
begin
n:=trunc((n1+n2) / 2);
e1:=(b-a)*M*(b-a)/4/n;
if e1<e then n2:=n else n1:=n;
{verificm necesitatea micorrii sau mririi numrului de
divizri}
end;
itera:=n;
end;
function expo(x:real):real;
{calculul functiei e la puterea x}
var t,s:real;
n:integer;
begin
s:=0;t:=1;n:=1;
while t>e do
begin
s:=s+t; t:=t*x/n; n:=n+1;
end;
36
Capitolul 2. Metode numerice
expo:=s;
end;
function mysin(x:real):real;
{calculul functiei sin x}
var t,s:real; semn,n2 : integer;
begin
s:=0;t:=x;n2:=2; semn:=-1;
while abs(t)>e do
begin
s:=s+t; t:=semn*t*x*x/(n2+1)/n2;
n2:=n2+2;
end;
mysin:=s;
end;
function coso(x:real):real;
{calculul functiei cos(x)}
var t,s:real; semn,n:integer;
begin
s:=0;t:=1;n:=2; semn:=-1;
while abs(t)>e do
begin
s:=s+t; t:=semn*t*x*x/(n-1)/n; n:=n+2;
end;
coso:=s;
end;
Exemplu
Se consider figura mrginit de graficul funciei y=e
|x/2|
, axa 0x i de dreptele x=-2 i
x=2. Elaborai un program, care va determina poziia dreptei verticale, care mparte figura
dat n dou pri, ariile crora, respectiv din stnga i din dreapta, se raport ca 1:2. Calculul
se va efectua utiliznd formula trapezelor cu exactitatea e=0,0001.
Rezolvare. Vom determina mai nti M pentru funcia dat pe intervalul propus:
y=e
|x/2|
=> y=1/4 e|
x/2|
.
Deoarece funcia este par e suficient s determinm M pe intervalul (0, 2). Pe acest
interval derivata 2 e cresctoare i valoarea maxim se obine n x=2. De aici
M=e/4 0,7.
Pentru o exactitate mai mare vom considera M=1.
Program P6;
var s1,x1,x2,e,S,a,b,h,M:real;
{x1,x2 - extremitile segmentului elementar;
i,n: integer; {i contor, n numrul de divizri}
S - aria total;
S1 aria figurii separate n stnga de linia vertical n raportul
cerut
ab extremitile intervalului;
h pasul;
37
Capitolul 2. Metode numerice
M marginea superioar a derivatei 2}

function f(x:real):real;
begin f:=exp(abs(x/2)); end;
begin
{deoarece nu se impun restricii la modul de introducere a
datelor iniiale, le fixm valorile direct n program}
b:=2; a:=-2; M:=0.8; e:=0.001; n:=2;
{numrul iniial de divizri}
h:=(b-a)/n;
while (b-a)/12*h >e do
{att timp, ct nu e atins exactitatea cerut repetm procesul}
begin
s:=0;
for i:=0 to n-1 do
begin
x1:=a+i*h;
x2:=a+(i+1)*h;
s:=s+h*(f(x1)+f(x2))/2;
end;
n:=n+1;
{Mrim numrul de divizri. Creterea numrului de divizri poate fi
fcut i mai mare, ex n:=n+10}
h:=(b-a)/n; {Recalculm lungimea segmentului elementar}
end;
s1:=0; i:=0; n:=0;
while s1<s/3 do
{Pornind de la extremitatea stng a figurii, adugm trapezele
elementare, pn nu ajungem la proporia cerut}
begin
inc(n);
x1:=a+i*h;
x2:=a+(i+1)*h;
s1:=s1+h*(f(x1)+f(x2))/2;
i:=i+1;
end;
{afiarea rezultatelor}
writeln('s=', s:10:6);
writeln('x= ', (x1+x2)/2:10:6);
{n calitate de punct de trecere lum mijlocul laturii de jos a
ultimului trapez}
end.
ntrebri i exerciii
1. Dai formularea matematic a metodei trapezilor.
2. Elaborai o procedur care realizeaz metoda trapezilor.
3. Care este eroarea de calcul a metodei trapezilor?
4. Se consider figura mrginit de graficul funciei y = e
|x/2|
, axa 0x i de dreptele x =
-2 i x = 2. Elaborai un program care va determina poziia dreptei verticale care mparte
figura examinat n dou pri, ariile crora, respectiv din stnga i din dreapta, se raport ca
1:2. Calculele se vor efectua utiliznd formula trapezelor cu exactitatea = 0,001. La ecran se
38
Capitolul 2. Metode numerice
va afia valoarea S a ariei ntregii figuri i coordonata punctului b de pe axa 0x prin care trece
dreapta vertical cutat.
5. Compunei un program ce calculeaz integrala

5
2
2
ln
cos
dx
x
x
I
utiliznd formula trapezelor cu exactitatea =0,001. Programul va afia la ecran valoarea
integralei I i numrul de diviziuni n pentru care se realizeaz exactitatea dat.
6. Compunei un program ce calculeaz integrala

5
2
2
ln
cos
dx
x
x
I
aplicnd formula trapezelor pentru diferite numere de diviziuni ale intervalului de integrare
n = 10, 100, 1000. Programul va afia la ecran valoarea integralei I pentru fiecare numr de
diviziuni n.
7. Elaborai un program ce calculeaz aria figurii mrginite de liniile ce nu se
intersecteaz definite de funciile y = x
3
+3, y = e
tg 2x
i de dreptele x = -0,3 i x = 0,1.
Calculele se vor efectua utiliznd formula trapezelor cu exactitatea =0,001. La ecran se va
afia valoarea S a ariei figurii i numrul de diviziuni n a intervalului de integrare.
8. Elaborai un program ce calculeaz integrala

5
2
2
ln
cos
dx
x
x
I
cu exactitatea = 0,001 prin dou metode: utiliznd formula trapezelor i formula
dreptunghiurilor (metoda mediilor). La ecran se va afia valoarea integralei I i numrul de
diviziuni n
1
i n
2
pentru care a fost calculat integrala prin fiecare metod.
9. Elaborai un program ce calculeaz integrala

2
1
dx x I
x
cu exactitatea = 0,01 prin dou metode: aplicnd formula trapezelor i formula
dreptunghiurilor de stnga. La ecran se va afia valoarea integralei I i numrul de diviziuni
n
1
i n
2
pentru care a fost calculat integrala prin fiecare metod.
10. Elaborai un program ce calculeaz integrala

+
1
0
2 2
1 2 sin )dx x ( e I
x
39
Capitolul 2. Metode numerice
cu exactitatea = 0,0001 prin dou metode: aplicnd formula trapezelor i formula
dreptunghiurilor (metoda mediilor). La ecran se va afia valoarea integralei I i numrul de
diviziuni n
1
i n
2
pentru care a fost calculat integrala prin fiecare metod.
40