Sunteți pe pagina 1din 7

 Carmen-Sanda Georgescu, Tudor Petrovici, Radu Popa

Metode numerice. Fişa de laborator nr. 6:


INTEGRAREA NUMERICĂ (continuare). DERIVAREA NUMERICĂ

3.3. METODA ROMBERG ŞI PROCEDURADE EXTRAPOLARE RICHARDSON

Metoda lui Romberg îmbunătăţeşte eficienţa formulelor de cuadratură numerică, aplicând repetat
una din formulele de calcul, în asociere cu înjumătăţirea simultană a intervalului h, deci dublând numărul de
b
intervale pe domeniul [a;b]. Se notează cu Ii ,1 valoarea calculată a integralei I = ∫ f (x ) dx , folosind formula
a
i
trapezelor (5.3), pentru n = 2 intervale pe [a;b], cu i ≥ 0. Dacă se consideră numai două noduri, x0 = a şi
x1 = b, atunci h = (b−a), n = 1, i = 0 şi se obţine:
I0,1 =
(b − a ) [ f (a ) + f (b )] . (6.1)
2
Prin inducţie, se obţine formula Romberg:
 i 
1 b − a 2 −1  b − a 
Ii ,1 =  Ii −1,1 + i −1
2 2
∑ f  a + i k , unde i ≥ 1 .
 2 
(6.2)
 k =1
 ∆k = 2 

Rapiditatea convergenţei se măreşte folosind procedura de extrapolare Richardson, ilustrată în


tabelul 6.1. Dacă se foloseşte o formulă de cuadratură pentru care eroarea este proporţională cu hα, la două
aplicaţii succesive ale acestei formule, cu intervalele 2h şi respectiv h, se obţin erorile ε 2 ≅ ε1 2α .
Exponentul α ia valorile: α = 2, 4, 8, 16, 32,… Notând cu I valoarea exactă a integralei, se poate scrie:
I = I1 + ε1 = I2 + ε 2 . Se obţine astfel formula de extrapolare Richardson:
I −I
I ≅ I2 + 2α 1 , (6.3)
2 −1
care sugerează faptul că dacă se consideră două valori succesive I1 şi I2 care aproximează pe I, se poate
obţine o a treia valoare, mai bună, adică mai apropiată de I.

Tabelul 6.1. – Ilustrarea grafică a procedurii de extrapolare Richardson pentru Exemplul 1 (pentru
un număr de intervale n = 8)

i n=2i α=2 α=4 α=8


0 1 I0,1=91.526
I0,2= 116.48
1 2 I1,1=110.24 I0,3= 132.58
I1,2= 131.57 I0,3=139.71
2 4 I2,1=126.24 I1,3= 139.68
I2,2= 139.17
3 8 I3,1= 135.94
Obţinute cu(6.1) si (6.2) Obtinute cu (6.3)

Folosind relaţia (6.3) cu α = 2 (eroarea proporţională cu h2), din secvenţa I0,1; I1,1; I2,1; ... Ii,1 determinată cu
metoda Romberg (6.1)−(6.2), se obţine un nou şir I0,2; I1,2;..., luând succesiv câte doi termeni din primul şir.

1
I1,1 − I0,1
De exemplu, I0, 2 = I1,1 + . În continuare, cu relaţia (6.3) şi α = 4, se obţine şirul I0,3; I1,3; I2,3; ...,
22 − 1
luând succesiv câte doi termeni din cel de-al doilea şir, ş.a.m.d. (a se vedea tabelul 6.1).
Calculul este efectuat până la atingerea unei precizii impuse, ε r ≤ ε ad [%], eroarea relativă fiind
evaluată cu relaţia
I −I
ε r = i ,k +1 i ,k 100 [%], i ≥ 0 şi k ≥ 1. (6.4)
Ii ,k +1

Exemplul 1 Ö Utilizând metoda Romberg şi procedura de extrapolare Richardson, evaluaţi numeric


11
x2
integrala I = ∫
1
1 + ln x
dx , folosind n = 8 intervale (calculele vor fi efectuate manual) şi n = 16 intervale.

Valoarea exactă Iex = 146,795.


Rezolvare: Pentru rezolvarea numerică se propune folosirea unui program GNU Octave (vezi varianta
extinsă din Fisa_6_2007.pdf).
Program GNU Octave:
octave#1>function y=f(x)
> y=x.^2./(1+log(x));
> endfunction
octave#2>romberg
#Introduceti extremitatea stanga a intervalului de integrare: a = 1
#Introduceti extremitatea dreapta a intervalului de integrare: b = 11
#Introduceti numarul n de iteratii: n = 16
#Introduceti toleranta estimata: tol = 0.0001
# Rezulta quad = 146.79162214171

3.4. INTEGRAREA NUMERICĂ A FUNCŢIILOR DE DOUĂ,


RESPECTIV DE TREI VARIABILE

Pentru integrarea numerică a unei funcţii de o singură variabilă, domeniul de integrare unidimensional
se discretizează într-un număr de n intervale, echidistante, sau inegal distanţate, funcţia fiind evaluată în
(n+1) noduri. Integrarea numerică a funcţiilor de două sau trei variabile, pe domenii bidimensionale sau
tridimensionale nu este simplă. Admiţând o discretizare cu (n+1) noduri pentru fiecare dimensiune, rezultă,
de exemplu, că într-un domeniu cu două dimensiuni, funcţia de 2 variabile trebuie evaluată în (n+1)2 noduri
de integrare !
În cazul în care frontiera domeniului bidimensional sau tridimensional este simplă, iar
integrandul f (funcţie de două sau trei variabile) are o variaţie foarte netedă în domeniul de integrare şi
dacă se doreşte o acurateţe ridicată, atunci integrarea numerică se recomandă a fi realizată prin utilizarea
repetată a formulelor de cuadratură numerică: formule Newton-Côtes, sau formule de cuadratură Gauss.
Acelaşi procedeu este indicat şi în cazul în care integrandul variază uşor în domeniul de integrare,
acurateţea va fi însă mai scăzută.
Integrala dublă I a funcţiei f(x,y) într-un domeniu bidimensional D se scrie sub forma:
x2 y2 ( x )

I= ∫∫ f (x, y ) dx dy = ∫ ∫ f (x, y ) dy dx .
D x1 y1 ( x )
(6.5)

Printr-o formulă de cuadratură numerică, se aproximează mai întâi integrala:


y2 ( x ) x2

J (x ) = ∫ f (x, y ) dy , apoi rezultă I = ∫ J ( x ) dx . (6.6)


y1 ( x ) x1

Analog, integrala triplă I a funcţiei f(x,y,z) într-un domeniu tridimensional V, se scrie:

2
x2 y2 ( x ) z2 ( x , y )

I= ∫∫∫ f (x, y , z ) dx dy dz = ∫ ∫ ∫ f (x, y, z ) dz dy dx . (6.7)


V x1 y1 ( x ) z1 ( x , y )
Printr-o formulă de cuadratură numerică, se aproximează mai întâi integrala:
z2 ( x , y ) y2 ( x ) x2

I2 (x, y ) = ∫ f (x, y, z ) dz , apoi I1 (x ) = ∫ I2 (x, y ) dy , iar în final: I = ∫ I (x ) dx .


1 (6.8)
z1 ( x , y ) y1 ( x ) x1

Integralele simple din (6.6) şi (6.8) se recomandă a fi calculate, de exemplu, prin:


Ö Metoda Simpson: pentru un număr n par de intervale pe domeniul [a;b], respectiv un număr impar de
noduri echidistante, se poate aplica regula lui Simpson extinsă. Pentru cazul integrării cu n = 2 paşi pe
domeniul de integrare (3 noduri echidistante), se poate aplica regula 1/3 a lui Simpson;
Ö Formulele de cuadratură Gauss-Legendre: domeniul x∈[a;b] se transformă în z∈[-1;1], cu schimbarea
de variabilă
2 x − (a + b )
z= , (6.9)
b−a
prin care f(x) devine F(z). O integrală simplă I se aproximează cu relaţia
b
(b − a)
1
(b − a ) n
I= ∫ f (x ) dx =
2
F ( z ) dz =
∫ 2
∑ w F (z ) ,
i =0
i i (6.10)
a −1

în care intervin coeficienţii de pondere wi şi nodurile de integrare zi , i = 0, n , care sunt rădăcinile


polinomului Legendre de ordinul (n+1). Pentru n = 1, formula de cuadratură Gauss-Legendre cu două
noduri:
1 1
 1   1 
F ( z ) dz = wi F (zi ) = F  −
i =0
∫  3

 + F 
 3
 , (6.11)
−1

se aplică pentru coeficienţii de pondere w0 = w1 = 1 , respectiv nodurile z 0 = − 1 3 = −0,57735 şi


z1 = 1 3 = 0,57735 .

 1− x 2 
1  
Exemplul 2 Ö Aflaţi valoarea integralei duble I = ∫ ∫
−1  −1+ x 2 
x 2 + y 2 dy dx , cu formula de cuadratură
 
Gauss-Legendre şi două noduri de calcul după x, respectiv după y (adică n = 1), apoi determinaţi eroarea
relativă în raport cu valoarea exactă Iex = 2π/3.
1− x 2
Indicaţii: Se notează integrala J (x ) = ∫ x 2 + y 2 dy . Integrala I va fi determinată cu relaţia (6.11):
−1+ x 2
I = J (x1 = −0.57735) + J (x2 = +0.57735) . Pentru x1 = −0,57735 de exemplu, integrala J (x1 ) devine:
+0 , 666
J (x1 ) = ∫ 0,333 + y 2 dy .
−0 , 666

Cu schimbarea de variabilă (6.9): z = y 0,666 , relaţia (6.10) se scrie în acest caz:


1 1 1
 1   1 
J (x1 ) = 0,666 ∫
−1
0,333 + 0,444 z 2 dz , apoi se aplică formula ∫ F (z ) dz = ∑ w F (z ) = F  −
−1 i =0
i i  + F 
3  3


Pentru z1, 2 = ± 0,57735 şi rezultă I = 1.8476 si εr = 11.784 %.

Notă: În Anexă sunt prezentate funcţii GNU Octave pentru calculul integralelor.

3
4. DERIVAREA NUMERICĂ

Derivarea numerică implică evaluarea valorii derivatei unei funcţii f(x), adică df/dx, într-un punct x
oarecare, dacă se cunosc valorile funcţiei f(x) într-o serie de noduri discrete x0, x1, ..., xn. Soluţia constă în a
găsi o funcţie de aproximare adecvată pentru f(x), care să se deriveze în mod simplu, iar apoi se
calculează valoarea derivatei funcţiei de aproximare pentru x dorit. De obicei, se alege ca funcţie de
aproximare un polinom de interpolare pn(x) de gradul n, care trece prin punctele (x0, f(x0)), (x1, f(x1)), ...,
(xn, f(xn)), astfel că:
df ( x ) dp n ( x )
≅ . (6.12)
dx dx
Procesul de derivare numerică tinde să mărească erorile de evaluare, spre deosebire de integrarea
numerică, care le atenuează.
În ipoteza că nodurile xk sunt echidistante cu pasul h, se alege ca polinom de aproximare pn(x), un
polinom Newton N nd (x ) cu diferenţe finite la dreapta, adică:
∆f ( x0 )
(x − x0 ) + ∆ f (x2 0 ) (x − x0 )(x − x1 ) + K
2
p n ( x ) = f ( x0 ) +
1! h 2! h
∆n f (x0 )
+ (x − x0 )(x − x1 )L(x − xn−1 ) . (6.13)
n ! hn
Derivata acestuia va fi:
df (x ) dpn (x ) ∆f (x0 ) ∆2 f (x0 )
≅ = + (2 x − x0 − x1 ) +
dx dx 1! h 2! h 2
∆3 f (x0 ) 2
+
3! h 3
[
3 x + 2(x0 + x1 + x2 )x + (x0 x1 + x0 x2 + x1 x2 ) + K ] (6.14)

Dacă gradul polinomului de aproximare este n = 1, derivata (6.14) devine:


df (x ) dp1 ( x ) ∆f ( x0 ) f ( x1 ) − f (x0 ) f ( x1 ) − f (x0 )
≅ = = = = f ( x0 , x1 ) , (6.15)
dx dx 1! h h x1 − x0
unde f(x0,x1) este notaţia pentru diferenţa divizată de ordinul întâi.

Pentru un polinom de aproximare de gradul n = 2, derivata de ordinul întâi (6.14) se scrie:


df (x ) dp2 (x ) ∆f (x0 ) ∆2 f (x0 )
≅ = + 2
(2 x − x0 − x1 ) = (2 x − x0 − 2x1 − 2h ) f (x0 ) +
dx dx 1! h 2! h 2h
+
(− 4 x + 2 x0 + 2 x1 + 2h )
f (x1 ) +
(2 x − x0 − x1 )
f ( x2 ) , (6.16)
2 h2 2 h2
iar derivata de ordinul al doilea are forma:
f (x2 ) − f (x1 ) f (x1 ) − f (x0 )

d 2 p2 (x ) ∆2 f (x0 ) f (x0 ) − 2 f (x1 ) + f ( x2 ) h h
= = = 2 =
dx 2 h2 h2 2h
f (x1 , x2 ) − f (x0 , x1 )
=2 = 2 f (x0 , x1 , x2 ) , (6.17)
2h
unde f(x0,x1,x2) este notaţia pentru diferenţa divizată de ordinul al doilea.

Exemplul 3 Ö Fie funcţia f (x ) = x dată tabelar:

xk 1 4 9
yk 1 2 3

4
Aproximaţi funcţia dată tabelar printr-un polinom Newton cu diferenţe finite la dreapta de gradul 2, apoi
evaluaţi numeric derivatele sale de ordinul întâi şi de ordinul 2, pentru x = 6, adică: df ( x ) dx x=6 şi
d 2 f (x ) dx 2 . Calculaţi erorile relative εr în raport cu valorile exacte: d x dx şi d 2 x dx 2 .
x =6 x =6 x =6

FUNCŢIE GNU Octave pentru calculul derivatelor:


diff = metoda diferenţelor finite

APLICAŢII DE LABORATOR

Problema 1 Ö Să se calculeze integrala dublă pe domeniul plan D = [ x = y 2 ; x = y ], cu x ∈ [0; 1]:


1 y

∫∫ ( x ∫ ∫ (x
2 2
+ y ) dxdy = + y ) dxdy cu formula de cuadratură Gauss-Legendre şi două noduri de calcul
D 0 y2

după y, respectiv după x (adică n = 1), apoi determinaţi eroarea relativă în raport cu valoarea calculată
analitic Ianalitic = 0.235714.

1
Problema 2 Ö Să se calculeze integrala A = 2 ∫
−1
1 − x 2 dx utilizând metoda Romberg şi procedura de

extrapolare Richardson cu n = 8 intervale. Valoarea exactă este Aexact = π.

Problema 3 Ö Utilizând metodele Romberg, Simpson, Lobato, Gauss, evaluaţi numeric integrala
11
x2
I=
1
∫ 1 + ln x
dx cu o aroare absolută de 0.0001.

Indicaţii: Se vor folosi funcţiile GNU Octave: romberg, quad,quadl, gquad şi gquad6
Rezolvare cu ajutorul următorului Program GNU Octave:
octave#1>function y=f(x)
> y=x.^2./(1+log(x));
> endfunction
octave#2>romberg
#Introduceti extremitatea stanga a intervalului de integrare: a=1
#Introduceti extremitatea dreapta a intervalului de integrare: b=11
#Introduceti numarul n de iteratii: n =16
#Introduceti toleranta estimata: tol =0.0001 # Rezulta quad = 146.79162214171
octave:3># Folosim functia Octave quad
octave:4>format long, i1=quad("f",1,11) # Rezulta: i1 = 146.791621407210
octave:5># Folosim functia Octave quadl
octave:6>i2=quadl("f",1,11) # Rezulta: i2 = 146.791621407209
octave:7># Folosim functia Octave gquad cu doua puncte de integrare Gauss
octave:8>[bp,wf]=grule(2); i3=gquad("f",1,11,1,bp,wf) # Rezulta i3 = 146.687188259625
octave:9># Folosim functia Octave gquad6 cu sase puncte de integrare Gauss
octave:10>i4=gquad6("f",1,11,1) # Rezulta i4 = 146.791165518377

Problema 4 Ö FORMULA DE CUADRATURĂ GAUSS-LAGUERRE se aplică pentru integrale de


forma:
∞ n

∫ z α e − z F ( z ) dz = ∑ w F (z ) ,
i =0
i i (6.18)
0

5
utilizând polinoame ortogonale Laguerre. Valorile zi şi wi corespunzătoare pentru (n+1) noduri de integrare
sunt indicate în literatura de specialitate: http://mathworld.wolfram.com/Laguerre-GaussQuadrature.html

De exemplu, integrala ∫e
−x
f (x ) dx se reduce la forma (6.18), pentru α = 0, cu schimbarea de
a
variabilă x = (z+a), adică:
∞ ∞ ∞ n

∫ e −x
f ( x ) dx = e

−( z + a )
f ( z + a ) dz = e −a
∫ e − z f (z + a ) dz = e −a ∑ w F (z
i =0
i i + a) . (6.19)
a 0 0

Coeficienţii şi ponderile Gauss-Laguere pentru n = 2 sunt:

n xi wi

2± 2
2 2± 2
4

Problema 5 Ö FORMULA DE CUADRATURĂ GAUSS-HERMITE este adecvată pentru evaluarea


integralei de forma:
∞ n
e − z F (z ) dz = ∑ w F (z ) .
2

−∞ i =0
i i (6.20)

Rădăcinile z i ale polinomului Hermite de gradul (n+1), precum şi valorile wi corespunzătoare, sunt
indicate în literatura de specialitate: http://www.efunda.com/math/num_integration/findgausshermite.cfm

i zi w(z i ) ponderea totală w(z i )e


zi2

1 −0.707106781187 0.886226925453 1.46114118266


2 0.707106781187 0.886226925453 1.46114118266

Observaţie: Formulele de cuadratură Gauss-Laguerre (6.18) şi Gauss-Hermite (6.20) sunt potrivite


pentru integralele improprii convergente, cu una, respectiv ambele limite infinite.

6
ANEXA: FUNCŢII GNU OCTAVE PENTRU CALCULUL INTEGRALELOR

b
Integrale Riemann
∫ f ( x)dx
a
⇒ trapz, cumtrapz = metoda trapezelor
⇒ quad =metode de tip Simpson
⇒ quadl = metoda lui Lobato
⇒ quadg = schema de integrare de tip Gauss
1 n
1
⇒ quadc = cuadratură de tip Gauss-Cebîşev
∫ 1− z2
F ( z ) dz = ∑ w F (z ) , ( se ruleaza în prelabil
i =0
i i
−1
funcţia crule)
⇒ gquad = schema de integrare de tip Gauss (se ruleaza în prelabil funcţia grule)
⇒ gquad6 = schema de integrare de tip Gauss cu sase puncte


Integrale Euler speţa II,

Γ(a ) = x a −1e − x dx, a ∈ R
0
⇒ gamma, lgamma, gammainc

1
∫x
( a −1)
Integrale Euler speţa I, B ( a, b) = (1 − x) (b −1) dt
0
⇒ beta, betainc

Integrale duble,
∫∫ f ( x, y)dxdy
D
⇒ quad2dg =integrala 2-D după schema Gauss
⇒ quad2dc = integrala 2-D după schema Gauss-Cebîşev (se rulează în prealabil funcţia crule2d)
⇒ gquad2d = schema de integrare 2-D de tip Gauss (se rulează în prealabil funcţia grule2d)
⇒ gquad2d6 = schema de integrare 2-D de tip Gauss cu şase puncte
⇒ quad2dggen = integrala cu limite variabile 2-D după schema Gauss (se rulează în prealabil funcţia
grule2dgen)
⇒ quad2dcgen= integrala cu limite variabile 2-D după schema Gauss-Cebîşev (se ruleaza în prealabil
functia crule2dgen)
⇒ gquad2dgen = integrala cu limite variabile 2-D după schema Gauss (se ruleaza in prealabil functia
grule2dgen)

Integrale triple şi n-uple,


∫∫∫ f ( x, y, z)dxdydz , ∫∫ ...∫ f ( x)
v ∆
⇒ quadndg = integrala n-D după schema Gauss
⇒ gquadnd = integrala n-D după schema Gauss
⇒ cquadnd = integrala n-D după schema Gauss

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