Professional Documents
Culture Documents
di Alberto Cella
Uno dei problemi largamente studiati nellAnalisi Numerica consiste nel pro-
porre diversi algoritmi in grado di calcolare lintegrale denito di una funzione
sopra uno specico intervallo.
Lesigenza di non a dare questo compito unicamente solo ad un integra-
tore motivata dalla presenza di diverse complicazioni di ordine tecnico, che
vanno dalla tipologia di funzione presa in esame sul dominio di riferimento, al
compromesso tra velocit di esecuzione dei calcoli e accuratezza della risposta
dellelaboratore.
In questa memoria tecnica vogliamo discutere un integratore potente che
annovera tra le sue caratteristiche peculiari quella di potersi adattare a situazioni
in cui la funzione integranda pu manifestare forti pendenze.
La formula di base che viene implementata nellalgoritmo quella di Cavalieri
- Simpson e verr esaminata in dettaglio nel primo paragrafo.
Lobiettivo di un integratore adattivo consiste nel fornire una approssimazione
del valore dellintegrale entro i limiti di una tolleranza ssata a priori, applicando
una distribuzione non uniforme del passo di integrazione sullintervallo.
(x x1 ) (x x2 ) (x x0 ) (x x2 )
P2 (x) = f (x0 ) + f (x1 )
(x0 x1 ) (x0 x2 ) (x1 x0 ) (x1 x2 )
(x x0 ) (x x1 )
+f (x2 ) (3)
(x2 x0 ) (x2 x1 )
1
Si noti che questa lunica espressione possibile di P2 (x) perch eettivamente
il polinomio di secondo grado che passa per i punti della funzione f nei nodi
voluti:
P2 (xi ) = f (xi ) 8i = 1; 2; 3
Indichiamo con L la lunghezza (positiva) dellintervallo [a; b], cio L = x2 x0
e andiamo a riscrivere il polinomio:
2f (x0 ) 4f (x1 )
P2 (x) = (x x1 ) (x x2 ) (x x0 ) (x x2 ) +
L2 L2
2f (x2 )
+ (x x0 ) (x x1 ) (4)
L2
Sia I2 (f ) lintegrale calcolato in [a; b] con il polinomio interpolatore P2 (x):
Z b Z b
I2 (f ) = P2 (x)dx f (x)dx (5)
a a
Per la propriet lineare lintegrale si scinde nella somma di tre contributi:
Z
(1) 2f (x0 ) x2
I2 = (x x1 ) (x x2 ) dx (6.1)
L2 x0
Z
(2) 4f (x1 ) x2
I2 = (x x0 ) (x x2 ) dx (6.2)
L2 x
Z x20
(3) 2f (x2 )
I2 = (x x0 ) (x x1 ) dx (6.3)
L2 x0
2
Z 1
(3) 2f (x2 )
I2 = [x0 x0 + t (x2 x0 )] [x0 x1 + t (x2 x0 )] Ldt =
L2 0
Z 1
2f (x2 ) L
= (Lt) + Lt dt =
L 0 2
2f (x2 ) 1 2 L
= L = f (x2 ) (7.3)
L 12 6
In conclusione la formula di Cavalieri-Simpson applicata alla funzione f sullintervallo
[a; b] :
L x0 + x2
I2 (f ) = f (x0 ) + 4f + f (x2 ) (8)
6 2
Vogliamo ora dare una stima allerrore che si commette utilizzando la formula
di C.S: Z x2
E2 (f ) = [f (x) P2 (x)] dx (9)
x0
Dimostrazione.
Lo sviluppo di Taylor no al 5 ordine in avanti e indietro
h2 00 h3 000 h4 IV h5 V
f (x + h) = f (x) + hf 0 (x) + f (x) + f (x) + f (x) + f (x) + o(h5 )
2! 3! 4! 5!
h2 h3 000 h4 IV h5 V
f (x h) = f (x) hf 0 (x) + f 00 (x) f (x) + f (x) f (x) + o(h5 )
2! 3! 4! 5!
Sottraendo membro a membro si ha
h3 000 h5
f (x + h) f (x h) = 2hf 0 (x) + f (x) + f V (x) + o(h5 ) =
3 60
3
h
= 2hf 0 (x) + f 000 (x) + o(h4 )
3
e sommando si ottiene
h4 IV
f (x + h) + f (x h) = 2f (x) + h2 f 00 (x) + f (x) + o(h4 )
12
3
Dalla prima possiamo stimare la derivata prima:
f (x + h) f (x h) h2 000
f 0 (x) = f (x) + o(h3 )
2h 6
e dalla seconda possiamo ricavare una stima di f 00 (x):
f (x + h) 2f (x) + f (x h) h2 IV
f 00 (x) = f (x) + o(h2 )
h2 12
e la dimostrazione conclusa.
Proseguiamo nella ricerca della stima della formula dellerrore (9) e svilup-
piamo la f nel punto medio x1 di [a; b] in serie di Taylor no al 4 ordine:
h2 00 h3 h4
f (x) = f (x1 ) + hf 0 (x1 ) + f (x1 ) + f 000 (x1 ) + f IV (x1 ) + o(h4 )
2 6 24
dove h = x x1 : Integrando f (x) in [x0 ; x2 ] si ha
Z x2
L
h2 h3 h4 h5 IV 2
L3 00 L5 IV
= f (x1 )L + f (x1 ) + f (x1 )
24 1920
Per la proposizione precedente andiamo a sostituire lo sviluppo della derivata
seconda e otteniamo:
Z x2 " #
L 2
L3 f (x1 + L2 ) 2f (x1 ) + f (x1 L2 ) 2 IV L5 IV
f (x)dx = f (x1 )L + f (x) + f (x1 ) =
x0 24 L 2 12 1920
2
L L5 IV L5 IV
= f (x1 )L + [f (x2 ) 2f (x1 ) + f (x0 )] f (x) + f (x1 ) =
6 1152 1920
L 1
= [f (x2 ) + 4f (x1 ) + f (x0 )] L5 f IV ( )
6 2880
Senza alcuna pretesa di rigore abbiamo cos determinato lerrore che si ot-
tiene applicando la formula di C.S. dove un punto non specicato interno
ad [a; b]:
L5 IV
E2 (f ) = f ( ) (11.1)
2880
Alcuni testi riportano la formula relativa alla semiampiezza h = L=2 dellintervallo
[a; b]:
h5 IV
E2 (f ) = f ( ) (11.2)
90
Naturalmente nella teoria dellintegrazione numerica non si usa la formula di C.
S. in quanto tale, ma si genera lungo lintervallo [a; b] una griglia su cientemente
estesa di nodi in cui si applica ripetutamente la formula ogni tre nodi consecutivi.
4
Pi precisamente questo equivale ad approssimare la funzione integranda f
attraverso i cosiddetti polinomi interpolatori compositi.
Supponiamo allora di suddividere lintervallo [a; b] in m sottintervalli con
m 1, di ampiezza identica H = (b a)=m e andiamo a collocare i nodi di
quadratura xk = a + kH=2 per ogni k = 0; ::::; 2m:
In tal caso dobbiamo pensare di applicare la formula di C.S. ogni tre nodi
consecutivi:
H H
I2;m = [f (x0 ) + 4f (x1 ) + f (x2 )] + [f (x2 ) + 4f (x3 ) + f (x4 )] + ::
6 6
H
+::::: + [f (x2m 2 ) + 4f (x2m 1 ) + f (x2m )]
6
"m 1 m
#
H X X1 Xm
= f (x2r ) + 4 f (x2s+1 ) + f (x2r )
6 r=0 s=0 r=1
5
La dimostrazione analoga se i j fossero negativi.
Xm 5
1 H
E2 (f ) = f IV ( i ) =
i=1
90 2
5
m H
= f IV ( ) =
90 2
4
b a H
= f IV ( ) (14)
180 2
Dopo aver esposto tutte queste nozioni preliminari siamo ora in grado di af-
frontare il discorso sulladattivit della griglia apportando cos un notevole
miglioramento allintegratore di C.S.
Infatti non vogliamo soltanto limitarci a dare una stima dellintegrale, ma
desideriamo forzare lintegratore a restituire in output un valore che sia prossimo
a quello reale entro una pressata tolleranza.
Questo obiettivo si traduce nellabbandonare lipotesi di uniformit del passo
di integrazione lungo lintervallo considerato.
Un algoritmo ben congegnato adatta in modo automatico lampiezza del
passo in base al comportamento della funzione integranda, addensando mag-
giormente i nodi di quadratura non appena la funzione presenti variazioni pi
marcate.
Supponiamo di ssare una tolleranza massimale " e andiamo a considerare
il generico intervallo [ ; ] [a; b].
In base alla formula dellerrore per la formula di C.S. se volessimo ssare in
[ ; ] un passo h abbastanza accurato dovremmo teoricamente preoccuparci di
valutare le derivate quarte di f .
Echiaro che questa procedura assolutamente da scartare perch non pos-
siamo obbligare ogni volta lutente a valutare lentit dellerrore, cos appare
pi logico cercare una strada diversa senza studiare esplicitamente la funzione
f (IV ) (x):
h0
Sf ( ; ) = [f ( ) + 4f ( + h) + f ( )] (15.2)
3
per cui lerrore diventa:
h50 (IV )
If ( ; ) Sf ( ; ) = f ( ) (16)
90
6
con 2 [ ; ]:
Per eliminare la dipendenza dalla derivata quarta utilizziamo di nuovo la
formula di C.S. separatamente ai due sottointervalli [ ; + h] e [ + h; ] :
A questo punto lintegrale approssimato vale :
Sf;2 ( ; ) = Sf ( ; + h) + Sf ( + h; ) (17)
h0 5 (IV )
If ( ; ) Sf;2 ( ; ) = f ( ) (18)
16 90
Appare evidente cos che la quantit "f ( ; ) = Sf ( ; ) Sf;2 ( ; ) si pu
stimare :
h50 (IV ) h0 5 (IV )
"f ( ; ) = If ( ; ) + f ( ) If ( ; ) f ( )
90 16 90
15 h50 (IV )
f ( ) (19)
16 90
In particolare ora sappiamo quanticare la stima dellerrore commesso appli-
cando le formule di C.S. perch combinando opportunamente i vari risultati si
ha infatti:
j"f ( ; )j
jIf ( ; ) Sf;2 ( ; )j (20)
15
Questa formula importantissima per la genesi del nostro algoritmo adattativo,
come vedremo in dettaglio tra poco, perch infatti ci consentir di modicare il
passo h dellintegrazione in maniera opportuna.
Nella pratica per si utilizza una stima pi grossolana dellerrore
j"f ( ; )j
jIf ( ; ) Sf;2 ( ; )j (21)
10
la ragione di cio quella di non sottovalutare eccessivamente lerrore per forzare
lalgoritmo a sviluppare ulteriori calcoli di elaborazione qualora occorresse avvic-
inarsi al valore esatto dellintegrale con un ampio margine di sicurezza.
7
2. S = (a; ) lintervallo di integrazione gi esaminato per il quale il test
sullerrore
j"f (a; )j a
"
10 b a
stato superato con successo.
3. N = ( ; b) lintervallo restante ancora da esaminare.
0 0 +
A=( ; ) con =
2
e si pone anche
N N [ ( 0; ) e 0
8
ESEMPIO Consideriamo la funzione
ln(2x + 1)
f (x) =
(2x + 1)2
denita nellintervallo [0; 10] e calcoliamone lintegrale per mezzo dei due in-
tegratori, quello composito e quello adattivo, sapendo che il risultato atteso
vale Z 10
I= f (x)dx = [20 ln(21)]=42 0:403701:
0
Con lintegratore composito abbiamo ottenuto i seguenti risultati ampli-
cando di volta in volta il numero m di sottointervalli :
m = 20 : I = 0:401463
m = 40 : I = 0:403481
m = 60 : I = 0:403652
m = 80 : I = 0:403685
m = 100 : I = 0:403695
m = 120 : I = 0:403698
m = 140 : I = 0:403700
Bibliograa:
data:
21/09/2008
ultima revisione:
22/05/2017