Sei sulla pagina 1di 10

Integrazione numerica

Problema: approssimare numericamente integrali definiti


Z b
a

f (x) dx

Lintervallo di integrazione [a, b] pu`


o essere anche illimitato.

quadratura numerica

Appunti delle lezioni sulla

Prof. F. Pitolli

(A.A. 2012-2013)

CALCOLO NUMERICO

ANALISI NUMERICA

I(f ) =

Si ricorre allintegrazione numerica quando:


la primitiva di f non pu`
o essere espressa in forma chiusa,
sin x
2
ad esempio f (x) =
, f (x) = ex ;
x
lespressione analitica di I(f ) `
e complicata da calcolare;
i valori di f sono noti solo in alcuni nodi xi, i = 0, . . . , n,
ad esempio quando sono il risultato di misure sperimentali.
Soluzione: approssimare la funzione integranda f (x) con il polinomio interpolatore pn(x), costruito su un insieme opportuno di
nodi xi, i = 0, . . . , n; quindi approssimare I(f ) con I(pn ).
1

Esempio

Formule di quadratura interpolatorie

Una macchina da corsa percorre un giro di pista in 84 secondi. La


velocit`
a della macchina viene misurata con un radar ogni 6 secondi
per tutta la durata del percorso. I valori misurati sono riportati in
tabella:
T (s)
V (m/s)
T (s)
V (m/s)

0
124

6
134

42
109

48
99

12
148

54
85

18
156

24
147

30
133

36
121

66
89

72
104

78
116

84
123

60
78

Formula di interpolazione di Lagrange:


f (x) = pn(x) + En(x) =

f (xi ) li (x) + En(x)

i=0

Z b
a

f (x) dx =

Quanto `
e lunga la pista?

Z b
a

n
X

160

V
150

140

130

n
X

f (xi ) li(x) + En(x) dx =

i=0

Z b

f (xi )

i=0

170

li(x) dx +

Z b
a

En(x) dx =

n
X

f (xi ) ci + Rn (f ) = |Sn{z
(f )} + R
(f )
| n{z }

Parte approssimante
Z b
Errore di troncamento
Coefficienti: ci =
li(x) dx
o resto

i=0

120

110

100

90

80

70

n
X

12

18

24

30

36

42

48

54

60

66

72

78

84

Grado di precisione

Se consideriamo anche gli errori i sui dati si ha


(f (xi ) + i) li (x) + En(x)
i=0
Z b
Z b
n
b
X
li(x) dx +
En (x) dx +
i
li(x) dx

f (x) = pn(x) + En(x) =

f (x) dx =

n
X

f (xi )

n
X

f (xi ) ci +

i=0

n
X

i=0

En (x) dx +
a

= Sn(f ) + Rn (f ) +

i=0

n
X

Linterpolazione `
e esatta per ogni polinomio qm(x) di grado m n,
quindi En(x) = 0 = Rn(qm) = 0, cio`
e la formula di quadratura `
e
esatta per ogni polinomio qm(x) di grado m n.

i ci =

i=0

Rn (f )
| {z }

Errore
di propagazione
n
X

Sn(f ) =
f (xi ) ci
Parte approssimante

i=0

Z b

ci =
li(x) dx Coefficienti

a
I(f ) = Sn (f ) + Rn(f ) + Rn (f )
Z b
Z b

n(x) (n+1)

R
(f
)
=
E
(x)
dx
=
((x)) dx Resto
f
n
n

a
a (n + 1)!

Rn (f ) =
i ci
Errore di propagazione

i=0

2

(x) = (x)

Una formula di quadratura interpolatoria a n nodi ha grado


di precisione almeno n 0.

Le formule di quadratura interpolatorie sono esatte almeno


per le funzioni costanti. In particolare, se si pone f (x) = 1,
si ottiene
n
X

ci = b a

i=0

Scelta dei nodi nelle formule interpolatorie

Consideriamo il polinomio di grado 2n + 2




Definizione. Si dice che una formula di quadratura ha grado di


precisione se `
e esatta per tutti i polinomi qm(x) di grado m ,
cio`
e Rn(qm ) = I(qm ) Sn(qm ) = 0, m . In particolare, la formula
di quadratura `
e esatta per i monomi xk , k = 0, 1, . . . , .

= (x x0)2(x x1)2 (x xn)2

Differenti distribuzioni di nodi danno origine a differenti formule di


quadratura con diverso grado di precisione.

dove xi, i = 0, . . . , n, sono i nodi della formula di quadratura.


I() =

Z b
a

Formule di Newton-Cotes
(x) dx > 0

I() = Sn() + Rn() =

Nodi equispaziati: xi = a + ih
n
X

i=0

ci
(x ) +Rn() = Rn()
| {z i }

Grado di precisione:

=0

= Rn() > 0: esiste almeno un polinomio di grado 2n+2 per il


quale le formule di quadratura interpolatorie non sono esatte,
quindi < 2n + 2.
= Per le formule interpolatorie si ha
n 2n + 1

n0
6

= n,

i = 0, 1, . . . , n

h=

ba
n

n + 1 pari

= n + 1, n + 1 dispari

Formule gaussiane
Nodi gaussiani: zeri di polinomi ortogonali, ad esempio i nodi di
Chebyshev; non sono equispaziati e sono interni
allintervallo [a, b].
Grado di precisione: = 2n + 1 (massimo)

Parte approssimante:

Formula del trapezio: n + 1 = 2, = 1, f

C 2[a, b]
S1(f ) = f0

f1

Si approssima f (x) con un polinomio interpolatore di grado 1


che passa per i punti:
(x0, f0), (x1, f1)

p1(x)
f(x)
f0

Z b
(x x0)

a (x1 x0)

dx =

1
1
1
f0(x1 x0) + f1(x1 x0) = (f0 + f1)(b a) =
2
2
2

1
(f0 + f1)h
2

Resto:

a (x0 x1)

dx + f1

b=x

a=x

Z b
(x x1)

R1(f ) =

(x)
f ((x)) =
f (x) = f0l0(x) + f1l1(x) + 1
2!

Z
1
1 b
(x x0)(x x1)f ((x)) dx |{z}
= h3f ( )
2 a
12

[a, b]

Teorema
della media

(x x1)
(x x0)
1
= f0
+ f1
+ (x x0)(x x1)f ((x))
(x0 x1)
(x1 x0)
2
8

Formula di Cavalieri-Simpson

Convergenza delle formule di quadratura

n + 1 = 3, = 3, f C 4[a, b]

Convergenza:

Si approssima f (x) con una parabola (polinomio di secondo grado)


che passa per i punti:
(x0, f0), (x1, f1), (x2, f2).
f2

f(x)

lim S (f ) = I(f ) lim Rn(f ) = 0


n n
n

Al crescere di n il polinomio interpolatore potrebbe non convergere


anche la formula di quadratura potrebbe fornire risultati inaccurati.

p1(x)

f1

p2(x)

0.8

f0

p (x)
2

0.6

Fenomeno di Runge:
f (x) =

1
1 + x2

x [5, 5]

p (x)
0.4

f(x)

0.2
0

a=x0

Parte approssimante: S2(f ) =


Resto: R2(f ) =

h5 (4)
f ( )
90

x1

p (x)

b=x

0.2

h
(f0 + 4f1 + f2)
3
[a, b]

0.4
5

10

= Le formule di quadratura interpolatorie convergono in tutti


quei casi in cui converge il polinomio interpolatore.
11

Teorema. Sia f C[a, b], [a, b] limitato, sia {Sn(f )} una successione di formule di quadratura interpolatorie
Sn(f ) =

n
X

n
X

ci f (xi) tale che

i=0

|ci| M

n,

i=0

allora lim Sn(f ) = I(f ).


n

Nota 1. Per le formule di quadratura interpolatorie a coefficienti positivi si ha


n
n
X
X
|ci| =
ci = b a
i=0

i=0

per cui lipotesi del Teorema `


e soddisfatta con M = b a.

Ogni successione di formule di quadratura interpolatorie a


coefficienti positivi `
e convergente.

Formule di Newton-Cotes generalizzate


Per n > 7 i coefficienti ci delle formule di Newton-Cotes hanno
segni sia positivi che negativi oltre a non essere garantita
la convergenza, si pu`
o avere unamplificazione degli errori sui
dati, e quindi uninstabilit`
a numerica.
Per evitare luso di formule di Newton-Cotes di grado elevato, quando si dispone di un numero elevato di dati {xi, fi },
i = 0, . . . , n, si divide lintervallo di integrazione in N sottointervalli e si utilizza in ciascun sottointervallo una formula di
Newton-Cotes di grado basso (in genere di grado 1 o 2).
1

1
0.8

0.8

p2(x)

0.6

p (x)

p (x)
0.4

Nota 2. I coefficienti delle formule di Newton-Cotes sono tutti positivi se n 7, mentre sono sia positivi che negativi per n > 7.
I coefficienti delle formule gaussiane sono tutti positivi per
ogni valore di n.

Formula dei trapezi

0.4

0.2

f(x)

0.2

f(x)

p0(x)

p (x)
0

0.2

0.2
0.4
5

12

p2(x)

0.6

0.4
5

13

Formula del trapezio: n = 1, = 1, f C 2[a, b]

j+1

fj+1
p1(x)

Si approssima localmente f (x)


con un polinomio interpolatore
di grado n = 1 che passa per i
punti:
(xj , fj ), (xj+1, fj+1)

f(x)

fj

Aj

x0

j+1

xj

Lintegrale I(f ) viene approssimato con la somma delle aree dei


trapezi Aj .
I(f ) =

Z b
a

f (x) dx =

NX
1

Aj =

j=0

NX
1 Z x
j+1
j=0 xj

NX
1
h 
j=0 2

xj+1

(x)
f (x) = fj lj (x) + fj+1 lj+1(x) + 1
f (j (x)) =
2!

f (x) dx

fj + fj+1

= fj


(x xj+1)
(xj xj+1)

+ fj+1

(x xj )
1
+ (x xj )(x xj+1)f (j (x))
(xj+1 xj )
2
j (x) [xj , xj+1]

14

15

Formula dei trapezi

Parte approssimante:
S1(f ) = fj

=
=

Z x
j+1 (x xj+1 )
xj

(xj xj+1)

dx + fj+1

Z x
j+1
xj

fj+1

(x xj )
dx =
(xj+1 xj )

1
1
1
fj (xj+1 xj ) + fj+1(xj+1 xj ) = (fj + fj+1)(xj+1 xj ) =
2
2
2

h
(fj + fj+1)
2

x xj+1

Resto:
R1(f ) =

In ogni sottointervallo [xj , xj + 1], j = 0, . . . , N 1, si applica la


ba
formula del trapezio con h =
.
N

Z
1
1 xj+1
(x xj )(x xj+1)f (j (x)) dx |{z}
= h3f (j )
2 xj
12

Teorema
della media

I(f ) =

j [xj , xj+1]
=
16

I(f ) =

f (x) dx =
a

N
1 Z xj+1
X
j=0

N
1
X

f (x) dx =

NX
1
h 
j=0 2

NX
1 Z x
j+1
j=0 xj

fj + fj+1 +

f (x) dx =

NX
1

j=0

h3
12

f (j )

j [xj , xj + 1]
17

Formula delle parabole

f (x) dx =

2j+1

N
1 
X
j=0


h3

f (j ) =
12

pj(x)
f(x)

h
(f0 + f1 + f1 + f2 + f2 + f3 + + fN 2 + fN 2 + fN 1 + fN )
2

 3
N
1
X
h
h
f0 + 2
fj + fN
N f ( )
=
2
12
j=1

Formula dei trapezi:

Z b

xj


h"
=
fj + fj+1 +
2
j=0
=

xN

f2j

 N 1
h3 X
f (j ) =
12 j=0

[a, b]

NX
1

TN (f ) =
f0 + 2
fj + fN

2
j=1




T (f ) = b a h2f ( )

R
N
12

2(j+1)

Aj

x2(j+1)

x2j

xN

Lintegrale I(f ) viene approssimato con la somma delle aree al di


sotto della parabola pj (x).
I(f ) =
[a, b]

Grado di precisione: = 1

18

Z b
a

f (x) dx =

N/21
X
j=0

N/21
X Z x2(j+1)
j=0

Aj =

x2j

N/21
X h 
j=0 3

f (x) dx

f2j + 4 f2j+1 + f2(j+1)

19

Formula di Cavalieri-Simpson
(x) (3)
f (x) = f2j l2j (x) + f2j+1 l2j+1(x) + f2(j+1) l2(j+1) (x) + 2
f (j (x)) =
3!

n = 2, = 3, f C 4[a, b]
Si approssima localmente f (x) con una parabola (polinomio di secondo grado) che passa per i punti:
(x2j , f2j ), (x2j+1, f2j+1), (x2(j+1), f2(j+2) )

= f2j

(x x2j+1)(x x2(j+1))
(x2j x2j+1)(x2j x2(j+1))

+f2j+1

(x x2j )(x x2(j+1))


(x2j+1 x2j )(x2j+1 x2(j+1) )

f2(j+1)
p (x)

+f2(j+1)

2j

p2(x)

f(x)

2j+1

(x x2j )(x x2j+1)


(x2(j+1) x2j )(x2(j+1) x2j+1)

1
+ (x x2j )(x x2j+1)(x x2(j+1)) f (3) (j (x))
6
j (x) [x2j , x2(j+1)]

x2j

x2(j+1)

2j+1

20

21

Parte approssimante:
S2(f ) = f2j

Z x
2(j+1)
x2j

+ f2(j+1)

= f2j

x2j

x2j

x2j

x2j

l2j+1(x) dx +
Resto:

l2(j+1) (x) dx =
R2(f ) =

(x2j x2j+1)(x2j x2(j+1))

dx +

(x x2j )(x x2(j+1))


(x2j+1 x2j )(x2j+1 x2(j+1))

Z x
2(j+1)
x2j

Z x
2(j+1)

(x x2j+1)(x x2(j+1))

Z x
2(j+1)

+f2(j+1)

Z x
2(j+1)

Z x
2(j+1)

+f2j+1

l2j (x) dx + f2j+1

=
|{z}

dx +

(x x2j )(x x2j+1)


(x2(j+1) x2j )(x2(j+1) x2j+1)

Z
1 x2(j+1)
(x x2j )(x x2j+1)(x x2(j+1))f (3) (j (x)) dx =
6 x2j

h5 (4)
f (j )
90

j [x2j , x2(j+1)]

Teorema
della media
dx =


h
f2j + 4f2j+1 + f2(j+1)
3
22

23

I(f ) =

f (x) dx =

In ogni sottointervallo [x2j , x2(j+1) ], j = 0, 1, . . . , N/2 1, si applica


ba
la formula di Cavalieri-Simpson con h =
.
N

Z b
a

f (x) dx =

N/21
X Z x2(j+1)
j=0

N/21
X h 
j=0 3

x2j

f2j + 4f2j+1 + f2(j+1) +

N/21
X
j=0

h5

90

f (x) dx =

x2j

f (4) (j )


N/21 
X h "
X

h5
f2j + 4f2j+1 + f2(j+1) +

f (4) (j ) =
3
90
j=0
j=0

h
(f0 + 4f1 + f2 + f2 + 4f3 + f4 + f4 + 4f5 + f6 + + fN 2 + fN 2 + 4fN 1 + fN )
3

 5  N/21
 5
N/21
N/21
X
X
X
h
h
N (4)
h

f ( )
f (4) (j ) = f0 + 4
f2j+1 + 2
f2j + fN
90
3
90
2
j=0
j=0
j=1
=

f (x) dx =

j=0

N/21

Formula delle parabole

I(f ) =

N/21 Z x2(j+1)
X

Formula
delle
parabole:

j [xj , xj + 1]

N/21
N/21

X
X
h

f2j+1 + 2
f2j + fN
PN (f ) = f0 + 4

3
j=0
j=1




b a 4 (4)

h f ( )
RN (f ) =
180

[a, b]

Grado di precisione: = 3
24

Nota. Per poter usare la formula delle parabole il numero di nodi N + 1 deve
essere dispari.
25

Convergenza delle formule


dei trapezi e delle parabole

Esempio
Una macchina da corsa percorre un giro di pista in 84 secondi. La velocit`
a della
macchina viene misurata con un radar ogni 6 secondi per tutta la durata del percorso.
I valori misurati sono riportati in tabella:

Formula dei trapezi:


T (f ) = 0
lim TN (f ) = I(f ) lim RN

Se f C (2)[a, b]
lim RT (f ) |{z}
=
N N

h= ba
N

T (f ) = lim
lim RN

h0

h0

ba
12

i
ti
vi

h2 f ( ) = 0

1
6
134

2
12
148

3
18
156

4
24
147

5
30
133

6
36
121

7
42
109

8
48
99

9
54
85

10
60
78

11
66
89

12
72
104

13
78
116

Quanto `
e lunga la pista?
Traccia della soluzione.
La lunghezza della strada percorsa da una
a
R t macchina che si muove a velocit`
v(t) nellintervallo [t0, t1] `
e data da L = t01 v(t)dt. Quindi si pu`
o approssimare
la lunghezza della pista con una formula di quadratura generalizzata.
!
13
X
Formula dei trapezi: L 3 v0 + 2
vi + v14 = 9855

Formula delle parabole:


P (f ) = 0
lim PN (f ) = I(f ) lim RN

0
0
124

i=1

Se f C (4)[a, b]
lim RP (f ) |{z}
=
lim RP (f ) = lim
N N
h0 N
h0
ba
h= N

ba
180

Formula delle parabole: L 2

h4 f (4) ( ) = 0

v0 + 4

6
X
i=0

26

v2i+1 + 2

6
X
i=1

v2i + v15

= 9858

27

14
84
123

Criterio di Runge
Errore di propagazione

Nel caso delle formule generalizzate `


e possibile stimare il resto
senza ricorrere al calcolo della derivata.

Assumendo che per lerrore sui dati valga la limitazione |i| = 0.5,
per lerrore di propagazione si ottiene la maggiorazione:
(f )| = |
|Rn

n
X

i ci|

i=0

n
X

|i| |ci|

i=0

n
X

|ci|

n
X

i=0

|ci|

n
X

b a 2
h f ( )
12

T (f ) = T (f )
Passo h I(f ) = Th(f )+Rh
h

i=0

Poich
e entrambe le formule di quadratura hanno coefficienti ci positivi si ha
(f )|
|Rn

T (f ) =
Formula dei trapezi: Rh

Passo

[a, b]

b a 2
h f ( )
12


h
ba
T (f ) = T
I(f ) = Th/2(f )+Rh/2
h/2 (f )
2
12

  2
h

Se f (x) varia poco in [a, b] f ( ) f ()

ci = (b a) = 0.5 84 = 42

i=0
T (f ) =
Rh

b a 2
b a 2
T (f )
h f ( )
h f () = 4Rh/2
12
12

28

T (f )
Passo h I(f ) Th(f )+4Rh/2

Passo

h
2

f ()

Sottraendo le due formule


si ottiene

T (f )

I(f ) = Th/2(f )+Rh/2

T (f )
Criterio di Runge (per trapezi): Rh/2

P (f ) =
Formula delle parabole: Rh

b a 4 (4)
h f ( )
180

Il criterio di Runge permette di stimare il resto tramite le sole parti


approssimanti relative ai passi h e h/2.
La stima ottenuta pu`
o essere utilizzata per ottenere una nuova approssimazione, pi`
u accurata, dellintegrale.
Estrapolazione di Richardson (per trapezi):
1
T (f ) T
I(f ) = Th/2(f )+Rh/2
h/2 (f ) + (Th/2 (f ) Th(f ))
3
Estrapolazione di Richardson (per parabole):

Se f (4) (x) varia poco in [a, b] f (4) ( ) f (4) ()






ba
ba
P (f )
RhP (f ) =
h4 f (4) ( )
h4f (4) () = 16Rh/2
180
180
P (f )
Criterio di Runge (per parabole): Rh/2

Estrapolazione di Richardson

[a, b]


ba
h4 f (4) ( )
180

  4
h
ba
h
P (f ) = P
Passo
I(f ) = Ph/2 (f )+Rh/2
f (4) ()
h/2 (f )
2
180
2
Passo h I(f ) = Ph(f )+RhP (f ) = Ph(f )

1
(T (f ) Th(f ))
3 h/2

29

1
P (f ) P
(P (f ) Ph(f ))
I(f ) = Ph/2(f )+Rh/2
h/2 (f ) +
15 h/2

1
(P (f ) Ph(f ))
15 h/2
30

31

Esercizio
I(ex ) =

Esempio
Qual`
e lerrore che si commette approssimando la lunghezza della pista con la
formula dei trapezi?
Per stimare lerrrore si pu`
o utilizzare il criterio di Runge utilizzando come approssimazione al passo h/2 lapprossimazione con passo h/2 = 6 (si usano tutti i nodi) e
come approssimazione al passo h lapprossimazione al passo h = 12 (si usano solo
gli 8 nodi i = 0, 2, 4, . . . , 14).
1
Criterio di Runge per trapezi: R (9855 9846) = 3
3
Estrapolazione di Richardson: L 9855 +

Z 1

Passo h =

ex dx = e 1 1.7182818

1
1
P1/2 (ex) = (e0 + 4e0.5 + e1) 1.7188611
2
6
I(ex ) P1/2 (ex) = 0.58 103

Passo h =

1
1 0
P1/4 (ex) =
[e + 4(e0.25 + e0.75 ) + 2e0.5 + e1] 1.7183188
4
12
I(ex ) P1/4 (ex) = 0.37 104

Criterio di Runge:

1
(9855 9846) = 9858
3

P
R1/4

1
1
(P1/4 (ex) P1/2 (ex)) =
(1.7183188 1.7188611) = 0.36 104
15
15

` possibile applicare il criterio di Runge per la formula delle parabole?


E
Suggerimento: Dividere lintervallo di integrazione in due sottointervalli, [0, 72] e
[72, 84], quindi applicare il criterio di Runge per parabole nel primo intervallo e il
criterio di Runge per trapezi nel secondo.

32

Estrapolazione di Richardson:
I(ex ) P1/4(ex) +

1
(P
(ex ) P1/2(ex )) 1.7182826 = A
15 1/4

I(f ) A = 1.7182818 1.7182826 = 0.8 106

33

Formula delle parabole: function Matlab


function [I] = parabole(xnodi,fnodi)
% I=parabole(xnodi,fnodi): Approssimazione di un integrale
%
con la formula delle parabole

La funzione trapz(X,Y)
La funzione trapz(X,Y) permette di approssimare un integrale con la
formula dei trapezi. X e Y sono due vettori che contengono i nodi e
i valori nei nodi della funzione da integrare, rispettivamente.
>>X=linspace(0,1)
>>Y=exp(X)
>>trapz(X,Y)

34

nnodi = length(xnodi);
a = xnodi(1);
b = xnodi(nnodi);
h = (b-a)/(nnodi-1);
I = h/3*(fnodi(1)+4*sum(fnodi(2:2:nnodi-1))+ ...
... 2*sum(fnodi(3:2:nnodi-2))+fnodi(nnodi));

35

Formula dei trapezi: programma Fortran


program trapezi
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

Programma per lapprossimazione di un integrale


con il metodo dei trapezi.
Input: (da file)
- n+1: numero di nodi
- xnodi(0:n): ascisse
- ynodi(0:n): ordinate
Variabili:
- real a,b: estremi dellintervallo di integrazione
- real h: passo di integrazione
- integer i: indice del ciclo do
- real sumI: variabile di accumulazione
Output:
- real Intf: integrale approssimato
implicit none
real sumI, Intf, a, b, h
integer nmax, n, i
parameter (nmax=150)
real xnodi(0:nmax), ynodi(0:nmax)
36

Riferimenti bibliografici
L. Gori, Calcolo Numerico: Cap. 7 7.1, 7.3 (escluse formule di Newton-Cotes
aperte), 7.4, 7.5 (escluso metodo di Romberg), 7.9
L. Gori, M.L. Lo Cascio, F. Pitolli, Esercizi di Calcolo Numerico: 4.2, 4.3, 4.4, 4.9,
4.10, 4.12, 7.3, 7.8, 7.17, 7.23, 7.28, 7.42, 7.47, 7.48, 7.71, 7.82, 7.84

38

*
* Lettura dati di input
*
open (20,file=valnodi.dat)
read (20,*) n
if (n .gt. nmax) stop n>nmax
read (20,*) (xnodi(i), ynodi(i), i=0,n)
close(20)
*
* Inizializzazione variabili
*
a=xnodi(0);
b=xnodi(n);
h=(b-a)/float(n);
sumI=0;
do i=1,n-1
sumI=sumI+ynodi(i);
enddo
Intf=h*0.5*(ynodi(0)+2*sumI+ynodi(n))
*
* Stampa del risultato
*
write (*,*) Integrale approssimato:, Intf
*
* Fine del programma
*
stop
end

37