Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
dy d2 y d3 y dn y
F x, y, , 2 , 3 , . . . , n = 0. (5.1)
dx dx dx dx
Questa equazione è detta di ordine n perché le derivate in essa presenti sono al massimo
di ordine n; inoltre, è detta ordinaria perché in essa compaiono solo derivate ordinar-
ie o totali (non ci sono derivate parziali in quanto c’è una sola variabile indipendente,
x). Una funzione y(x) che soddisfa tale equazione deve essere differenziabile n volte ed
è detta soluzione dell’equazione. In generale ci sono molte funzioni che soddisfano la
generica equazione differenziale (5.1), ma per ottenere una soluzione unica è necessario
fornire delle informazioni addizionali riguardanti il valore di y(x) e/o delle sue derivate
per alcuni specifici valori di x. Per un’equazione di ordine n, sono normalmente sufficienti
n condizioni per ottenere una soluzione unica. Se tutte le condizioni sono assegnate per lo
stesso valore di x (x0 , per esempio), si parla di problema ai valori iniziali. Quando invece
le condizioni sono fornite per più valori di x, si parla di problema ai valori al contorno.
Una equazione differenziale ordinaria di ordine n può essere scritta come un sistema
di n equazioni del primo ordine, definendo n − 1 nuove variabili. Per esempio, si consideri
la seguente equazione del second’ordine, nota come equazione di Bessel:
dy 2 dy
x2 2
+ x + (x2 − p2 )y = 0, (5.2)
dx dx
dove p è una costante. Definendo la nuova variabile z = dy/dx, tale equazione del secondo
ordine può essere riscritta come un sistema di due equazioni del prim’ordine:
dy
− z = 0,
dx
(5.3)
dz
x2 + xz + (x2 − p2 )y = 0.
dx
Sulla base di questa considerazione si analizzerà solo la soluzione numerica di equazioni
differenziali del prim’ordine e dei sistemi di equazioni differenziali del prim’ordine.
o, equivalentemente,
dy
= f (x, y). (5.5)
dx
5 EQUAZIONI DIFFERENZIALI ORDINARIE 97
Si deve determinare una soluzione y(x) che soddisfi questa equazione per una data con-
dizione iniziale. Escludendo la ricerca della soluzione per via analitica, si procede a
dividere in n sottointervalli, o passi, l’intervallo [a, b] in cui si sta calcolando la soluzione.
Il valore esatto della soluzione y(x) è approssimato in corrispondenza di n + 1 valori di x
ugualmente spaziati, (x0 , x1 , . . . , xn ), in modo che la dimensione h del passo è
b−a
h= (5.6)
n
con
xi = x0 + i h, i = 1, 2, . . . , n. (5.7)
La soluzione sarà data in forma discreta in corrispondenza degli n+1 valori di x. Sia y(x i )
il valore che la soluzione esatta assume nei punti xi , mentre yi indichi il valore calcolato
(approssimato) in corrispondenza degli stessi xi :
Il valore esatto della derivata dy/dx in corrispondenza dei punti base sarà approssimato
da f (xi , yi ):
fi = f (xi , yi ) ' f (xi , y (xi )) . (5.9)
Nel caso in cui i calcoli effettuati siano esatti, cioè non siano affetti da errori di arrotonda-
mento (vedi dopo), la differenza tra il valore ottenuto numericamente, yi , e il valore esatto,
y(xi ), della soluzione viene detta errore di discretizzazione o errore di troncamento:
εi = yi − y(xi ). (5.10)
2. uso di formule di integrazione chiuse o aperte dello stesso tipo di quelle viste a
proposito dell’integrazione numerica.
5 EQUAZIONI DIFFERENZIALI ORDINARIE 98
h2 0 h3 00
y (x0 + h) = y(x0 ) + hf (x0 , y(x0 )) + f (x0 , y(x0 )) + f (x0 , y(x0 )) + . . . , (5.11)
2! 3!
dove
0 d 00 d2
f (x, y(x)) = f (x, y(x)) , f (x, y(x)) = 2 f (x, y(x)) , . . .
dx dx
Se y(x0 ) è la condizione iniziale, f (x0 , y(x0 )) può essere calcolata direttamente dall’e-
quazione differenziale di partenza (5.5),
dy
= f (x, y).
dx
Per calcolare le derivate di ordine superiore nell’espansione in serie di Taylor, bisogna
differenziare f (x, y(x)) usando la regola di derivazione a catena (chain-rule), dato che f
è funzione sia di x che di y:
df ∂f ∂f dy
= + . (5.12)
dx ∂x ∂y dx
Esempio:
dy
= f (x, y) = x2
dx
con condizione iniziale y(x0 ) = y0 . Dall’equazione (5.12) si ha:
in quanto il termine tra parentesi quadre esprime l’espansione in serie di Taylor di e2h
rispetto a h = 0. L’integrazione analitica è invece:
Z y(x0 +h) Z x0 +h
dy
=2 dx =⇒ y (x0 + h) = y(x0 )e2h .
y(x0 ) y x0
Ancora una volta la soluzione analitica e numerica coincidono, quindi non c’è errore di
troncamento. Tuttavia, se nell’espressione numerica la serie è interrotta al termine f (n−1) ,
i due risultati differiscono dell’errore di troncamento
(2h)n+1
ε = y(ξ) , ξ ∈ [x0 , x0 + h].
(n + 1)!
Dagli esempi appena visti si deduce che l’espansione in serie di Taylor nel punto x0
consente di avere il valore di y in x0 + h. Analogamente gli algoritmi che procedono
da xi a xi+1 = x + h possono essere basati sull’espansione di Taylor di y(x) rispetto a xi :
h2 f 0 (xi , y (xi ))
y (xi+1 ) = y (xi + h) = y (xi ) + hf (xi , y (xi )) + +...
2!
hn f (n−1) (xi , y (xi )) hn+1 f (n) (ξ, y (ξ))
...+ + , ξ ∈ [xi , xi+1 ] . (5.13)
n! n!
L’algoritmo che si ottiene tralasciando l’ultimo termine al secondo membro e sostituendo
y (xi+1 ) con yi+1 si dice di ordine hn . L’errore è di ordine hn+1 . L’errore di troncamen-
to locale, et , ottenuto dall’applicazione di questo metodo su un unico intervallo, è cosı̀
delimitato in valore
hn+1
|et | ≤ M, (5.14)
(n + 1)!
con
M ≥ f (n) (η, y (η))max , η ∈ [xi , xi+1 ] .
Nel caso di una funzione f (x, y) generica, trovare l’espressione delle derivate che com-
paiono nell’espansione in serie di Taylor può diventare estremamente complicato. Per-
tanto, per le equazioni differenziali del prim’ordine spesso non si usano tutti i termini
dell’espansione, ma ci si ferma ai primi due termini:
y (xi+1 ) = y (xi ) + hf (xi , y (xi )) + O h2 ,
(5.15)
5 EQUAZIONI DIFFERENZIALI ORDINARIE 101
y1
Y
y(x0)
y(x1)
X
x0 x1
dove il simbolo O ( ) indica i termini di ordine ( ). Dato che y (x0 ) è normalmente l’unico
valore di y (xi ) noto esattamente (assumendo che la condizione iniziale non sia affetta da
errori), si può sostituire nell’equazione (5.15) y (xi ) con yi . L’algoritmo assume la forma
seguente:
y1 = y (x0 ) + hf (x0 , y (x0 )) (5.16)
yi+1 = yi + hf (xi , yi ) = yi + hfi , i ≤ 1, (5.17)
ed è noto come metodo di Eulero .
xi yi y(xi ) εi
0. 0. 0. 0.
0.1 0. 0.005171 −0.005171
0.2 0.01 0.021403 −0.011403
0.3 0.031 0.049859 −0.018859
0.4 0.0641 0.091825 −0.027725
0.5 0.11051 0.148721 −0.038211
0.6 0.171561 0.222119 −0.050558
0.7 0.248717 0.313753 −0.065036
0.8 0.343589 0.425541 −0.081952
0.9 0.457948 0.559603 −0.101655
1. 0.593742 0.718282 −0.124539
Il valore di yi usato in ogni intervallo, ad eccezione del primo dove y0 = y(x0 ), è approssi-
mato, essendo il risultato di calcoli precedenti che contengono già essi stessi degli errori
di troncamento. Quindi man mano che si procede da x0 verso xn , l’errore commesso nel
calcolare yi aumenta sempre più: si dice che il metodo produce una propagazione dell’er-
rore. Esaminiamo meglio tale proprietà del metodo di Eulero analizzando la soluzione
dell’equazione (5.5) con condizione iniziale y(x0 ) = y0 . Se la soluzione y(x) esiste e la sua
derivata prima è continua, si ha:
00 0
∂f (x, y) ∂f (x, y)
|y (x)| = |f (x, y)| = + f (x, y) ≤ M, (5.18)
∂x ∂y
∗
∂f (x, α) ∗
|f (x, y ) − f (x, y)| = |y − y| ≤ K |y ∗ − y| , (5.19)
∂y
con K e M costanti e y ∗ < α < y. Avendo definito l’errore nell’equzione (5.10), l’errore
addizionale generato nel valutare la soluzione in xi+1 a partire da quella a xi vale:
o, equivalentemente,
∆εi = ∆yi − ∆y(xi ), (5.21)
con ε0 = 0. Applicando il metodo di Eulero si ha:
h2 0
y(xi+1 ) − y(xi ) = h f (xi , y(xi )) + f (ξ, y(ξ)), xi < ξ < xi+1 . (5.23)
2!
Quindi l’equazione (5.21) si può riscrivere:
h2 0
∆εi = h [f (xi , yi ) − f (xi , y(xi ))] − f (ξ, y(ξ)). (5.24)
2
5 EQUAZIONI DIFFERENZIALI ORDINARIE 103
M 2
|∆εi | = |εi+1 − εi | ≤ h K |yi − y(xi )| + h , (5.25)
2
o, equivalentemente,
M 2
|εi+1 − εi | ≤ h K |εi | + h . (5.26)
2
Poiché
|εi+1 | ≤ |εi+1 − εi | + |εi |
si ha:
M 2
h,
|εi+1 | ≤ (1 + h K) |εi | + i > 0. (5.27)
2
Questa equazione, che consente di determinare |εi | a partire da ε0 = 0. Si può verificare
che una soluzione generale di tale equazione è
Mh
|εi | ≤ (1 + h K)i − 1
. (5.28)
2K
Poiché dall’espansione in serie di Taylor di ehK segue che
1 + h K < ehK ,
xi yi y(xi ) εi
0. 0. 0. 0.
0.1 0.0025 0.005171 −0.002671
0.2 0.015506 0.021403 −0.005897
0.3 0.040096 0.049859 −0.009763
0.4 0.077455 0.091825 −0.014369
0.5 0.128895 0.148721 −0.019827
0.6 0.195856 0.222119 −0.026262
0.7 0.279932 0.313753 −0.033821
0.8 0.382875 0.425541 −0.042666
0.9 0.506619 0.559603 −0.052984
1. 0.653298 0.718282 −0.064984
dove p e q sono costanti definite nel seguito. In questo modo si può scrivere l’algoritmo
di Runge–Kutta come
yi+1 = yi + h (ak1 + bk2 ) (5.36)
Si ricorda che i primi termini dell’espansione di Taylor di una funzione di due variabili
sono:
k2 = f (xi + ph, yi + qhf (xi , yi )) = f (xi , yi ) + phfx (xi , yi ) + qhf (xi , yi )fy (xi , yi ) + O h2 .
(5.37)
Sostituendo i valori di k1 e k2 nell’equazione (5.36), si ha:
yi+1 = yi + h [af (xi , yi ) + bf (xi , yi )] + h2 [bpfx (xi , yi ) + bqf (xi , yi )fy (xi , yi )] + O h3 .
(5.38)
Si espanda ora in serie di Taylor La funzione y(x) nell’intorno di xi ,
h2 0 h3
y(xi +h) = y(xi+1 ) = y(xi )+hf (xi , y(xi ))+ f (xi , y(xi ))+ f 00 (ξ, y(ξ)) ξ ∈ (xi , xi+1 ) .
2 3!
(5.39)
Usando la regola di derivazione in catena, equazione (5.12), si ha:
h2
y(xi+1 ) = y(xi ) + hf (xi , y(xi )) + [fx (xi , y(xi )) + fy (xi , y(xi ))f (xi , y(xi ))]
2
h3
+ f 00 (ξ, y(ξ)) ξ ∈ (xi , xi+1 ) . (5.40)
3!
I coefficienti dei termini con le stesse potenze di h nelle equazioni (5.38) e (5.40) sono:
da cui:
a + b = 1,
1 (5.41)
p=q=
.
2b
Il sistema (5.41) contiene tre equaqzioni in quattro incognite, quindi si può scegliere
arbitrariamente una variabile: due scelte molto comuni sono b = 1 e b = 21 .
Y pendenza f(xi+1,yi+1)
yi+1
1 yi+1
yi
h
X
xi xi+1
l’equazione (5.44) per “predire” y i+1 , cioè una prima stima di yi+1 : y i+1 è l’ordinata in
corrispondenza di xi+1 della retta ➀, passante per (xi , yi ) e avente pendenza f (xi , yi ) = k1 .
Quindi si riapplica il metodo di Eulero per ottenere una stima più accurata di yi+1 tramite
l’uso dell’equazione (5.43); la pendenza della linea ➁, usata a tale scopo, è la media
pesata delle approssimazioni di f ai due estremi dell’intervallo. Si noti che, sebbene
la derivata in xi+1 sia f (xi+1 , y(xi+1 )), si considera la sua approssimazione f (xi+1 , y i+1 )
5 EQUAZIONI DIFFERENZIALI ORDINARIE 107
dato che y(xi+1 ) non è noto. La prima applicazione dell’algoritmo di Eulero può essere
(1)
vista come un’equazione predittiva per y i+1 (la prima approssimazione di yi+1 ), mentre la
seconda può essere vista come una correzione di tale prima approssimazione, che produce
un miglioramento della stima di yi+1 . L’equazione (5.43) può anche essere applicata
in maniera ricorsiva per ottenere una sequenza di correzioni per la valutazione di yi+1 :
(m)
y i+1 , m = 2, 3, . . . . In questo modo le equazioni (5.43) e (5.44) costituiscono il più semplice
dei metodi detti di predizione-correzione (predictor-corrector) descritti in seguito.
con
h
y i+ 1 = yi + f (xi , yi ). (5.46)
2 2
L’algoritmo costituito da queste equazioni è detto metodo di Eulero modificato. La sua
interpretazione geometrica è illustrata nella figura 11. Anche in questo caso il metodo di
Y
pendenza f(xi+h/2,yi+1/2)
yi+1/2 yi+1
1
2
yi
h/2 h/2
X
xi xi+1
Eulero è applicato due volte in sequenza. La prima volta, utilizzando l’equazione (5.46),
per ottenere un’approssimazione y i+ 1 in corrispondenza del punto di mezzo dell’intervallo
2
h
di integrazione, xi + . La seconda volta, applicando l’equazione (5.45), per valutare
2
h
f (x, y) in x = xi + e y = y i+ 1 , e usare questa pendenza su tutto l’intervallo.
2 2
a + b + c = 1,
1
bp + cr = ,
2
1 (5.50)
bp2 + cr 2 = ,
3
1
cps = .
6
Per il set di costanti usato da Kutta si ottiene il seguente metodo del terzo ordine:
h
yi+1 = yi + (k1 + 4k2 + k3 ) ,
6
k1 = f (xi , yi ),
(5.51)
k2 = f (xi + 12 h, yi + 12 hk1 ),
k3 = f (xi + h, yi + 2hk2 − hk1 ).
Si noti che se f (x, y) fosse una funzione della sola x, allora quella appena scritta si
ridurrebbe alla regola di integrazione di Simpson.
Le formule del quarto ordine sono tutte del tipo
Ci sono molti algoritmi del quarto ordine. Il seguente è quello attribuito a Kutta:
h
yi+1 = yi + (k1 + 2k2 + 2k3 + k4 ) ,
6
k1 = f (xi , yi ),
k2 = f (xi + 12 h, yi + 12 hk1 ), (5.53)
k3 = f (xi + 12 h, yi + 12 hk2 ),
k4 = f (xi + h, yi + hk3 ).
Anche in questo caso il metodo si ridurrebbe alla regola di Simpson se f (x, y) fosse una
funzione della sola x. Un altro metodo del quarto ordine proposto da Kutta è il seguente:
h
yi+1 = yi + (k1 + 3k2 + 3k3 + k4 ) ,
8
k1 = f (xi , yi ),
k2 = f (xi + 13 h, yi + 13 hk1 ), (5.54)
Questo metodo si riduce alla seconda regola di Simpson se f (x, y) è una funzione della
sola x.
5.1.4 Stima dell’errore di troncamento e controllo del passo nei metodi Runge–
Kutta
In generale l’errore εi+1 che si commette nel calcolare la soluzione dell’equazione differen-
ziale nel punto xi è
εi+1 = εi + ei + et , (5.55)
dove ei è l’errore di propagazione del singolo intervallo, cioè l’errore che si commette
nel calcolare la soluzione nel punto xi+1 per il solo fatto che si parte da un valore, in
corrispondenza di xi , approssimato (partendo da un valore non esatto, anche avendo a
disposizione un metodo privo di errori si otterrà un valore approssimato); et è l’ errore
di troncamento locale, ossia l’errore che si commette nell’usare un dato metodo numerico
per ottenere il valore della soluzione in corrispondenza di xi+1 a partire da quello in
corrispondenza di xi . La somma εi + ei è detta errore di propagazione complessivo.
Considereremo per il momento trascurabile ei , si può scrivere in maniera approssimata:
Riguardando il procedimento con cui sono stati ottenuti gli algoritmi di Runge–Kutta,
si nota che il passaggio fondamentale è stato l’aver imposto l’uguaglianza dei coefficienti
5 EQUAZIONI DIFFERENZIALI ORDINARIE 110
et ' khm+1
con k = cost (in prima approssimazione); in questo modo sono stati trascurati i termini
di ordine più elevato (seconda approssimazione): questo equivale a dire che h è piccolo
abbastanza da rendere i termini O(hm+2 ) trascurabili. Successivamente, una stima del-
l’errore di troncamento locale può essere fatta integrando tra due punti, indicato con x n
e xn+1 , usando due diversi valori del passo h1 e h2 . Si otterranno quindi due soluzioni per
∗
yn+1 (risultato dell’integrazione) che indicheremo con yn+1,1 e yn+1,2 . Indicando con yn+1
la soluzione esatta, si ha:
xn+1 − xn
∗
et1 = yn+1 − yn+1,1 = kh1m+1 , (5.58)
h1
xn+1 − xn
∗
et2 = yn+1 − yn+1,2 = khm+1
2 . (5.59)
h2
Utilizzando ora la tecnica dell’estrapolazione di Richardson, vista a proposito dell’in-
tegrazione numerica, si divide membro a membro l’equazione (5.58) per la (5.59), per
ottenere m m
e t1 h1 h1
= =⇒ et1 = et2 . (5.60)
e t2 h2 h2
Poiché
∗
yn+1 = yn+1,1 + et1 = yn+1,2 + et2 , (5.61)
usando l’equazione (5.60), si ha:
m
∗ h1
yn+1 = yn+1,1 + et2 = yn+1,2 + et2 , (5.62)
h2
da cui
yn+1,2 − yn+1,1
e t2 = m . (5.63)
h1
−1
h2
5 EQUAZIONI DIFFERENZIALI ORDINARIE 111
∗
D’altro canto yn+1 = yn+1,2 + et2 , quindi:
m
h1
yn+1,1 − yn+1,2
∗ h2
yn+1 = m . (5.64)
h1
1−
h2
h1
Scegliendo h2 = 2
, ossia raddoppiamo il numero di intervalli,
∗ yn+1,1 − yn+1,2 2m
yn+1 = . (5.65)
1 − 2m
h
Ponendo adesso h1 = h e h2 = 2
, si ha et1 = et che è proprio l’errore di troncamento
nell’intervallo [xn , xn+1 ]:
yn+1,1 − yn+1,2 2m m yn+1,1 − yn+1,2
et = − y n+1,1 = 2 . (5.66)
1 − 2m 1 − 2m
Nel caso del metodo di Runge–Kutta del quarto ordine, m = 4 e si ottiene un errore di
troncamento locale
16
et = (yn+1,2 − yn+1,1 ) . (5.67)
15
Si è cosı̀ ottenuto la stima che si cercava. Questa tecnica di monitoraggio, basata sul
calcolo della stima dell’errore di troncamento locale, presenta l’inconveniente che, se fatta
su ogni intervallo di integrazione [xn , xn+1 ], porta a triplicare i calcoli perché bisogna
eseguire una prima volta i calcoli per h1 = h, quindi una seconda e una terza volta per
eseguire i due passi h2 = h2 . Un buon compromesso è eseguire questo controllo meno
frequentemente, ad esempio ogni k intervalli di integrazione.
La determinazione di un limite superiore per l’errore di propagazione dei metodi di
Runge–Kutta non è agevole. In generale, se l’errore di troncamento locale di un metodo
one-step è O(hm+1 ), l’errore complessivo sarà O(hm ); si ha quindi la riduzione di un ordine
cosı̀ come si è ricavato per il metodo di Eulero. Si può dimostrare che tutti i metodi di
Runge–Kutta sono convergenti.
y1 (x0 ) = y1,0 ,
y2 (x0 ) = y2,0 ,
.. (5.69)
.
yn (x0 ) = yn,0 .
dm y dy d2 y dm−1 y
= F x, y, , 2 , ..., m−1 (5.70)
dxm dx dx dx
5.1.6 Stabilità
In generale una soluzione si dice instabile se gli errori introdotti in un qualsiasi livello di
esecuzione dei calcoli (condizioni iniziali sbagliate, errori di arrotondamento o troncamen-
to, etc.) si amplificano nei calcoli successivi. Certe equazioni con particolari condizioni
iniziali non possono essere risolte con nessun metodo di integrazione per intervalli succes-
sivi senza mostrare instabilità: si parla in questo caso di instabilità inerente. Si consideri
per esempio l’equazione
dy
= f (x, y) = x + y,
dx
la cui soluzione analitica è
che con la condizione iniziale y(0) = −1 diventa y(x) = −x − 1; per queste particolari
condizioni iniziali si ha l’annullamento del termine esponenziale. Un piccolissimo cam-
biamento nelle condizioni iniziali, per esempio y(0) = −0.99999, causerebbe un drastico
cambiamento della soluzione per valori di x elevati. Infatti, anche se il coefficiente del
termine esponenziale è piccolo, il contributo dell’esponenziale può anche superare il valore
del termine lineare. Nel caso in cui un’equazione di questo tipo venga risolta con un meto-
do one-step, ogni nuovo passo può essere visto come la soluzione di un nuovo problema al
valor iniziale. Anche se la condizione iniziale non è affetta da errori al primo intervallo,
la condizione iniziale per i passi successivi conterrà inevitabilmente degli errori introdotti
dall’arrotondamento e dal troncamento dei passi precedenti: quindi per elevati valori di
x la soluzione ottenuta non sarà più ragionevole. L’instabilità inerente dipende quindi
dall’equazione e dalle condizioni iniziali considerate, e non dipende dal metodo.
L’instabilità parziale dipende invece anche dal metodo one-step usato e si può verificare
per i casi di equazioni inerentemente stabili. In questo caso è importante la dimensione
h del passo. Vediamo in particolare che succede nel caso del metodo di Eulero. L’errore
totale in corrispondenza dei punti xi e xi+1 è ripettivamente
da cui
εi+1 − εi = yi+1 − y(xi ) − [y(xi+1 ) − y(xi )] . (5.73)
L’algoritmo di Eulero si scrive
quindi
εi+1 − εi = hf (xi , yi ) − [y(xi+1 ) − y(xi )] (5.75)
Sviluppando y(xi+1 ) in serie di Taylor rispetto a xi si ottiene:
h2
y (xi+1 ) − y (xi ) = hf (xi , y (xi )) + f (ξ, y (ξ)) , ξ ∈ (xi , xi+1 ) . (5.76)
2
5 EQUAZIONI DIFFERENZIALI ORDINARIE 114
Quindi:
h2 0
εi+1 = εi + h [f (xi , yi ) − f (xi , y (xi ))] − f (ξ, y (ξ)) . (5.77)
2
Per il teorema del valor medio differenziale
∂f
f (xi , yi ) − f (xi , y (xi )) = [yi − y (xi )] (5.78)
∂y xi ,α
εi+1 = εi + ei + et ,
si nota che il primo termine a secondo membro nell’equazione (5.79), corrisponde al-
l’errore di propagazione complessivo, mentre il secondo è l’errore di troncamento locale.
∂f
Chiaramente, se è negativo, allora si potrà trovare un valore di h tale che il fattore di
∂y
propagazione sia minore di uno:
!
∂f
1+ < 1; (5.80)
∂y xi ,α
∂f
in questo si ottiene una riduzione dell’errore e la soluzione è stabile. Se è positivo,
∂y
indipendentemente da h risulta
!
∂f
1+ > 1; (5.81)
∂y xi ,α
dove ψi (x) indica la funzione costante a tratti con ordinate fj = f (xj , yj ) nell’intervallo
[xj , xj+1 ), j = i − k, i. L’integrale nell’equazione (5.83) può essere visto come l’area
contenuta entro i limiti xi−k , xk in figura 13.
f i+1
fi
f i+2
h h h
x i
x i+1
x i+2 x
ψi (x)
~
fi−k
~
fi
x
~
~
x i−k i−k+1 xi x i+1 x
Assumendo infatti che l’integrazione sia già avanzata fino al punto base xi , saranno noti
tutti i valori fj con 0 ≤ j ≤ i. In generale fi+1 non sarà però noto, dato che f è funzione
sia di x che di y, e yi+1 non è stato ancora calcolato. I più comuni metodi multi-step sono
descritti quindi dalla seguente equazione:
Z xi+1
yi+1 = yi−k + φ (x) dx (5.84)
xi−k
con r
X
φ (x) = a j xj , (5.85)
j=0
all’indietro:
∇2 f i ∇3 f i
φ (xi + αh) = fi + α∇fi + α (α + 1) + α (α + 1) (α + 2) +
2! 3!
∇r f i
. . . + α (α + 1) (α + 2) . . . (α + r − 1) , (5.86)
r!
x − xi
dove fi = f (xi , yi ), x = xi + αh da cui α = . I punti base xi−k possono essere
h
definiti in due modi:
xi−k = xi − kh, xi−k = xi + αh,
con α = −k. Dato che dx = hdα, l’integrale nell’equazione (5.84) si può scrivere:
Z xi+1 Z 1
φ (x) dα = h φ (xi + αh) dα =
xi−k −k
1
∇2 f i
Z
=h fi + α∇fi + α (α + 1) +
−k 2!
∇r f i
. . . + α (α + 1) (α + 2) . . . (α + r − 1) dα. (5.87)
r!
Da cui:
xi+1
α2 α 1 ∇2 f i
Z
2
yi+1 = yi−k + φ (x) = yi−k + h αfi + ∇fi + α +
xi−k 2 3 2 2!
2 3 3 1
3α2 11α ∇4 f i
2 α ∇ fi 2 α
+α +α+1 + ...+α + + +3 +... (5.88)
4 3! 5 2 3 4! −k
Nelle formule precedenti bisogna definire sia il grado r del polinomio interpolatore che k
cioè il numero di passi indietro rispetto a xi usati nell’integrazione. Si noti che vengono
utilizzati i punti che vanno da xi a xi−k per costruire un polinomio che però viene usato per
ottenere il valore f in xi+1 : questo corrisponde ad un’estrapolazione. Ancora, l’espressione
dell’integrale nell’equazione (5.88) è equivalente (basta rinominare i pedici) alle formule
di integrazione aperte di Newton–Cotes.
Usando k = 0, implica che l’integrazione è effettuata da i ad i + 1: l’uso di un solo
intervallo per l’integrazione non implica che il metodo sia one-step in quanto se r 6= 1
vengono impiegate informazioni provenienti da più intervalli; se r = 1 il metodo coincide
con il metodo di Eulero classico. Considerando r generico si ha:
1 5 2 3 3 251 4
yi+1 = yi + h fi + ∇fi + ∇ fi + ∇ fi + ∇ fi + . . . ; (5.89)
2 12 8 720
per k = 1 (integrazione tra i − 1 e i + 1), si ha:
1 2 1 3 29 4
yi+1 = yi−1 + h 2fi + 0 ∇fi + ∇ fi + ∇ fi + ∇ fi + . . . ; (5.90)
3 3 90
5 EQUAZIONI DIFFERENZIALI ORDINARIE 118
per k = 2, si ha:
3 3 2 3 3 27 4
yi+1 = yi−2 + h 3fi − ∇fi + ∇ fi + ∇ fi + ∇ fi + . . . ; (5.91)
2 4 8 80
per k = 3, si ha:
8 2 3 14 4
yi+1 = yi−3 + h 4fi − 4 ∇fi + ∇ fi + 0 ∇ fi + ∇ fi + . . . ; (5.92)
3 45
Si noti che, in generale, per valori dispari di k, il coefficiente della k-esima differenza divisa
è nullo. Per questo motivo le formule aperte di integrazione più usate sono quelle per k
dispari che utilizzano i soli primi k + 1 termini del polinomio interpolatore (r = k). In
questi casi il termine (k + 1)-esimo si annulla, sicché si otterrà un errore corrispondente
ad un polinomio di grado r pur avendo usato un polinomio di grado r − 1.
Per quanto riguarda l’accuratezza dell’integrazione, si ricorda che l’errore associato al
generico polinomio interpolatore è
Nel caso di formule di integrazione chiuse, il polinomio φ (xi + αh) sarà espresso mediante
la formula di Newton all’indietro con punto di partenza xi+1 (non xi come nelle formule
aperte):
1
(α − 1) α 2
Z
yi+1 = yi−k + h fi+1 + (α − 1) ∇fi+1 + ∇ fi+1 +
−k 2!
(α − 1) α (α + 1) 3 (α − 1) α (α + 1) . . . (α + r − 2) r
+ ∇ fi+1 + . . . + ∇ fi+1 dα; (5.106)
3! r!
da questa equazione, integrando con le stesse ipotesi fatte nel caso delle formule aperte,
si ottiene:
α 1
2
α α −
3 2
∇2 fi+1 +
yi+1 = yi−k + h
αfi+1 + α 2 − 1 ∇fi+1 + 2!
α2 1
5
α4 α3
α
2 2
α − + − −α
4 2 3 5 2 3
∇4 fi+1 . . .
+ ∇ fi+1 + . (5.107)
3! 4!
per k = 1, si ha:
1 2 3 1 4
yi+1 = yi−1 + h 2fi+1 − 2∇fi+1 + ∇ fi+1 + 0 ∇ fi+1 − ∇ fi+1 + . . . ; (5.109)
3 90
per k = 3, si ha:
20 2 8 3 14 4 5
yi+1 = yi−3 + h 4fi+1 − 8∇fi+1 + ∇ fi+1 − ∇ fi+1 + ∇ fi+1 + 0 ∇ fi+1 . . . .
3 3 45
(5.110)
5 EQUAZIONI DIFFERENZIALI ORDINARIE 121
Per queste formule l’errore dovuto al troncamento dei termini dopo quello contenente la
differenza di ordine r risulta
Z 1
r+2 (α − 1) α (α + 1)(α + 2) . . . (α + r − 1) (r+1)
h f (ξ) dα, xi−k < ξ < xi+1 . (5.111)
−k (r + 1)!
Come si può vedere, per valori dispari di k il coefficiente di ∇k+2 fi+1 si annulla. Quindi,
le formule di questo tipo più usate sono quelle con k dispari e r = k + 2.
Per k = 0 e r = 3, si ha:
1 1 2 1 3 19 5 (4)
yi+1 = yi + h fi+1 − ∇fi+1 − ∇ fi+1 − ∇ fi+1 , R=− h f (ξ) ;
2 12 24 720
(5.112)
per k = 1 e r = 3, si ha:
1 2 3 1
yi+1 = yi−1 + h 2fi+1 − 2∇fi+1 + ∇ fi+1 + 0 ∇ fi+1 , R = − h5 f (4) (ξ) ;
3 90
(5.113)
per k = 3 e r = 5, si ha:
20 2 8 3 14 4
yi+1 = yi−3 + h 4fi+1 − 8∇fi+1 + ∇ fi+1 − ∇ fi+1 + ∇ fi+1 ,
3 3 45
8 7 (6)
R=− h f (ξ) . (5.114)
945
In queste equazioni, il punto ξ giace nell’intervallo compreso tra il più piccolo e il più
grande xj nella formula. Inoltre, il termini R indica l’errori di troncamento locale per
un’unica applicazione della formula di integrazione nel caso in cui ψ (x) = f (x, y), yj =
y (xj ) , fj = (xj , (xj )) (j indica il pedice che identifica i punti considerati nella formula).
Le formule di integrazione cosı̀ ricavate possono essere espresse in funzione dei valori
approssimati fj invece che delle loro differenze all’indietro:
k = 0, r = 3:
h
yi+1 = yi + (9 fi+1 + 19 fi − 5 fi−1 + fi−2 ) , R = O(h5 ); (5.115)
24
k = 1, r = 3:
h
yi+1 = yi−1 + (fi+1 + 4 fi + fi−1 ) , R = O(h5 ); (5.116)
3
k = 3, r = 5:
2h
yi+1 = yi−3 + (7 fi+1 + 32 fi + 12 fi−1 + 32 fi−2 + 7 fi−3 ) , R = O(h7 ); (5.117)
45
Le formule di integrazione cosı̀ ricavate non consento di ricavare yi+1 in maniera diretta
poiché in generale fi+1 = f (xi+1 , yi+1 ). Quindi, ad eccezione dei casi in cui f dipende
5 EQUAZIONI DIFFERENZIALI ORDINARIE 122
solo da x, le formule di integrazione chiuse risultano implicite in yi+1 e vanno risolte iter-
ativamente. Una possibilità è quella di usare per la risoluzione il metodo delle successive
sostituzioni. Se yi+1,j è la j-esima approssimazione della soluzione, allora la relazione
ricorsiva della formula (5.116) può essere scritta come
h
yi+1,j+1 = yi−1 + [f (xi+1 , yi+1,j ) + 4fi + fi−1 ] . (5.118)
3
Qundi per risolvere questa equazione: (a) si assume un valore per yi+1,0 , (b) si calcola
f (xi+1 , yi+1,0 ), (c) si trova yi+1,1 con la formula ricorsiva, (d) si calcola poi f (xi+1 , yi+1,1 ) e
yi+1,2 con la formula ricorsiva, etc. Il processo continua fino a che la sequenza yi+1,0 , yi+1,1 , yi+1,2
non converge, ossia fino a che yi+1,j+1 non differisce da yi+1,j di un valore abbastanza pic-
colo. Per essere sicuri che la procedura fornisca una soluzione bisogna trovare le condizioni
per cui essa converge. Dato che yi−1 , fi , fi−1 , h, xi+1 sono costanti per un fissato valore di
i l’equazione (5.118) si può scrivere:
h
yi+1,j+1 = f (xi+1 , yi+1,j ) + c = F (yi+1,j ) (5.119)
3
dove c è una costante. Ricordando i criteri di convergenza per il metodo delle successive
sostituzioni, si nota che la convergenza avrà luogo se |F 0 (yi+1,j )| è minore di uno:
0 h ∂f (yi+1 )
|F (yi+1,j )| = < 1. (5.120)
3 ∂y
A causa della necessità del calcolo iterativo da eseguire ad ogni passo, il metodo multi-step
chiuso appena descritto (k = 1 e r = 3) è sicuramente più complicato rispetto al metodo
multi-step della formula aperta
4h
R = O h5
yi+1 = yi−3 + (2fi − fi−1 + 2fi−2 )
3
ricavata per k = 3 e r = 3, ed equivalente in termini di ordine di grandezza dell’errore.
Tuttavia la formula aperta non è usata quasi mai per generare una sequenza di valori
della soluzione y1 , y2 , . . . , yn . I metodi chiusi sono preferiti perché l’errore di troncamento
locale ad essi associato è notevolmente inferiore rispetto a quello dei metodi aperti anche
se le due formule sono dello stesso ordine. Questo può essere notato osservando i termini
di errore della formula aperta,
14 5 (4)
R= h f (ξ) , ξ ∈ (xi−3 , xi+1 ) ,
45
5 EQUAZIONI DIFFERENZIALI ORDINARIE 123
corrector
h
R = O h5 .
yi+1 = yi−1 +(fi+1 + 4fi + fi−1 ) , (5.123)
3
Il metodo di Adams modificato, anch’esso del quarto ordine, si scrive:
predictor
h
R = O h5 ;
yi+1 = yi + (55fi − 59fi−1 + 37fi−2 − 9fi−3 ) , (5.124)
24
corrector
h
R = O h5 .
yi+1 = yi + (9fi+1 + 19fi − 5fi−1 + fi−2 ) , (5.125)
24