Sunteți pe pagina 1din 8

14.

INTEGRAREA NUMERIC A FUNCIILOR


Integrarea numeric este utilizat foarte des n calculele inginereti, fie pentru
calculul unor integrale propriu-zise, fie pentru integrarea numeric a ecuaiilor
difereniale.
Calculul numeric al unei integrale, denumit i cuadratur, se poate face prin
aproximarea funciei de integrat printr-o alt funcie, pentru care integrala se
cunoate sau se poate calcula uor, sau prin aproximarea funciei printr-un set de
funcii liniare sau parabolice, pe poriuni.
14.1. Calculul cu aproximaie al integralelor definite
Metodele aproximative de calcul ale integralei definite au ca principiu
nlocuirea curbei ) (x f y = , n intervalul de integrare [a, b], cu o curb mai simpl
) (x g y = , deci :

) d ) ( d ) (
b
a
b
a

x x g x x f

unde curba ) (x g y = , este o funcie n scar, o linie poligonal (metoda
dreptunghiului, metoda trapezelor, metoda tangentelor), un lan de parabole,
(metoda lui Simpson) sau polinomul de interpolare al lui Lagrange.
Ideea fundamental, de obinere a unei soluii aproximative, este de a scrie
integrala sub forma,


j
j j
h w x f x x f ) ( d ) (
b
a

unde
j
w , sunt ponderi asociate cu procesul de integrare. Relaia este cunoscut ca
formula prin cuadraturi i un procedeu posibil de generare este cu polinoame
Lagrange.
14.1.1. Metoda dreptunghiurilor
Pentru funcia de integrat, ) (x f y = , pe intervalul de integrat [a, b], se pot lua
subintervale egale,
n
a b
x x
k k

=
+1
, astfel nct
b x x x x x x x a
n n k k
< < < < < < < < < <
+ 1 1 2 1 0
... ...

iar metoda dreptunghiurilor const n a aproxima integrala definit

=
b
a
d ) ( x x f I ,
cu o sum Riemann.
Aproximarea se poate face prin dou formule :
Integrarea numeric a funciilor 293
[ ] ) ( ... ) ( ) ( ) (
1 2 1 1
+ + + +

n
x f x f x f a f
n
a b
I ,
[ ] ) ( ) ( ... ) ( (
1 2 1 2
b f x f x f x f
n
a b
I
n
+ + + +

,
astfel c, dac funcia este cresctoare pe interval, atunci I
1
aproximeaz prin lips,
iar I
2
prin exces.
n metoda dreptunghiurilor, se nlocuiete arcul ) (x f y = , cu o funcie n
trepte, iar eroarea de calcul
( )
n
a b
A
2

, cu ) ( ' sup x f A
b x a
= .
14.1.2. Metoda trapezelor
Metoda trapezelor const n a aproxima integrala definit

=
b
a
d ) ( x x f I , prin
semisuma valorilor I
1
i I
2,
calculate anterior,
[ ] ) ( ) ( 2 ... ) ( 2 ) ( 2 ) (
2 2
1 2 1
2 1
b f x f x f x f a f
n
a b I I
I
n tr
+ + + + +

=
+


care, dup prelucrri, se poate scrie :

+ +

=
1
1
) ( 2 ) ( ) (
2
n
i
i tr
x f b f a f
n
a b
I
n metoda trapezelor, se nlocuiete arcul de curb ) (x f y = , cu o coard, iar
eroarea de calcul
( )
2
3
12 n
a b
B

, cu ) ( sup
' '
x f B
b x a
= .
14.1.3. Metoda tangentelor
n aceast metod, se aproximeaz pe fiecare subinterval [ ]
1
,
+ k k
x x , arcul de
curb ) (x f y = , cu tangenta la curb, lundu-se numrul diviziunilor pare (n=2m)
i se duce tangenta la curb n punctele de abscis x
2k+1
, tangent pe care o
mrginim la dreptele paralele cu axa Oy, duse prin punctele (x
2k
, 0) i (x
2k+1
, 0),
astfel nct, aria trapezului este dat de ( ) ) ( ) ( ) (
2
1 2 2 2 2 + +

= +

k k k
x f
m
a b
x f x f
m
a b
.
nsumnd pentru toate ariile elementare, obinem,
( ) ( ) ( ) [ ]
1 2 3 1
b
a
tan
... d ) (

+ + +

=
m
x f x f x f
m
a b
x x f I
14.1.4. Metoda lui Simpson
n metoda lui Simpson se ia o medie ponderat a valorilor aproximative,
obinute prin metoda trapezelor i a tangentelor, anume
3
2
tan
I I
I
tr
Sims
+
= .
SISTEME DE PROGRAMARE PENTRU MODELARE I SIMULARE 294
Formula lui Simpson, lund numrul de diviziuni par, n=2m, este :
( ) ( ) ( ) ( ) ( ) ( ) ( ) [ ] b f x f x f x f x f x f a f
m
a b
I
m m Sims
+ + + + + + +

1 2 2 2 3 2 1
4 2 ... 4 2 4
6

n metoda lui Simpson se aproximeaz curba n intervalul [ ]
2 2 2
,
+ k k
x x , printr-
un arc de parabol C x B x A y + + =
2
, care trece prin punctele curbei de abscise
x
2k
, x
2k+1
, x
2k+2
, iar eroarea de calcul
( )
4
5
2880 m
a b
C

, cu ) ( sup x f C
IV
b x a
= .
14.1.5. Aproximarea prin interpolare
Considerm c intervalul de interpolare [a, b], se poate mpri n n
subintervale oarecare,
b x x x x x a
n n
= < < < < < =
1 2 1 0
... ,
n care, funcia f(x) ia valorile,
) ( ), ( ),... ( ), (
1 1
b f x f x f a f
n
.
n aceast metod, funcia de integrat f(x), se aproximeaz cu polinomul L
n
,
de interpolare, al lui Lagrange, care trece prin cele n+1 puncte,
( ) ( ) ( ) ( ) ( ) ( )
n n
x f x x f x x f x , ,..., , , ,
1 1 0 0

a crui expresie este,
( ) ( ) ( )
n n n
x f X x f X x f X L + + + = ...
1 1 0 0
,
cu
( ) ( ) ( )
( ) ( ) ( )
n k k k
n
k
k
x x x x x x
x x x x x x
x x
X

=
K
K
1 0
1 0
1
.
Dac nlocuim pe f(x) n ,

b
a
d ) ( x x f cu ) (x L
n
, obinem,
( )
( ) ( ) ( )
( ) ( ) ( )



=
=
b
a
1 0
0
1 0
dx
x x
x x x x x x
x x x x x x
x f
I
k
n
n
k
n k k k
k
K
K

i s-a redus calculul integralei definite, la integrarea unor polinoame.
Printr-o schimbare de variabil, integralele pot fi obinute independent de
punctele de diviziune i intervalul de integrare, astfel nct:
( ) ( ) t a b x a b t a x d d = + = ,
( ) ( ) ( ) a b t a x a b t a x a b t a x
n n
+ = + = + = , , ,
1 1 0 0
L .
Prin urmare,
1 0
1 1 0
= < < < < <
n n
t t t t L ,
i
( ) ( ) ( ) ( )
k i k i k k
t t a b x x t t a b x x = = , ,L
astfel nct, integrala I devine ( )

=
=
1
0 0
dt t T Y I
k
n
k
k
, unde,
Integrarea numeric a funciilor 295
( ) ( )
( ) ( ) ( ) ( ) ( )
n k k k k k k k
k
k
t t t t t t t t t t
x f a b
Y


=
+
K K
1 1 1 0
,
( ) ( ) ( ) ( ) ( ) ( )
n k k k
t t t t t t t t t t t T =
+
K K
1 1 1 0
,
n care ( ) t T
k
, sunt polinoame de gradul n , n t.
Pentru diverse valori ale lui n, s-au calculat integralele ( )

=
1
0
'
dt t T T
k k
i
coeficienii
( ) ( ) ( ) ( ) ( )
n k k k k k k k
k
k
t t t t t t t t t t
T
A

=
+
K K
1 1 1 0
'
, astfel nct, prin
intermediul acestora, ce se gsesc calculai, aproximarea integralei se reduce la
calculul sumei ( ) ( )

=

n
k
k k
x f A a b
0
.
14.1.6. Calculul numeric al integralelor pe intervale infinite
n definiia anterioar a integralei definite

b
a
d ) ( x x f , am presupus c limitele
a i b sunt finite, iar funcia f(x) este mrginit pe [a, b].
Dac unul sau amndou numerele a i b sunt infinite, integralele sunt de
forma,

a
d ) ( x x f ,

b
-
d ) ( x x f ,

+
-
d ) ( x x f ,
care se pot reduce cu uurin la cazul

=
a
d ) ( x x f I .
Pentru calculul integralelor de acest tip, presupunem c integrala are sens sau
c este convergent, dac


A
a
d ) ( lim x x f
A
exist i este finit, pentru funcia f(x),
definit pe intervalul [ ] + , a i integrabil pe intervalul [a, A], pentru orice A>0.
O integral care nu este convergent, se spune c este divergent sau c nu
are sens.
Calculul integralelor convergente de tipul

=
a
d ) ( x x f I , se poate face :
prin schimbarea variabilei, astfel nct intervalul infinit [ ] + , a , s se
transforme ntr-un interval finit, de exemplu, [ ] b a, , i apoi, se evalueaz prin
una dintre metodele expuse anterior;
prin separarea integralei n dou integrale,


+ =
b a a
d ) ( d ) ( d ) ( x x f x x f x x f
b
, iar
apoi calculul se poate face:
neglijnd termenul integral infinit, dac b este suficient de mare,
astfel nct

>>
b b
x x f x x f
2
b a
d ) ( d ) ( ;
SISTEME DE PROGRAMARE PENTRU MODELARE I SIMULARE 296
aproximnd forma asimptotic a lui f(x) , printr-o funcie ) ( ) ( x f x g ,
care, pentru x suficient de mare, permite calculul analitic al integralei
funciei g(x).
14.1.7. Calculul numeric al integralelor funciilor cu singulariti
Singularitile sunt puncte ale unui interval mrginit, pentru care funcia este
infinit, ca de exemplu integrala


1
0 1
d
x
x
. Pentru aceste cazuri se recomand :
eliminarea singularitilor, atunci cnd este posibil, prin schimbarea de
variabile, integrarea prin pri etc;
folosirea metodei Simpson, cu excluderea singularitilor, prin nlocuirea
limitei 1 cu 1 , cu suficient de mic;
folosirea cuadraturii, bazate pe aproximarea funciei cu polinoame.
14.1.8. Integrarea dubl numeric
n multe situaii, se ntlnesc integrale duble definite, avnd aplicabilitate la
calculul ariei unui domeniu plan, ariei unei suprafee din spaiu, volumului
corpurilor, centre de greutate ale plcilor, momente de inerie.
O integral dubl este

= = =
b a
D D
x y x f y S y x f y x y x f II
a 0
d ) , ( d d ) , ( d d ) , (
unde f, este funcia de integrat, x i y sunt variabilele de integrare, D este domeniul
de integrare, considerat dreptunghiular, [ ] [ ] b a x 0, y , , 0 .
Vom considera pasul de integrare egal cu h, pe ambele subdomenii ale
domeniului D. Considerm c I este numrul de subintervale spaiale pe intervalul
[0, a] i J numrul de subintervale spaiale pe intervalul [0, b], care, evident, vor
avea lrgimea, h
J
b
I
a
h h
y x
= = = = .
Dac integrala dubl se calculeaz prin metoda trapezului, atunci :
( )

= =

=
+ + + +
= + + +
I
i
J
j
j i j i
J
j
I
i
j i j i j i j i
h w f f f f f
h
II
0 0
2
, ,
1
0
1
0
, 1 1 , 1 1 , ,
2
1
4

n care ponderile
j i
w
,
, asociate procesului de integrare, sunt 1/4, 2/4 i 4/4, dup
cum nodul respectiv este punct de col, punct de margine sau punct interior.
Aplicnd formula lui Simpson, integrala dubl este :
( ) ( )

= =

=
+ + + + + + +
=
+ + + + + + + +
I
i
J
j
j i j i
J
j
I
i
j i j i j i j i j i j i j i j i j i
h w f
f f f f f f f f f
h
II
0 0
2
, ,
1
1
1
1
, 1 1 , 1 , 1 1 , , 11 1 , 1 1 , 1 1 , 1 1 , 1
2
2
16 4
9

unde ponderile
j i
w
,
, iau acum valori diferite de cele anterioare.
Integrarea numeric a funciilor 297
14.2. Funcii Matlab pentru integrarea numeric
Funcia trapz, realizeaz calculul numeric al integralei prin metoda
trapezelor. Se apeleaz cu una dintre sintaxele:
Z=trapz(Y) estimeaz aproximativ integrala lui Y pe intervalul unitate, iar
pentru a calcula integrala pe alte intervale, se nmuleste intervalul cu Z;
pentru vectori, Z este un vector ce conine integrala lui Y, iar dac Y este o
matrice, Z este un vector coloan, ce integreaz fiecare coloan;
Z=trapz(X,Y) calculeaz integrala lui Y, innd cont de X; dac X este un
vector coloan i Y un ir a crui prim dimensiune este length(X),
trapz(X,Y) opereaz pe dimensiune;
Z=trapz(,dim) integreaz pe dimensiunea lui Y, specificat de scalarul dim;
lungimea lui X trebuie s fie la fel cu size(Y,dim).

Functia trapz presupune c integrantul este dat prin valori numerice, n noduri
echidistante ale intervalului de integrare. Dac funcia de integrat este descris sub
forma analitic ) (x f y = , n primul rnd, se creeaz cei doi vectori, care conin
valorile perechilor abscis-ordonat (x-y).Acest lucru se realizeaz prin evaluarea
funciei f(x), cu un pas adecvat pentru x i apoi se aplic funcia trapz.
Pentru exemplificare, se calculeaz numeric integrala

x
dx x
0
) sin( , care are
valoarea exact 2. Secvena Matlab este :
X = 0:pi/100:pi; Y = sin(X); Z = pi/100*trapz(Y), rezultnd 1.9998.
Pentru un interval neuniform avem:
X = sort(rand(1,101)*pi); Y=sin(X); Z = trapz(X,Y), rezultnd 1.9981.

Pentru integrarea numeric cumulativ se utilizeaz funcia cumtrapz, care
utilizeaz tot metoda trapezelor i se apeleaz cu una dintre sintaxele :
Z=cumtrapz(Y) estimeaz aproximativ integrala cumulativ a lui Y, prin
metoda trapezelor, pe intervalul unitate i pentru a calcula integrala pe alte
intervale, se nmulete intervalul cu Z; pentru vectori, Z este un vector ce
conine integrale cumulative ale lui Y, iar pentru matrice, Z este o matrice de
aceeai dimensiune cu Y, cu integralele cumulative calculate pe fiecare
coloan;
Z=cumtrapz(X,Y) calculeaz integrale cumulative ale lui Y, respectiv ale lui
X, folosind metoda trapezelor; X si Y trebuie s fie vectori de aceeai
lungime sau X trebuie s fie un vector coloan i Y un ir de dimensiune
length(X); dac X este un vector coloan i Y este un ir, a crui prim
dimensiune este length(X), cumtrapz(X,Y) opereaz n aceast dimensiune;
Z= cumtrapz(X,Y,dim) sau Z=cumtrapz(Y,dim) integreaz n dimensiunea
lui Y, specificat de dimensiunea scalar dim; lungimea lui X trebuie s fie
aceeai cu size(Y,dim).

SISTEME DE PROGRAMARE PENTRU MODELARE I SIMULARE 298
Pentru exemplificare, se consider Y = [0 1 2; 3 4 5],
aplicnd Z=cumtrapz(Y,1) rezult,
Z=[ 0 0 0 ; 1.5000 2.5000 3.5000],
iar aplicnd Z=cumtrapz(Y,2) rezult,
Z=[ 0 0.5000 2.0000 ; 0 3.5000 8.0000 ].

Dac integrantul este exprimat sub forma unei funcii analitice, se utilizeaz
pentru integrare funciile Matlab quad i quadl sau mai vechi, quad8. Dac
funcia de integrat este descris prin valori numerice, se aproximeaz mai nti
acestea, printr-o funcie, utiliznd o metod de interpolare i apoi aceasta va fi
scris n sintaxa MATLAB, ca fiier de tip M.
Funcia quad utilizeaz metoda Simpson aplicat recursiv adaptiv, avnd o
eroare de 10
-6
, n versiunile mai noi i de 10
-3
n versiunile mai vechi, unde, pentru
mbuntirea toleranei, se utiliza quad8, care se bazeaz pe o cuadratur prin
metoda Newton-Cotes, n 8 puncte. Acum, aceasta cheam practic funcia la
apelare, quadl.
Mai nou, pentru o evaluare mai bun, cu eroare relativ de 10
-6
, se utilizeaz
funcia quadl, ce are la baz metoda de cuadratur recursiv adaptiv Lobatto.
Funciile quad i quadl pot trata unele singularitai, care se gsesc la unul
dintre capetele intervalului de integrare, ns nu rezolv singularitaile care se
gsesc n interiorul intervalului. Nici una dintre funciile quad, quad8, quadl nu
poate rezolva integrale cu singulariti, de genul :

1
0
1
dx
x
. Acestea trebuie aduse la
forma unor funcii simple, fr singulariti.

Sintaxele de apelare a funciilor quad, nelegnd prin aceasta quad, quadl
sau eventual quad8, sunt :
q = quad...('fun',a,b), returneaz rezultatul integrrii numerice a funciei fun,
ntre limitele a i b; funcia fun poate fi dat sub forma unei expreii, funcie
obiect, funcie de tip M sau vector i, n acest caz, returneaz un vector de
valori;
q = quad...('fun',a,b,tol), itereaz pn cnd eroarea relativ este mai mic
dect eroarea relativ tol, care n variantele noi este implicit 1e-6, iar n cele
vechi 1e-3, iar dac tol este sub forma unui vector de dou dimensiuni,
tol=[rel_tol abs_tol], atunci afieaz tolerana relativ, rel_tol i tolerana
absolut, abs_tol;
q = quad...('fun',a,b,tol,trace), n plus, controleaz, prin trace, afiarea pe
ecran a valorilor intermediare;
q = quad...('fun',a,b,tol,trace,p1,p2,...) adaug argumentele p1, p2 funciei
fun(x,p1,p2), iar pentru a utiliza valorile implicite pentru tol i trace se
folosete matrice vid, ca de exemplu, quad ...(('fun',a,b,[ ],[ ],p1,p2).

Pentru a preveni un ciclu infinit, att quad ct i quadl au limita de
Integrarea numeric a funciilor 299
recursivitate 10. Atingerea acestei limite duce la afiarea mesajului "Recursion
level limit reached in quad. Singularity likely " i seteaz q=inf.
Funcia fun se poate da :
direct ca o expresie, Q = quad('1./(x.^3+x.^2-x-2)',-1,2), rezultnd -0.2632;
sub forma unei funcii obiect, F=inline('1./(x.^3-2*x-5)'); Q= quadl(F,0,2),
rezultnd Q= - 0.4605;
sub forma unei funcii de tip M, definind anterior funcia
function y = myf(x); y = 1./(x.^3-2*x-5); i apoi Q = quadl('myf',0,2);

Pentru rezolvarea numeric a integralelor duble se folosete funcia
dblquad, care se poate apela cu una dintre sintaxele :
result=dblquad('fun',xmin,xmax,ymin,ymax), returneaz rezultatul integrrii
duble a funciei fun(x,y), unde x, aparine intervalului [xmin xmax] i y,
aparine intervalului [ymin ymax], funcia fun putnd fi precizat prin una
dintre metodele de la funcia quad;
result=dblquad('fun',xmin,xmax,ymin,ymax,tol) specific tolerana tol, care
are valoarea implicit 1e-6;
result=dblquad('fun',xmin,xmax,ymin,ymax,tol,metod) specific metoda de
integrare, care n mod normal este quadl sau se poate face o funcie de
integrare de ctre utilizator, avnd grij ca argumentele s fie transmise n
aceeai ordine ca i la quadl;
result=dblquad('fun',xmin,xmax,ymin,ymax,tol,metod,p1,p2,...) adaug
argumentele p1, p2 funciei fun(x,p1,p2), iar pentru a utiliza valorile
implicite pentru tol i metod se folosete matrice vid, ca, de exemplu,
dblquad ...(('fun',a,b,[ ],[ ],p1,p2..) sau
dblquad(fun,xmin,xmax,ymin,ymax,1.e-6,@quad,p1,p2,...).

Integrarea funciei [ ] [ ] , 0 , 2 , , cos sin + y x y x x y se face utiliznd
urmtoarea secven :
Q = dblquad(inline('y*sin(x)+x*cos(y)'), pi, 2*pi, 0, pi),
rezultnd Q = -9.8696, x fiind un vector, iar y un scalar.

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