Integrazione numerica - Dipartimento di Matematica

Complementi di Matematica
e Calcolo Numerico
A.A. 2015-2016
Laboratorio 6 - Integrazione numerica
Data una funzione f a valori reali per calcolare
fornisce la funzione predefinita quad
Sintassi: q=quad(f,a,b,tol)
input: f
Rb
a
f (x) dx, Matlab
funzione integranda
a, b
estremi di integrazione
tol
tolleranza per l’errore ( default : 1e − 6)
output: q
approssimazione dell’integrale
Esercizio 1
R5 1
Approssimare l’ integrale −5 1+x2 dx (= arctg(5) − arctg(−5))
con la funzione quad di Matlab: prima con la precisione di default
poi richiedendo una precisione di 1e-10; in ogni caso calcolare
l’errore assoluto e verificare che corrisponda all’ordine di precisione
imposta.
(N.B. arctg −→ atan in Matlab)
Formule di quadratura semplici per approssimare
sono ad esempio:
Ipm(f ) = (b − a) f ( a+b
2 )
It(f ) =
(b−a)
2
Isim(f ) =
a
f (x) dx
Punto medio
(f (a) + f (b))
(b−a)
6
Rb
Trapezi
(f (a) + 4f ( a+b
2 ) + f (b)) Cavalieri − Simpson
Def: Una formula di quadratura si dice che ha grado di precisione p se è esatta per polinomi di grado minore o uguale a p,
ovvero
Z b
f (x) dx ∀f ∈ Pp
I(f ) =
a
Le formule del punto medio e dei trapezi hanno grado di precisione
1 la formula di Simpson ha grado di precisione 3.
Esercizio 2
Assegnati i seguenti integrali:
Z
Z 5
Z 5
5x2 − 3x + 8 dx;
7x − 5 dx;
−2
−2
5
3x3 − 2x2 + 5x − 1 dx
−2
scegliere in maniera appropriata una tra le seguenti formule di
quadratura semplici: punto medio, trapezi e Simpson e calcolare
gli integrali indicati. Confrontare il risultato con la soluzione esatta
calcolata utilizzando il comando polyint.
2
Formule di quadratura composite
Scegliendo una partizione dell’intervallo di integrazione in fissati
sottointervalli a = x1 < x2 < · · · < xm+1 = b e sfruttando
l’additività dell’integrale rispetto al dominio di integrazione ovvero
Z b
n Z xi+1
X
f (x) dx =
f (x) dx
a
i=1
xi
si generano formule composite applicando una formula di quadratura
semplice su ogni sottointervallo della partizione data.
Formula dei trapezi
composita
Rb
Per approssimare a f (x) dx con la formula dei trapezi composita,
si considerano i punti di coordinate (xk , yk ), x1 = a ≤ x2 ≤ · · · ≤
xm+1 = b, yk = f (xk ) e si calcola la quantità:
ITc
=
m
X
hk
k=1
2
(yk + yk+1)
dove hk = (xk+1 − xk ), k = 1, . . . m
Matlab fornisce la funzione di libreria trapz che implementa tale
metodo.
Sintassi: int=trapz(x,y)
input: x
nodi di quadratura
y = f (x)
output: int
funzione integranda nei nodi di quadratura
approssimazione dell’integrale
3
Esercizio 3
Si approssimino i seguenti integrali (tra parentesi i valori esatti):
R π/2
(= 1)
• 0 sin(x) dx
R 10
(= esin(10) − e− sin(10))
• −10 cos(x) esin(x) dx
A tal scopo si consideri una suddivisione dell’intervallo di integrazione [a, b] in m sottontervalli di uguale ampiezza H = b−a
m
e si utilizzi il metodo dei trapezi compositi per diversi valori di
m = 10, 100, 1000, 10000. Per ogni integrale si calcoli l’errore assoluto e si compili la seguente tabella
m
10
100
1000
10000
H
Errore assoluto
Si verifichi che l’errore è O(H 2).
4
Formula del punto
R b medio composita
Per approssimare a f (x) dx con la formula del punto medio composita, possiamo suddividere l’intervallo di integrazione [a, b] in m
sottointervalli di uguale ampiezza H = b−a
m individuati dai punti
xk = a + (k − 1) H, k = 1, . . . , m + 1 e calcolare la quantità:
IPc M = H
m
X
f (xk +
k=1
H
),
2
(Si osservi che la funzione integranda va valutata nei punti medi
dei sottointervalli di ampiezza H).
Esercizio
Si scriva una funzione Matlab con la sintassi indicata che implementi la formula del punto medio composita su m sottointervalli
di uguale ampiezza..
Sintassi: int=pmedc(a,b,m,f )
input: a, b
estremi di integrazione
m
numero dei sottointervalli
f
funzione integranda
output: int
approssimazione dell’integrale
5
Metodo di Cavalieri
Simpson composita
Rb
Per approssimare a f (x) dx con la formula di Cavalieri-Simpson
composita, possiamo suddividere l’intervallo di integrazione [a, b]
in m sottointervalli di uguale ampiezza H = b−a
m individuati dai
punti xk = a+(k−1) H, k = 1, . . . , m+1 e calcolare la quantità:
"
#
m
m
X
X
H
H
c
f (xk + ) + f (xm+1)
f (xk ) + 4
ISIM =
f (x1) + 2
6
2
k=1
k=2
(Si osservi che la funzione integranda va valutata sia negli estremi
che nei punti medi dei sottointervalli di ampiezza H).
Esercizio
Si scriva una funzione Matlab con la sintassi indicata che implementi la formula di Cavalieri Simpson composita su m sottointervalli di uguale ampiezza..
Sintassi: int=simpsc(a,b,m,f )
input: a, b
estremi di integrazione
m
numero dei sottointervalli
f
funzione integranda
output: int
approssimazione dell’integrale
6
Esercizio 4
Si considerino i seguenti integrali (tra parentesi i valori esatti):
R2
(= log(2) + e2 − e)
• 1 x1 + ex dx
R5 1
• 0 1+x2 dx
(= arctan(5))
e si ripeta quanto richiesto nell’Esercizio 3 ma utilizzando i codici
sviluppati per i metodi del punto medio e di Simpson compositi.
Si calcoli il valore assoluto dell’errore commesso e si compili la
seguente tabella per ciascun integrale e ciascun metodo.
m
10
100
1000
10000
H
Errore assoluto
Si verifichi che l’errore è O(H 2) per il metodo del punto medio e
b−a
che l’errore è O(H 4) per il metodo di Simpson, con H =
.
m
7