integrazione numerica - Dipartimento di Matematica

INTEGRAZIONE NUMERICA
Francesca Pelosi
Dipartimento di Matematica, Università di Roma “Tor Vergata”
CALCOLO NUMERICO
a.a. 2008–2009
http://www.mat.uniroma2.it/∼pelosi/
INTEGRAZIONE NUMERICA – p.1/20
INTEGRAZIONE NUMERICA
Data una f integrabile su [a, b] consideriamo
I[f ] :=
Z
b
f (x)dx
a
In alcuni casi non si conosce la primitiva
Anche quando si conosce la primitiva questa può essere troppo
complicata (mentre f può essere più semplice)
ES:
R
1
dt
1+t2
= arctan(x)
La funzione da integrare può essere data non in forma analitica, ma per
punti
⇒ Si cercano metodi numerici in grado di fornire una approssimazione di un
integrale in termini di un numero finito di valori della funzione integranda
⇒ FORMULE DI QUADRATURA
INTEGRAZIONE NUMERICA – p.2/20
INTEGRAZIONE NUMERICA
Supponiamo di conoscere (o di poter valutare) la funzione integranda f (x) in
punti distinti {x0 , x1 , . . . , xn } (scelti o prefissati) in [a, b]
Costruiamo formule del tipo
In+1 [f ] '
Z
b
f (x)dx,
In+1 [f ] :=
a
n
X
wi f (xi )
i=0
xi , i = 0, 1, . . . , n: nodi della formula di quadratura
wi , i = 0, 1, . . . , n: pesi della formula di quadratura
Si definisce l’errore di quadratura associato alla formula su n + 1 punti:
En+1 [f ] = I[f ] − In+1 [f ].
INTEGRAZIONE NUMERICA – p.3/20
INTEGRAZIONE NUMERICA
⇒
IDEA IMMEDIATA: Approssimare f (x) con il polinomio di grado n interpolante
la funzione nei nodi {xi , i = 0, 1, . . . , n} (unico se i nodi sono distinti):
Z
⇒
b
f (x)dx =
a
Z
b
(Ln (x) + en (x))dx =
a
Z
b
Ln (x)dx +
a
Z
b
en (x)dx
a
dove Ln (x) è il polinomio inerpolante i punti (x0 , f (x0 )), . . . , (xn , f (xn )),
⇒ Formule interpolatorie
Se rappresentiamo Ln (x) nella forma di Lagrange
Qn
n
j=0 (x − xj )
X
(n)
(n)
j6=i
Ln (x; f ) =
f (xi )`i (x), con `i (x) = Qn
,
(x
−
x
)
i
j
j=0
i=0
i = 0, 1, . . . , n
j6=i
Z
b
f (x)dx =
a
=
Z
b
Ln (x)dx+
a
n
X
i=0
Z
b
en (x)dx =
a
f (xi )
Z
b
a
(n)
`i (x)dx
+
Z
Z
n
bX
a i=0
(n)
f (xi )`i (x)dx+
Z
b
en (x)dx
a
b
en (x)dx
a
INTEGRAZIONE NUMERICA – p.4/20
FORMULE INTERPOLATORIE
Da cui si ottiene un approssimazione dell’integrale con la formula di
quadratura:
Z b
Z b
Z b
n
n
X
X
(n)
f (x)dx '
Ln (x)dx =
f (xi )
`i (x)dx =
wi f (xi )
a
a
i=0
a
i=0
ESEMPIO: Consideriamo i punti (a, f (a)) e (b, f (b)) e sostituiamo alla funzione il
polinomio di grado 1 (la retta) che passa per i punti dati
w0 =
Z
w1 =
b
a
Z
(1)
`0 (x)dx
b
a
=
(1)
`1 (x)dx
Z
=
b
x−b
1 (x − b)
dx =
a−b
2 a−b
a
Z
b
a
#
2 b
a
x−a
1 (x − a)
dx =
b−a
2 b−a
1 (a − b) 2
b−a
=−
=
2 a−b
2
#
2 b
a
1 (b − a) 2
b−a
=
=
2 b−a
2
Da cui si ottiene la Regola dei Trapezi
Z
b
f (x)dx ' I2 [f ] =
a
b−a
[f (a) + f (b)]
2
INTEGRAZIONE NUMERICA – p.5/20
FORMULE INTERPOLATORIE
ESEMPIO: Consideriamo i punti (−h, f (−h)), (0, f (0)) e (h, f (h)) e sostituiamo alla
funzione il polinomio di grado 2 che passa per i punti dati
w0 =
w1 =
Z
Z
h
h
(2)
`0 (x)dx
−h
(2)
`1 (x)dx
−h
w2 =
Z
=
h
(2)
=
Z
h
−h
`2 (x)dx =
−h
Z
Z
h
−h
x(x − h)
1
dx
=
2h2
2h2
1 3
1
x − x2 h
3
2
(x + h)(x − h)
1
dx
=
−h2
h2
h
1 3
1
x + x2 h
3
2
−h
x(x + h)
1
dx
=
2h2
2h2
Da cui si ottieneZla Regola di Simpson
h
f (x)dx ' I3 [f ] =
−h
h
=
−h
1
− x3 + h 2 x
3
h
h
3
=
−h
h
−h
=
4
h
3
h
3
h
[f (−h) + 4f (0) + f (h)]
3
e su un generico
intervallo [a, b]:
Z
b
a
a+b
b−a
f (x)dx ' I3 [f ] =
f (a) + 4f
+ f (b)
6
2
INTEGRAZIONE NUMERICA – p.6/20
FORMULE INTERPOLATORIE
TRAPEZI
SIMPSON
f(a)
f(b)
a
b
a
(a+b)/2
b
INTEGRAZIONE NUMERICA – p.7/20
Grado di precisione
La precisione di una formula di quadratura è legata alla bontà con cui I n+1 [f ]
R
approssima I[f ] = ab f (x)dx, pertanto in generale è dipendente dalla funzione
integranda.
Si esamina per quale classe di funzioni è esatta (cioè I n+1 [f ] = I[f ])
DEFINIZIONE: Una formula di quadratura ha grado di precisione k se è esatta quando la
funzione integranda è un polinomio di grado k , ed esiste almeno un polinomio di grado k + 1
per cui l’errore risulti non nullo
(Tale definizione è giustificata dal teorema di Weierstrass. )
Vale il teorema seguente
TEOREMA: Le formule di quadratura interpolatorie costruite su n + 1 nodi, hanno grado di
precisione almeno n.
Deriva dall’espressione dell’errore di interpolazione
en (x) = f (x) − Ln (x) = ωn+1 (x)f [x0 , x1 , . . . , xn , x], tenendo presente che
f [x0 , x1 , . . . , xn , x] = 0 per f ∈ IPn .
INTEGRAZIONE NUMERICA – p.8/20
Grado di precisione
ES: La formula di Simpson ha grado di precisione 3:
la formula è esatta per
f (x) = x0 :
Rh 0
h
0
x
dx
=
x]
−h = 2h ⇔ I3 [x ] =
−h
h
[1
3
h
[f (−h)
3
+ 4f (0) + f (h)] =
+ 4 + 1] = 2h
f (x) = x1
Rh 1
−h x dx =
f (x) = x2
Rh 2
−h x dx =
h
[(−h)2
3
+
= 0 ⇔ I3 [x] =
x3 h
= 23 h3
3
−h
h2 ] = 23 h3
f (x) = x3
Rh 3
−h x dx =
h
[−h3
3
x2 h
2
−h
x4 h
4
−h
h
[f (−h)+4f (0)+f (h)]
3
⇔ I3 [x2 ] =
= 0 ⇔ I3 [x3 ] =
h
[f (−h)
3
h
[f (−h)
3
=
h
[−h+h]
3
=0
+ 4f (0) + f (h)] =
+ 4f (0) + f (h)] =
+ h3 ] = 0
mentre non è esatta per f (x) = xr con r ≥ 4
Rh 4
x5 h
= 25 h5 < I3 [x4 ] = h
[f (−h) + 4f (0) + f (h)] =
−h x dx = 5
3
−h
h
[(−h)4
3
+ h4 ] =
2 5
h
3
INTEGRAZIONE NUMERICA – p.9/20
Formule di quadratura su nodi equidistanti
NEWTON-COTES (tipo chiuso) :
, consideriamo i punti equispaziati:
Dato [a, b] posto h = b−a
n
xi = a + ih,
i = 0, . . . , n
cerchiamo l’espressione dei pesi delle formula interpolatoria corrispondente:
n
X
wi f (xi ) :
i=0
wi =
Z
xn
x0
(n)
`i (x)dx
=
Z
xn
x0
Qn
j=0
j6=i
Qn
j=0
j6=i
(x − xj )
(xi − xj )
dx
utilizziamo il cambiamento di variabili x = a + th da cui dx = hdt:
wi = h
Z
n
0
Qn
j=0 (a + th − (a + jh))
j6=i
Qn
j=0
j6=i
(a + ih − (a + jh))
dt = h
Z
n
0
Qn
j=0
j6=i
Qn
j=0
j6=i
(t − j)h
(i − j)h
dt = hαi
INTEGRAZIONE NUMERICA – p.10/20
Formule di quadratura su nodi equidistanti
Quindi una formula di Newton-Cotes su [a, b] generico può essere scritta nella
forma:
n
X
b−a
In+1 [f ] = h
αi f (xi ), h =
n
i=0
dove gli αi sono pesi in [0, n].
Poichè gli αi non dipendono da h ma solo da n, sono stati tabulati su delle
tabelle al variare di n (nelle tabelle si sfutta la simmetria centrale degli α i
ovvero αi = αn−i )
n
α0
1
1
2
1
3
3
8
14
45
95
288
2
3
4
5
α1
α2
α3
Errore
1 3 (2)(η)
− 12
h f
4
3
9
8
64
45
375
288
1 5 (4)(η)
− 90
h f
3 5 (4)(η)
− 80
h f
24
45
250
288
8
− 945
h7 f (6)(η)
275
− 12096
h7 f (6)(η)
INTEGRAZIONE NUMERICA – p.11/20
Errore Formule di quadratura
Per formule di tipo interpolatorio:
En+1 =
Z
b
(f (x)−Ln (x))dx =
a
Z
b
en (x)dx =
a
Per formule di Newton-Cotes con h =
En+1 =
=
Z
n
0

Z
b
a
n
Y
Z
b
a
f (n+1) (ξ)
(x−x0 ) · · · (x−xn )dx
(n + 1)!
b−a
:
n
n
f (n+1) (ξ) Y
(x − (a + jh))dx
(n + 1)! j=0

f (n+1) (ξ) 
hn+2

(t − j)h hdt =
(n + 1)!
(n + 1)!
j=0
3
ES: per la formula dei trapezi: E2 = − h2!
t(1 − t) ≥ 0in [0, 1].
R1
0
Z
n
0
=
x=a+th
dx=hdt
f (n+1) (ξ)
n
Y
(t − j)dt
j=0
f (2) (ξ)t(1 − t)dt dove
INTEGRAZIONE NUMERICA – p.12/20
Errore Formule di quadratura
Studiando meglio l’integrale si può ottenere il seguente
(se la funzione non cambia segno si può applicare il teorema della media
integrale)
TEOREMA: Data una formula di quadratura di Newton-Cotes sui nodi x i = a + ih, con
h=
b−a
,
n
i = 0, . . . , n, si ha per l’errore le seguenti espressioni
per n pari e f ∈ C n+2 [a, b] :
f (n+2) (η)hn+3
En+1 [f ] =
(n + 2)!
Z
0
n
n Y
t(t − j)dt
j=0
per n dispari e f ∈ C n+1 [a, b] :
f (n+1) (η)hn+2
En+1 [f ] =
(n + 1)!
Z
0
n
n Y
(t − j)dt
j=0
dove η, η ∈ [a, b] = [x0 , xn ].
INTEGRAZIONE NUMERICA – p.13/20
Errore Formule di quadratura
Le formule di quadratura con n pari (numero dispari di nodi) hanno grado di
precisione n + 1
Es: la formula di Simpson n = 2 ha grado di precisione 3 in quanto l’errore
coinvolge la derivata f (4) (η) che è nulla per f ∈ IP3
Le formule di quadratura con n dispari (numero pari di nodi) hanno grado di
precisione n
Es: la formula dei Trapezi n = 1 ha grado di precisione 1, in quanto
l’errore coinvolge la derivata f (2) (η) che è nulla per f ∈ IP1
⇒ È più conveniente usare formule con n pari.
INTEGRAZIONE NUMERICA – p.14/20
Convergenza
Dal teorema di Weierstrass discende anche il seguente
TEOREMA: Sia {In+1 [f ]} una successione di formule di quadratura tali che I n+1 [f ] abbia
grado di precisione almeno n, ed equilimitate (i.e. ∃C : kI n+1 k < C, ∀n). Allora si ha
lim In+1 [f ] = I[f ]
n→∞
DIM: Poichè la formula di quadratura ha grado di precisione almeno n si ha
che In+1 [p] = I[p], ∀p ∈ IPn , ne segue
En+1 [f ] = I[f ] − In+1 [f ] = I[f ] − I[p] + In+1 [p] − In+1 [f ]
= I[f −p]−In+1 [f −p] ⇒ |En+1 [f ]| ≤ (kIk+kIn+1 k)kf −pk ≤ (kIk+C)kf −pk
Per il Teorema di Weierstrass ∃p ∈ IPn convergente a f ⇒ En+1 [f ] → 0
TEOREMA: Data una famiglia di formule di quadratura interpolatorie I n+1 [f ] tali che ∃H :
tale che
Pn
i=0
|wi | < H . Allora
lim En+1 [f ] = 0
n→∞
P
Per formule interpolatorie si ha n
i=0 wi = b − a (essendo esatte su f (x) = 1
R
P
si ha b − a = ab dx = I[1] = n
i=0 wi · 1)
INTEGRAZIONE NUMERICA – p.15/20
Formule Composite (Newton-Cotes)
Contrariamente a quanto potrebbe sembrare “a prima vista” non conviene
usare formule di Newton-Cotes di grado di precisione via via crescente
I pesi tendono a crescere in modulo e ad essere di segno alterno, dando luogo
a rilevanti errori di arrotondamento (per es. errori di cancellazione)
Per avere la convergenza e contemporaneamente w i ≥ 0 conviene
considerare n basso e h piccolo, ossia suddividere [a, b] in N sottointervalli
[zk , zk+1 ], k = 0, . . . , N e su ciascuno applicare una formula di quadratura con
basso grado (di precisione)
Z
b
f (x)dx =
a
N
−1 Z z
X
k+1
k=0
zk
f (x)dx '
N
−1
X
(k)
In+1 [f ]
k=0
(k)
In+1 può essere ad esempio la formula di Newton-Cotes con n + 1 nodi in
[zk , zk+1 ]
INTEGRAZIONE NUMERICA – p.16/20
Formula Composita dei Trapezi
[zk , zk+1 ] = [a + k b−a
, a + (k + 1) b−a
]
N
N
Z
b
f (x)dx '
a
⇒ ITN [f ] :=
N
−1
X
k=0
(zk+1 − zk )
(f (zk+1 − f (zk ))
2
"
(b − a)
f (a) +
2N
N
−1
X
k=1
2f (zk ) + f (b)
#
INTEGRAZIONE NUMERICA – p.17/20
Formula Composita di Simpson
[zk , zk+1 ] = [a + k b−a
, a + (k + 1) b−a
]
N
N
Z
b
f (x)dx '
a
k=0
⇒ ISN [f ] :=
a=z0
N
−1
X
z1
(zk+1 − zk )
2
"
(b − a)
f (a) +
6N
z2
4
1
f (zk ) + f
3
3
N
−1
X
2f (zk ) + 4
k=1
zk+1 + zk
2
N
−1
X
k=0
z3
f
1
+ f (zk+1 )
3
zk+1 + zk
2
+ f (b)
#
z4=b
INTEGRAZIONE NUMERICA – p.18/20
Grado di precisione (Formule composite)
Il grado di precisione delle formule composite è lo stesso delle corrispondenti
formule di Newton-Cotes “semplici”
Si può facilmente dimostrare che
(b − a)
|ETN [f ]| ≤
12
b−a
N
2
kf (2) k∞
(b − a)
N
|ES
[f ]| ≤
180
b−a
2N
4
kf (4) k∞
Per funzioni sufficientemente regolari si ha quindi
N
lim |En+1
[f ]| = 0
N →∞
INTEGRAZIONE NUMERICA – p.19/20
Implementazione
In pratica è importante determinare un valore adeguato del numero di
suddivisioni dell’intervallo che bisogna fare.
Si parte da N piccolo e si aumenta iterativamente il numero di suddivisioni,
stimando l’errore in modo automatico:
N2
N1
|In+1
[f ] − In+1
[f ]|
Di solito è conveniente considerare N 2 = 2N 1, per sfruttare le valutazioni di f
N 1 [f ]
fatte per costruire In+1
Le formule composite con suddivisione uniforme dell’intervallo di integrazione
sono ormai superate, tranne in casi particolari (funzioni periodiche). Si usano
formule di tipo adattivo:
Quando la funzione integranda presenta delle irregolarità c’è la necessità
di addensare nodi nelle vicinanze delle irregolarità
L’intervallo viene suddiviso in sottointervalli di ampiezza diversa
Si usano molti nodi solo dove necessario
Per capire dove infittire la sequenza dei nodi si usano stime dell’errore.
INTEGRAZIONE NUMERICA – p.20/20