Sunteți pe pagina 1din 18

CALCUL NUMERIC.

Integrarea numeric 1



INTEGRAREA NUMERIC

1. APROXIMAREA FUNCIILOR
1

Deseori n cadrul experienelor apar serii de rezultate obinute pentru anumite valori iniiale fixe. Apare
problema prognozrii rezultatelor pentru careva condiii iniiale, realizarea crora este dificil sau imposibil.
Problema se rezolv prin modelarea experienei n baza rezultatelor obinute anterior.
Exemplul 1
Fie c a fost msurat salinitatea apei oceanice ntr-
un punct cu coordonate date, la adncimile 0, 100, 200, ... ,
500 m. Cercettorii ns trebuie s cunoasc salinitatea apei la
orice adncime ntre 0 i 500 m. Problema poate fi rezolvat
prin modelarea graficului salinitii n baza datelor obinute
experimental. Evident, graficul modelat poate diferi de cel
real, dar la adncimile, n care salinitatea este cunoscut exact,
graficele vor coincide.
Exemplul 2
Temperatura unui pacient este msurat pe parcursul
a 24 ore cu intervalul de 4 ore. Se cere s se construiasc
graficul de temperaturi al pacientului. Graficul de temperaturi
se modeleaz n baza datelor din fia bolnavului. Graficul
modelat al temperaturii poate diferi de cel real, dar n
momentele msurrilor de temperatur ele vor coincide.
n termini matematici problema se formuleaz n
felul urmtor:
Fie dat o funcie f(x), descris prin valorile sale n punctele x
1
, x
2
, ..., x
n
(ordonate). Se cere s se
estimeze valoarea funciei n oricare din punctele interioare ale segmentului [x
1
, x
n
]
Problema aproximrii funciilor apare destul de des att ca problem aparte, ct i n calitate de
subproblem n cadrul rezolvrii altor probleme.
Exemplul 3
Un careva proces este descris de funcia f cu structur complicat, dificil pentru cercetare. Pentru a
simplifica studierea procesului, se aproximeaz funcia iniial f cu o alt funcie g, de exemplu - un polinom,
care poate fi cercetat relativ simplu.
Exist diferite metode de aproximare a funciilor. Toate au drept scop o apropiere ct mai mare a
graficului funciei care aproximeaz de graficul funciei aproximate. n cele ce urmeaz va fi expus doar una
dintre numeroasele metode de aproximare a funciilor - interpolarea funciei prin un polinom.
Fie c se cerceteaz o funcie liniar ( y ax b = + ). Pentru a-i construi graficul, e necesar s se
cunoasc dou puncte, care i aparin. ntr-adevr, dac sunt cunoscute 2 puncte ale graficului funciei de gradul
1 (x
1
, y
1
) i (x
2
, y
2
) se construiete sistemul de ecuaii:
din care n mod univoc se determin coeficienii a i b. Prin urmare poate fi determinat valoarea funciei n
orice alt punct.
Pentru funcia polinomial de gradul 2 (
2
y ax bx c = + + ), metoda este aceeai: se creeaz un sistem
din trei ecuaii, din care se determin univoc coeficienii a, b, c ai funciei iniiale. Valoarea funciei n orice alt
punct poate fi calculat.

1
Opional

= +
= +
2 2
1 1
y b ax
y b ax
CALCUL NUMERIC. Integrarea numeric 2



n caz general, dac sunt cunoscute m puncte distincte care aparin graficului unei funcii polinomiale
de grad m-1, valoarea funciei poate fi calculat n orice alt punct al domeniului de definiie. Se caut un polinom
P de forma
1 2
0 1 2 1
( ) ...
m m
m m
P x a x a x a x a


= + + +
Conform condiiei puse
( ) 1,..
i i
P x y i m = =
Se construiete sistemul de m ecuaii:
1 2
0 1 1 1 2 1 1 1
1 2
0 2 1 2 2 2 1 2
1 2
0 1 2 1
...
...
...
...
m m
m m
m m
m m
m m
m m m m m m
a x a x a x a y
a x a x a x a y
a x a x a x a y






+ + + + =

+ + + + =

+ + + + =


Necunoscutele sistemului sunt valorile a
0
, a
1
, a
2
, ... a
m-1
.Coeficienii sistemului din determinantul
principal formeaz o serie de puteri, deci determinantul principal, format de ei este diferit de 0. Rangul lui este m
(dup numrul de ecuaii n sistem). n acest caz soluia sistemului exist i e unic. Prin urmare, n baza
soluiilor sistemului dat putem reconstrui polinomul cutat P. Deoarece soluia sistemului e unic, rezult c e
unic sistemul de coeficieni ai polinomului, prin urmare i polinomul e unic.
Polinomul astfel determinat este numit polinom de interpolare al punctelor (x
i
, y
i
), i = 1, 2,, m. n
cazul, cnd perechile (x
i
, y
i
), i=1, 2,, m aparin graficului unei funcii, spunem c polinomul interpoleaz
funcia dat.
Dac funcia, graficului creia i aparin punctele, nu este polinomial, atunci polinomul de
interpolare este o aproximare a ei, iar interpolarea poate fi realizat doar pe segmentul determinat de
nodurile de interpolare.
Determinarea polinomului de interpolare a unui sistem de puncte prin metoda direct este destul de
dificil, n special n cazul insuficienei de noduri. n cele ce urmeaz se va discuta o metod de construcie a
polinoamelor de interpolare, care poate fi aplicat pentru orice numr de noduri.
Polinoamele simetrice (Polinoame de interpolare Lagrange)
Fie dat un sistem de noduri (x
i
, y
i
), i = 1, 2,,m care aparin graficului unei funcii. Se va ncerca
generarea unei serie de polinoame F
i
, i=1,...,m, care interpoleaz punctele
(x
1
, 0), (x
2
, 0) (x
i-1
, 0), (x
i
, 1),(x
i+1
, 0), (x
m
, 0) .
Cu alte cuvinte F
i
(x
i
) = 1 , F
j
(x
i
) = 0 j i.
Pentru ca polinomul s devin 0 n punctele x
j
diferite de x
i
vom introduce n el factorii
(x x
1
), (x x
2
), (x x
i-1
),(x x
i+1
), (x - x
m
), care l transform n 0 pentru x = x
1
, x
2
, x
i-1
, x
i+1
,
x
m
. Deci polinomul va conine fragmentul
(x x
1
) (x x
2
) (x x
i-1
) (x x
i+1
) (x - x
m
)
Pentru a transforma acest produs n 1 pentru x = x
i
, x se nlocuiete prin x
i
, iar expresia obinut este
plasat la numitorul fraciei:
(x
i
x
1
) (x
i
x
2
) (x
i
x
i-1
) (x
i
x
i+1
) (x
i
- x
m
)
n rezultat se obine

Cu ajutorul polinoamelor construite mai sus polinomul de interpolare P(x) se definete prin formula
1
( ) ( )
m
i i
i
P x F x y
=
=


) ( ) )( ( ) )( (
) ( ) )( ( ) )( (
) (
1 1 2 1
1 1 2 1
m i i i i i i i
m i i
i
x x x x x x x x x x
x x x x x x x x x x
x F


=
+
+
K K
K K
CALCUL NUMERIC. Integrarea numeric 3




Acest polinom are gradul m-1, deoarece prezint o sum de termeni, fiecare avnd gradul m-1, iar pentru valorile
x
i
ale lui x primete valorile y
i
ale funciei interpolate. Prin urmare P(x) este polinom de interpolare pentru
funcia F(x).

n cazul, cnd se aproximeaz o funcie, care trece prin punctele (x
1
, f(x
1
)), (x
2
, f(x
2
)), (x
3
, f(x
3
)) (x
m
,
f(x
m
)), dup excluderea termenilor identic egali cu 0 formula capt forma

Aceast formul poart denumirea de polinom de interpolare Lagrange.
n cazul cnd funcia f(x) este de m ori derivabil eroarea de interpolare a funciei f(x) prin polinomul de
interpolare Lagrange P(x) este determinat de formula
1
1
( )
[ , ]
( ) ( ) ( )
!
unde
sup ( ( ) )
m
m
i
i
m
x x x
M
f x P x x x
m
M f x
=


m numrul de noduri de interpolare
Exemplul 4
S se determine polinomul de interpolare Lagrange pentru funcia dat prin perechile (1, 1), (2, 5), (3,
7).
x
1
= 1, y
1
= 1; x
2
= 2, y
2
= 5; x
3
= 3, y
3
= 7;
2 3 1 3 1 2
1 2 3
1 2 1 3 2 1 2 3 3 1 3 2
2
( )( ) ( )( ) ( )( )
( )
( )( ) ( )( ) ( )( )
( 2)( 3) ( 1)( 2)
5( 1)( 3) 7 7 5.
2 2
x x x x x x x x x x x x
P x y y y
x x x x x x x x x x x x
x x x x
x x x x

= + + =


= + = +

Exemplul 5
Temperatura unui pacient a fost msurat pe parcursul a n ore cu intervalul de 1 or. Scriei un program,
care s permit determinarea temperaturii n orice moment de timp n intervalul n care au fost fcute msurrile
t 0 1 2 3 4 5 6
f(t) 38 37,1 37.8 39.1 38,4 37,4 36,9

Intrare: prima linie a fiierului in.txt conine un numr natural (0< n < 10 numrul de msurri. Fiecare din
urmtoarele n linii conine cte dou numere reale timpul msurrii temperaturii i valoarea
msurat (x, y).
Ieire: temperatura determinat se afieaz la ecran.
Rezolvare: pentru comoditate vom elabora un program care va permite introducerea repetat a datelor
de la tastatur.
Program cn013;
const nmax=10; {numrul maxim de noduri de interpolare}
uses crt;
type nod=record {structura nodului}
nx,ny :real;
end;
sistem=array[1..nmax] of nod;
var
u:sistem; {tabloul nodurilor de interpolare}
i
m
i m i i i i i i i
m i i
y
x x x x x x x x x x
x x x x x x x x x x
x P


=

= +
+
1 1 1 2 1
1 1 2 1
) ( ) )( ( ) )( (
) ( ) )( ( ) )( (
) (
K K
K K
CALCUL NUMERIC. Integrarea numeric 4



xmax,xmin,x:real;
{extremitile segmentului pe care poate fi}
{realizat interpolarea i un punct interior}
n:integer;
g:text;

procedure citirenoduri;
var I : integer;
begin
{deschiderea fiierului de intrare pentru citire}
assign(g,'in1.txt'); reset(g);
{citirea datelor}
readln(g,n);
for i:=1 to n do
readln(g, u[i].nx, u[i].ny);
close(g);
{determinarea extremitilor segmentului de interpolare}
xmax:=u[1].nx; xmin:=u[1].nx;
for i:=2 to n do
begin
if xmax<u[i].nx then xmax:= u.[i].nx;
if xmin>u[i].nx then xmin:= u.[i].nx;
end;
end;

function lag(q:real):real;
var i,j:integer;
s,p1,p2:real;
begin
s:=0;{iniializarea valorii totale}
for i:=1 to n do
begin
{calculul urmtorului termen}
p1:=1; p2:=1;
{iniializarea numrtorului i numitorului }
for j:=1 to n do
{recalculul numitorului i a numrtorului}
if i<>j then begin
p1:=p1*(q-u[j].nx);
p2:=p2*(u[i].nx-u[j].nx);
end;
{adugarea termenului curent la suma total}
s:=s+(p1/p2)*u[i].ny;
end;
lag:=s;
end;

begin
clrscr;
citirenoduri;
repeat
writeln ('introdu un punct de pe segmental
[',xmin:0:2,';'xmax:0:2,']');
readln(x);
writeln (x:0:2,' 'lag(x):0:4);
writeln('Alt nod (D)a/(N)u');
until upcase(readkey)='N';
end.

Rezultate: Pentru fluxul de date de intrare
CALCUL NUMERIC. Integrarea numeric 5



0.5
1.5
2.5
3.5
4.5
5.5
au fost obinute rezultatele
37.7390
37.1300
38.6233
38.9878
37.7296
37.4425
CALCUL NUMERIC. Integrarea numeric 6








Desenul 5. Pe segmentul elementar [xi, xi+1] funcia
f(x) este aproximat de funcia constant g, iar
integrala - prin aria dreptunghiului cu baza l i
nlimea g.
2. METODA DREPTUNGHIURILOR PENTRU CALCULUL
APROXIMATIV AL INTEGRALEI
Una dintre cele mai des aplicate implementri
ale calculului numeric este calcularea integralei
definite prin metode aproximative. Metodele directe
nu ntotdeauna permit calculul analitic al integralei,
de multe ori nici nu e cunoscut formula care
definete funcia ce trebuie integrat. 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
presupunerea c funcia de sub integral este continu
pe segmentul pe care se face integrarea).
Din cursul de analiz matematic se tie, c
sensul geometric al integralei definite este aria
trapezului curbiliniu, determinat de axa 0X, dreptele
x = a i x = b, i graficul funciei f(x) pe segmentul [a,b] (desenul 3).
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 supra-faa trapezului curbiliniu prin aria
dreptunghiului cu baza l = |x
i
, - x
i+1
| iar nlimea
egal cu valoarea funciei n punctul
1
2
i i
i
x x
z
+
+
=
Pentru simplitate, segmentele [x
i
, x
i+1
] se vor
considera egale. Atunci lungimea segmentului
elementar va fi de
n
a b
l
| |
=
iar punctele x
i
vor putea fi determinate de
formula x
i
=a + i * l
Funcia constant g = (x
i
,+ x
i+1
)/2 pe
fiecare segment elementar [x
i
, x
i+1
] este de
fapt un polinom de interpolare de grad 0, care
aproximeaz funcia f(x) ntr-un singur punct
al segmentului - mijlocul lui.
n acest caz valoarea integralei definite
pe segmentul [a, b] pentru funcia f se va aproxima conform formulei:

Desenul 4 Divizarea segmentului ini-
ial n segmente elementare i aproxi-
marea integralei pe fiecare din ele

Desenul 3 Sensul geometric al integ-
ralei definite este aria trapezului
curbiliniu mrginit de liniile OX, x=a,
x=b, y=f(x)

CALCUL NUMERIC. Integrarea numeric 7





=
+

=
+

=
+
|

\
|
+ + = |

\
| +
= |

\
| +

1
0
1
1
0
1
1
0
1
2
) 1 2 (
2 2
) ( ) (
n
i
i i
n
i
i i
b
a
n
i
i i
l
i a f l
x x
f l
x x
f x x dx x f

=
|

\
|
+ + =
1
0
2
) 1 2 (
n
i
l
i a f l S
n numrul de divizri a segmentului iniial
l lungimea segmentului elementar
S valoarea calculat a integralei.
Astfel, integrala se transform ntr-o expresie aritmetic care depinde doar de numrul
de diviziuni ale segmentului i de valoarea funciei n punctele de mijloc ale segmentelor
elementare. Metoda care reduce calculul integralei la calculul unei sume de arii a
dreptunghiurilor este numit metoda dreptunghiurilor.
Determinarea erorii de calcul
Eroarea de interpolare pe un interval elementar se estimeaz ca modulul diferenei ntre valoarea exact
a funciei pe interval i funcia de interpolare. Conform paragrafului 5.1 aceast eroare este:
1
( ) ( )
2
i i
x x
f x g x M x
+
| |

|
\

Corespunztor, eroarea de la integrare va fi integrala erorii de interpolare. Prin urmare, pe un segment
elementar eroarea de integrare va fi:
2
) (
| )
2
( | ) ( ) (
2
1 1
1 1 1
i i
x
x
i i
x
x
x
x
x x
M dx
x x
x M dx x g dx x f
i
i
i
i
i
i

+

+ +

+ + +

M supremul ) (x f pe segmentul elementar.
O formul mai exact de estimare a erorii se obine prin nlocuirea variabilei x:
2 2
) (
1 1 i i i i
x x
t
x x
t x x

+
+
= =
+ +

( )
2
1 1 1
1
1
1 1
2 2 2 2 2
) (
1 1
|

\
|
=
+

+
+

+ + +

+ +


+ +
i i i i i i i i i i
x
x
x
x
x x
M dt
x x x x
t
x x x x
M
dx x g dx x f
i
i
i
i

Prin urmare, eroarea de calcul pa segmentul de integrare [a,b]va fi

unde M supremul ) (x f pe [a,b].
Din formula precedent rezult un fapt important: eroarea de calcul este dependent de
numrul de divizri a segmentului. Astfel, pentru a obine o eroare de calcul, ce nu depete
o valoare prestabilit , este suficient s se realizeze divizarea segmentului de integrare n n
segmente elementare, valoarea lui n fiind determinat prin secvena de transformri
4
) (
4 2
2
2
1
l
M a b
l
M
l
a b x x
nM
i i
=

= |

\
|
+
CALCUL NUMERIC. Integrarea numeric 8




n
M a b l
M a b
4
) (
4
) (
2
(
(
(

4
) (
2
M a b
n
Algoritmul
Deoarece n cazul calculelor cu o eroare ce nu depete valoarea prestabilit
numrul necesar de divizri poate fi dedus apriori, este suficient s se realizeze un singur
algoritm pentru un numr fixat de divizri n:
Pas 1 Se introduc datele iniiale.
Pentru valoarea dat e a erorii de calcul se determin numrul de divizri din
formula
(
(
(

4
) (
2
M a b
n
Pas 2 Se calculeaz pasul de deplasare l. S 0.
Pas 3 Pentru toi i de la 0 la n-1 :
Se calculeaz valorile
l i a x
il a x
i
i
) 1 (
1
+ + =
+ =
+

Se calculeaz aria dreptunghiului elementar: l
x x
f S
i i
i
|

\
| +
=
+
2
1

Aria calculat se sumeaz cu ariile precedente: S S+ S
i
Pas 4 Se afieaz aria total calculat S. SFRIT.
Exemplul 1 Fie dat integrala definit dx
x
x

+
2
1
4
1
. S se scrie un program care
calculeaz integrala dat prin divizarea segmentului de integrare n 20, 40, 80, 160 divizri.
Pentru fiecare numr de divizri s se indice valoarea calculat cu ase semne dup virgul.
Rezolvare: deoarece numrul de divizri este indicat n condiiile problemei,
preprocesarea matematic nu este necesar.

Program:
program cn014;
const r=4;
var S, a, b, x, l : real;
j,i,n:integer;
function f(x:real): real;
begin
f:=x*x*x*x/sqrt(1+x);
end;
begin
a:=1; b:=2; n:=10;
for j:=1 to r do
begin
S:=0; n:=n*2; l:=(b-a)/n;
for i:=0 to n-1 do
S:=S+ l*f(a + i*l + l/2);
writeln (' n=',n,' I=',S:0:6);
end;
CALCUL NUMERIC. Integrarea numeric 9



readln;
end.

Rezultate
n=20 I=3.788513
n=40 I=3.789629
n=80 I=3.789908
n=160 I=3.789977
Exemplul 2 S se scrie un program, care calculeaz valoarea aproximativ a integralei

2
2
2
2
) sin(cos

dx
x
prin metoda dreptunghiurilor de mijloc. Calculul va fi oprit, dac se
ndeplinete condiia:
n
a b
l l

= ;
8

, n numrul curent de divizri


Valorile a, b, se definesc direct n program.
Rezolvare: Din condiiile problemei se deduce numrul necesar de divizri:
(
(
(

8
;
8
a b
n
n
a b

Program
2
:
program cn015;
var S, a, b, x, e, l : real;
j,i,n:integer;
function f(x:real): real;
begin
f:=sin((cos (x*x))/2);
end;
begin
a:=-pi/2; b:=pi/2; e:=0.0001;
n:=round(pi*(abs(b-a))/(8*e))+1;
S:=0;
l:=(b-a)/n;
for i:=0 to n-1 do
S:=S+ l*f(a + i*l + l/2);
writeln ('n=',n,' I=',S:0:6);
readln;
end.

Rezultate
n = 12338 I=0.818240



2
Aici i n alte programe din prezenta ediie se folosete constanta predefinit pi, utilizat n mediul
Turbo Pascal. Utilizatorii altor limbaje de programare sau a altor compilatoare Pascal vor defini
constanta respectiv n cadrul programului. Ex: const pi=3.141
CALCUL NUMERIC. Integrarea numeric 10



Variaii ale metodei dreptunghiurilor
n unele cazuri punctele determin nlimea dreptunghiului care aproximeaz
integrala pe un segment elementar se iau nu la mijlocul segmentelor elementare, ci la
extremitile lor. n acest caz, dac funcia se aproximeaz prin extremitile stngi ale
segmentelor elementare, integrala definit se aproximeaz prin suma:
) ( ) 2 / ) ( ) ( ) ( ) (
1
0
1
0
1
0
1
il a f l x f l x f x x dx x f
n
i
i
n
i
i
b
a
n
i
i i
+ = =

=
+

=
+ =
1
0
) (
n
i
il a f l S

iar metoda este numit metoda dreptunghiurilor de stnga.
Dac funcia se aproximeaz prin extremitile drepte ale segmentelor elementare,
integrala definit se aproximeaz prin suma:
) ( ) 2 / ) ( ) ( ) ( ) (
1 1
1
1
0
1
il a f l x f l x f x x dx x f
n
i
i
n
i
i
b
a
n
i
i i
+ = =


= =
+

=
+

=
+ =
n
i
il a f l S
1
) (

iar metoda este numit metoda dreptunghiurilor de dreapta.











Determinarea erorii de calcul
n cazul variaiilor metodei dreptunghiurilor eroarea de interpolare pe un segment elementar este:
) ) ( ( ) ( ) (
1 i i
x x x M x g x f
+

Corespunztor, eroarea de la integrare va fi:
2
) (
) ( ) (
2
1
1 1
i i
x
x
x
x
x x
M dx x g dx x f
i
i
i
i


+

+ +

M supremul ) (x f pe segmentul elementar


Desenul 6. Aproximarea integralei
definite prin dreptunghiuri de stnga
Desenul 7. Aproximarea integralei
definite prin dreptunghiuri de dreapta
CALCUL NUMERIC. Integrarea numeric 11



Prin urmare eroarea de calcul pa segmentul de integrare ] , [ b a va fi
unde M supremul ) (x f pe ] , [ b a .
La fel ca n cazul dreptunghiurilor de mijloc numrul de divizri necesare pentru a
obine o soluie calculat cu o eroare ce nu depete o valoare prestabilit poate fi dedus
direct din formula erorii:

Algoritmul (dreptunghiuri de stnga)
3

Deoarece n cazul calculelor cu o eroare ce nu depete valoarea prestabilit
numrul necesar de divizri poate fi dedus apriori, este suficient s se realizeze un singur
algoritm pentru un numr fixat de divizri n :
Pas 1 Se introduc datele iniiale.
Pentru valoarea dat e a erorii de calcul se determin numrul de divizri din
formula
(
(
(

2
) (
2
M a b
n
Pas 2 Se calculeaz pasul de deplasare l. S 0.
Pas 3 Pentru toi i de la 0 la n-1 :
Se calculeaz valorile il a x
i
+ =
Se calculeaz aria dreptunghiului elementar: l x f S
i i
= ) (
Aria calculat se sumeaz cu ariile precedente: S S+ S
i
Pas 4 Se afieaz aria total calculat S. SFRIT.
Exemplul 3. S se calculeze integrala definit ( )

0
2
) sin( dx x x utiliznd metoda
dreptunghiurilor, variaia dreptunghiurilor de stnga, pentru 10, 100, 1000 divizri. Atribuirea
valorilor iniiale se face direct n program. Pentru fiecare numr de divizri la ecran se va
afia valoarea calculat i numrul de divizri, separate prin spaiu.
program cn016;
const r=3;
var S, a, b, x, l : real;
j,i,n:integer;
function f(x:real): real;
begin

3
Pentru dreptunghiurile de dreapta algoritmul se deosebete doar n pas 3 prin diapazonul valorilor
pe care le primete indicele i: de la 1 la n
( )
2
) (
2 2
2
2
1
l
M a b
l
M
l
a b x x
nM
i i
=

+
; ;
2
) (
n
a b
l
l
M a b

=

n
a b
M a b
2
) (
( )
(
(
(


=
2
2
a b
M n
CALCUL NUMERIC. Integrarea numeric 12



f:=sqr((x* sin(x)));
end;
begin
a:=0; b:=pi; n:=1;
for j:=1 to r do
begin
S:=0; n:=n*10;
l:=(b-a)/n;
for i:=0 to n-1 do
S:=S+ l*f(a + i*l);
writeln ('n=',n,' I=',S:0:6);
end;
end.

Rezultate:
n=10 I=4.381796
n=100 I=4.382315
n=1000 I=4.382315
Exemplul 4. S se calculeze integrala definit

1
0
3 sin 2 sin sin xdx x x utiliznd metoda
dreptunghiurilor, variaia dreptunghiurilor de dreapta, cu o eroare de calcul, ce nu depete
valoarea =0.001. Atribuirea valorilor iniiale se face direct n program. La ecran se va afia
valoarea calculat a integralei i numrul de divizri necesare pentru a obine precizia cerut,
separate prin spaiu.
Rezolvare: numrul necesar de divizri poate fi determinat analitic:
Prin calcule elementare se determin valoarea M = 6.

Program:
program cn017;
var S, a, b, x, e, l, M : real;
j,i,n:integer;
function f(x:real): real;
begin
f:=sin(x)* sin(2*x)* sin(3*x);
end;
begin
a:=0; b:=1; e:=0.001; M:=6;
n:=trunc(M*(b-a)*(b-a)/(2*e))+ 1;
S:=0; l:=(b-a)/n;
for i:=1 to n do
S:=S+ l*f(a + i*l);
writeln ('n=',n,' I=',S:0:6);
end.

Rezultat:
n=3001 I=0.278729

( )
(
(
(


=
2
2
a b
M n
CALCUL NUMERIC. Integrarea numeric 13



ntrebri i exerciii
1. Motivai necesitatea calculului numeric al integralei definite.
2. Ce procedeu st la baza calculului numeric al integralei?
3. Demonstrai corectitudinea formulelor de integrare.
4. Care este eroarea la integrarea numeric? Cum este ea legat de eroarea de aproximare
a funciei?
5. Scriei un program care calculeaz integrala definit

prin metoda dreptunghiurilor de stnga, de mijloc, de dreapta. Utilizai un numr variabil de
divizri (de exemplu 10, 100, 1000). Comparai rezultatele obinute prin diferite metode
pentru acelai numr de divizri.
6. Care dintre integralele definite de mai jos este mai mare?

( ) dx x x

3
1
2
ln
dx x e
x

0
2
cos dx x x


6
1
1
dx x x

0
2
) sin (
dx x x

+
1
0
2 2
3 1

+ +
2
0
) sin 3 )( cos 2 ( x x
dx
dx e sau dx e
x x


1
0
1
0
2
dx x e sau dx x e
x x

2
2
0
2
cos cos
2 2
CALCUL NUMERIC. Integrarea numeric 14



Desenul 8. Pe fiecare din segmentele elementare n
care este divizat [a,b] valoarea integralei definite este
aproximat de aria unui trapez. Latura superioar a
trapezului, g(x) este n acelai timp aproximarea
funciei f(x) pe segmentul elementar[xi, xi+1]
Desenul 9. Aproximarea integralei pe un seg-
ment elementar prin aria trapezului determinat de
axa 0X, dreptele x=xi, x=xi+1 i funcia liniar g(x)
3. FORMULA TRAPEZELOR
n paragraful precedent pentru aproximarea valorii integralei au fost folosite
dreptunghiuri figuri geometrice, suprafaa crora se calculeaz prin formule elementare. Un
neajuns al acestei metode este numrul mare de divizri, necesare pentru obinerea unor
rezultate cu erori de calcul suficient de mici. Este logic aproximarea mai exact a integralei
prin alte figuri geometrice, aria crora poate fi calculat prin formule. Una din figurile, care
permit acest lucru este trapezul. Aproximarea integralei definite prin un set de trapeze
corespunde aproximrii funciei f(x) cu un polinom Lagrange de gradul 1 (o funcie liniar
care trece prin nodurile de interpolare). Ecuaia acestei funcii este dat de formula:

unde x
i
i x
i+1
sunt punctele n care valorile
funciilor f(x) i g(x) coincid (desenul 8).
Pentru aplicarea metoda trapezelor,
este necesar ca funcia integral s fie de dou
ori derivabil. Atunci:
Fie f o funcie de dou ori derivabil
pe ] , [ b a i
] , [
) ( ' ' sup
b a x
x f M

=
Se consider o diviziune a intervalului ] , [ b a
n forma
a = x
0
< x
1
< x
2
< < x
n-1
< x
n
= b. Pe
fiecare din segmentele [x
i
, x
i+1
] suprafaa trapezului curbiliniu se aproximeaz cu aria
trapezului cu baza l = |x
i
, - x
i+1
| , laturile laterale cu lungimile f(x
i
,) i f(x
i+1
) i latura
superioar determinat de segmentul cu extremitile (x
i
, f(x
i
)) (x
i+1
, f(x
i+1
)) (desenul 9).
La fel n cazul formulei dreptunghiurilor se va considera c segmentele [x
i
, x
i+1
] sunt egale.
Lungi-mea segmentului elemen-tar va fi de:
n
a b
l

=
iar punctele x
i
vor putea fi determinate de
formula

x
i
=a + i * l

Atunci valoarea integralei definite pe un
segment elementar [x
i
, x
i+1
] pentru funcia f(x) se
va aproxima conform formulei

2
) ( ) (
2
) ( ) (
) ( ) ( ) (
1 1
1
1 1
+ +
+
+
=
+
=

+ +
i i i i
i i
x
x
x
x
x f x f
l
x f x f
x x dx x g dx x f
i
i
i
i

iar pe ntreg segmentul [a,b]:
) ( ) ( ) (
1
1
1
1
i
i i
i
i
i i
i
x f
x x
x x
x f
x x
x x
x g
+
+
+
+

=
CALCUL NUMERIC. Integrarea numeric 15






=
+

=
+
+
+
=
+
=
1
0
1
1
0
1
1
2
) ( ) (
2
) ( ) (
) ( ) ( ) (
n
i
i i
n
i
i i
i i
b
a
b
a
x f x f
l
x f x f
x x dx x g dx x f
i i

sau
( )

=
+
+ =
1
0
1
) ( ) (
2
n
i
i i
x f x f
l
S
Determinarea erorii de calcul
La fel ca n cazul formulei dreptunghiurilor eroarea de calcul la integrare va fi cercetat ca integrala
erorii de aproximare a funciei f(x) prin g(x) pe fiecare segment elementar:
! 2
) )( (
) ( ) (
1 i i
x x x x M
x g x f


+

unde x
i ,
x
i+1
punctele de interpolare, M supremul ) (x f pe [x
i ,
x
i+1
].
Atunci eroarea de integrare
4
pe segmentul elementar e de
( )
3
1
) (
12
) (
1 1
i i
x
x
x
x
x x
M
dx x g dx x f
i
i
i
i

+

+ +

Eroarea de integrare pe segmentul [a, b] este suma erorilor de integrare pe segmentele elementare, prin
urmare poate fi estimat prin formula:
unde M supremul ) (x f pe [a, b], l lungimea unui segment elementar
n cazul cnd n enunul problemei se cere calculul integralei prin metoda trapezelor
cu o eroare de calcul care nu depete o valoare dat , numrul necesar de divizri a
segmentului de integrare poate fi determinat apriori din relaia:

2
12
) ( l
M
a b
echivalent cu
12
) (
3
M a b
n

,
sau
(
(
(
(


=
12
) (
3
M a b
n
Algoritmul
Pas 1. Se introduc datele iniiale: limitele de integrare , , b a numrul de divizri n . n cazul
cnd n enun se cere obinerea unei erori de calcul care nu depete valoarea
predefinit , numrul necesar de divizri se calculeaz cu ajutorul formulei
(
(
(
(


=
12
) (
3
M a b
n

4
Demonstrarea corectitudinii acestei formule poate fi propus n calitate de exerciiu realizat n afara
orei de curs
2 3
1
12
) ( ) (
12
) ( ) ( l
M
a b x x
M
n dx x g dx x f
i i
b
a
b
a
=
+

CALCUL NUMERIC. Integrarea numeric 16



Pas 2. Se calculeaz pasul de deplasare l dup formula
n
a b
l

= . Se iniializeaz valoarea
integralei S 0, a contorului i 0.
Pas 3. Pentru toi i de la 0 la n -1
Se calculeaz valorile il a x
i
+ =
l i a x
i
) 1 (
1
+ + =
+

Se calculeaz aria trapezului elementar:
2
) ( ) (
1 +
+
=
i i
i
x f x f
l S
Aria calculat se sumeaz cu ariile precedente:
S S + S
i

Pas 4 Se afieaz aria total calculat S. SFRIT

Exemplul 1.
S se calculeze integrala definit

+
2
0
4 4
cos sin
1
dx
x x
, utiliznd metoda trapezelor,
pentru 20, 40, 80 divizri a segmentului de integrare. Atribuirea valorilor iniiale se face direct
n program. Pentru fiecare numr de divizri la ecran se va afia valoarea calculat i numrul
de divizri, separate prin spaiu.
Rezolvare: numrul de divizri ale segmentului de integrare se modific de la caz la caz prin
formula n 2n. Celelalte calcule rezult direct din algoritm.

Program
program cn018;
const r=3;
var S, a, b, x, l : real;
j,i,n:integer;
function f(x:real): real;
begin
f:=1/(sqr(sqr(sin(x)))+sqr(sqr(cos(x))));
end;
begin
a:=0; b:=2*pi; n:=10;
for j:=1 to r do
begin
S:=0; n:=n*2;
l:=(b-a)/n;
for i:=0 to n-1 do
S:=S+ l*(f(a + i*l)+f(a+(i+1)*l))/2;
writeln ('n=',n,' I=',S:0:11);
end;
end.
CALCUL NUMERIC. Integrarea numeric 17



Rezultate:
n=20 I=8.88312405500
n=40 I=8.88576626920
n=80 I=8.88576587630

Exemplul 2.
S se calculeze integrala definit

+
3
1
2 3
) 2 7 3 ( dx x x , utiliznd metoda trapezelor, cu
o eroare de calcul, ce nu depete valoarea =0.001. Atribuirea valorilor iniiale se realizeaz
direct n program. La ecran se va afia valoarea calculat a integralei i numrul de divizri
necesar pentru a obine exactitatea cerut.
Rezolvare: numrul de divizri ale segmentului de integrare se calculeaz direct cu ajutorul
formulei
(
(
(
(


=
12
) (
3
M a b
n . Prin calcule elementare se stabilete M=42.
Program
program cn019;
var S, a, b, x, e, l, M : real;
j,i:integer;
n:longint;
function f(x:real): real;
begin
f:=3*x*x*x-7*x*x+2;
end;
begin
a:=1; b:=3; e:=0.001; M:=42;
n:=trunc(sqrt(M*(b-a)*(b-a)*(b-a)/(12*e)))+ 1;
S:=0;
l:=(b-a)/n;
for i:=0 to n-1 do
S:=S+ l*(f(a + i*l)+ f(a + (i+1)*l))/2;
writeln ('n=',n,' I=',S:0:9);
end.

Rezultate:
n=168 I=3.598890846

ntrebri i exerciii
1. Enumerai condiiile n care poate fi aplicat metoda trapezelor.
2. Care este deosebirea ntre metoda dreptunghiurilor i cea a trapezelor?
3. Care dintre metodele studiate de calculul numeric al integralei definite este mai
exact? Motivai.
4. Calculai integralele definite, utiliznd metoda trapezelor pentru 10, 20, 30 divizri ale
segmentului de integrare:
CALCUL NUMERIC. Integrarea numeric 18


+
4
1
4
dx e
x
dx x x

+
2
1
2
4 5 3

\
|
+
+
4
2
2
3
1
2
dx
x
x
x

0
2
cos ) sin ( xdx x x

+
1
0
cos sin dx x x

3
2
2 3
) sin cos ( dx x x tgx

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