Anda di halaman 1dari 42

Capitolo 8

Metodi Numerici per


Equazioni Dierenziali
8.1. Equazioni alle dierenze
Un sistema di k equazioni alle dierenze del 1
o
ordine `e un sistema del
tipo
y
1,n+1
=
1
(n, y
1,n
, y
2,n
, . . . , y
k,n
)
y
2,n+1
=
2
(n, y
1,n
, y
2,n
, . . . , y
k,n
)
.
.
.
y
k,n+1
=
k
(n, y
1,n
, y
2,n
, . . . , y
k,n
)
n = 0, 1, 2, . . .
con y
i,0
, i = 1, . . . , k, quantit` a assegnate, ovvero con ovvio signicato
dei simboli
_

_
y
n+1
= G(n, y
n
)
y
0
assegnato.
(8.1)
Diamo ora le seguenti denizioni.
Denizione 8.1.1 Sia G : N R
k
R
k
. Allora una soluzione y
n
dellequazione (8.1) `e
281
282 CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI
a) stabile se per ogni > 0 esiste una costante > 0 tale che se
y
n
`e unulteriore soluzione di (8.1), per la quale
|y
0
y
0
| < : |y
n
y
n
| < , n = 1, 2, . . . , (8.2)
b) asintoticamente stabile se oltre a valere (8.2) vale
|y
n
y
n
|
n+
0.
c) relativamente stabile se (8.2) `e sostituita da
|y
n
y
n
|
|y
n
|
< n = 1, 2, . . . (8.3)
8.2. Stabilit`a di equazioni alle dierenze
Consideriamo lequazione alle dierenze
y
n+k
+ a
k1
y
n+k1
+ . . . + a
1
y
n+1
+ a
0
y
n
= b.
Posto
y
n
= y
n,1
y
n+1
= y
n,2
y
n+2
= y
n,3
y
n+3
= y
n,4
.
.
.
y
n+k1
= y
n,k
lequazione alle dierenze pu` o scriversi
y
n+1,1
= y
n,2
y
n+1,2
= y
n,3
.
.
.
y
n+1,k
= y
n+k
= b a
0
y
n,1
a
1
y
n,2
. . . a
k1
y
n,k
ovvero, posto
B =
_
_
_
_
_
_
_
_
_
0 1 O
0 0 1
.
.
.
.
.
.
.
.
.
O 0 0 1
a
0
. . . . . . a
k2
a
k1
_
_
_
_
_
_
_
_
_
y
n
=
_
_
_
_
_
_
_
_
_
y
n,1
y
n
y
n,2
y
n,3
.
.
.
y
n,k
_
_
_
_
_
_
_
_
_
8.2. STABILIT
`
A DI EQUAZIONI ALLE DIFFERENZE 283
d =
_
_
_
_
_
_
_
_
_
0
0
0
.
.
.
b
_
_
_
_
_
_
_
_
_
y
n+1
= By
n
+d. (8.4)
La matrice B del tipo appena denito prende il nome di matrice di
Frobenius.
Teorema 8.2.1 Ogni soluzione di sistema di equazioni alle dierenze
di ordine n omogenea a coecienti costanti `e stabile se la matrice di
Frobenius ha autovalori a parte reale non positiva e ogni autovalore a
parte reale nulla `e semplice. 2
Osservazione.
`
E immediato notare che
det(B rI) =
k

j=0
a
j
r
j
a
k
= 1.
Teorema 8.2.2 Una soluzione dellequazione alle dierenze del tipo
(8.4) risulta stabile se ogni radice del polinomio
(r) =
k

j=0
a
j
r
j
ha modulo minore di o uguale a 1 e quelle di modulo uguale a 1 sono
semplici, mentre risulter` a asintoticamente stabile se e solo se ogni radice
del polinomio suddetto ha modulo minore di 1.
Vogliamo risolvere ora la seguente equazione alle dierenze omogenea
di ordine k:
k

j=0
a
j
y
n+j
= 0. (8.5)
Cerchiamo una soluzione del tipo
y
n
= z
n
.
284 CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI
Deve essere necessariamente
k

j=0
a
j
z
n+j
= 0
cio`e
z
n
k

j=0
a
j
z
j
= 0.
Quindi se z `e una radice del polinomio
(r) =
k

j=0
a
j
r
j
allora z
n
`e una soluzione dellequazione alle dierenze. Inoltre si pu` o
provare che se z
1
, . . . , z
k
sono radici tutte distinte del polinomio (r)
allora la soluzione generale di (8.5) `e data da
y
n
(c
1
, . . . , c
k
) =
k

i=1
c
i
z
n
i
con c
1
, . . . , c
k
univocamente determinate dalla condizione iniziale.
8.3. Discretizzazione di problemi a valori iniziali
Consideriamo il problema a valori iniziali
y

= f(t, y(t)) a t b, y(a) = y


0
(8.6)
ed f funzione scalare
1
, f : R R. Una classe molto generale di metodi
per integrare numericamente lequazione (8.6) `e la seguente
k

j=0

j
y
n+j
= h(t
n
, . . . , t
n+k
, y
n
, . . . , y
n+k
; h),
k
= 1 (8.7)
qui t
n
= a + nh, h = (b a)/N detto passo di integrazione.
Due classi di metodi molto importanti contenute in (8.7) sono
1. i metodi multistep lineari (k-step)
2. i metodi Runge-Kutta.
1
Tutto quello che diremo per lequazione (8.6) pu` o essere applicato direttamente
a sistemi.
8.3. DISCRETIZZAZIONE DI PROBLEMI A VALORI INIZIALI 285
I metodi multistep
Supponiamo noti i valori (t
n+j
, y(t
n+j
)), per j = 0, . . . , k 1, e riscri-
viamo (8.6) nel seguente modo
y(t
n+k
) y(t
n
) =
_
t
n+k
tn
f(t, y(t))dt
utilizzando quindi una formula di quadratura per lintegrale a destra
abbiamo
y(t
n+k
) y(t
n
) =
k

j=0
h
j
f(t
n+j
, y(t
n+j
)) + errore
trascurando quindi in questa il termine di errore e indicando con y
n
unapprossimazione della soluzione teorica y(t
n
) otteniamo lo schema
numerico
y
n+k
y
n
=
k

j=0
h
j
f(t
n+j
, y
n+j
)
e quindi, la naturale generalizzazione
k

j=0

j
y
n+j
h
k

j=0

j
f
n+j
= 0, f
n+j
f(t
n+j
, y
n+j
). (8.8)
Se in (8.8)
k
= 0 il metodo si dice a k-step esplicito, altrimenti si dice
implicito.
I metodi Runge-Kutta
Ancora a partire da (8.6) possiamo scrivere
y(t
n+1
) y(t
n
) =
_
tn+h
tn
f(t, y(t))dt.
Posto t = t
n
+ hc:
y(t
n+1
) = y(t
n
) + h
_
1
0
f(t
n
+ hc, y(t
n
+ hc))dc =
= y(t
n
) + h
s

i=1
b
i
f(t
n
+ hc
i
, y(t
n
+ hc
i
)) + errore
286 CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI
e, per ogni ssato i compreso tra 1 ed s:
y(t
n
+ hc
i
) = y(t
n
) +
_
tn+hc
i
tn
f(t, y(t))dt =
= y(t
n
) + h
_
c
i
0
f(t
n
+ hc, y(t
n
+ hc))dc =
= y(t
n
) + h
s

j=1
a
ij
f(t
n
+ hc
j
, y(t
n
+ hc
j
)) + errore
i
.
Posto Y
i
= y(t
n
+hc
i
) e trascurando i termini di errore possiamo dedurre
il seguente schema:
y
n+1
= y
n
+ h
s

i=1
b
i
f(t
n
+ hc
i
, Y
i
) (8.9)
Y
i
= y
n
+ h
s

j=1
a
ij
f(t
n
+ hc
j
, Y
j
) (8.10)
detto metodo Runge-Kutta implicito a s-stages. Se le (8.10) sono so-
stituite da
Y
1
= y
n
(8.11)
Y
i
= y
n
+ h
i1

j=1
a
ij
f(t
n
+ hc
j
, Y
j
) (8.12)
allora si hanno i metodi Runge-Kutta espliciti a s-stages.
Osservazione. Nella maggior parte dei testi di analisi numerica gli
schemi Runge-Kutta vengono riportati in una forma diversa dalla (8.9)-
(8.10) ma facilmente deducibile da questa. Infatti, posto
K
i
= f(t
n
+ hc
i
, Y
i
)
abbiamo
_

_
y
n+1
= y
n
+ h
s

i=1
b
i
K
i
K
i
= f
_
_
t
n
+ hc
i
, y
n
+
s

j=1
a
ij
K
j
_
_
,
8.3. DISCRETIZZAZIONE DI PROBLEMI A VALORI INIZIALI 287
che `e la forma classica dei metodi Runge-Kutta.
Denizione 8.3.1 Sia y(t) la soluzione dellequazione dierenziale (8.6)
sullintervallo [a, b] e y
0
, y
1
, . . . , y
N
, Nh = b a, la soluzione approssi-
mata data dal metodo (8.7). Allora la quantit` a
max
0nN
[y(t
n
) y
n
[
`e detta errore globale di discretizzazione della soluzione approssimata.
Un naturale importante obiettivo `e fornire una stima del suddetto errore
e mostrare che la soluzione approssimata converge alla soluzione teorica
quando h tende a 0. Come primo passo verso questo obiettivo, introdu-
ciamo una quantit` a che `e pi` u facilmente calcolabile rispetto allerrore
globale.
Denizione 8.3.2 Assumiamo che (8.6) abbia una soluzione nell in-
tervallo [a, b]. Chiamiamo errore locale di discretizzazione (o di tronca-
mento) del metodo (8.7) in t [a, b] la quantit` a
(t; h) =
1
h
_
_
k

j=0

j
y(t + jh) h(t, . . . , t + hk, y(t), . . . , y(t + hk); h)
_
_
.
Per meglio comprendere il senso di tale denizione, assumiamo che i
valori y
n
, y
n+1
, . . . , y
n+k1
siano esatti (ipotesi locale) e allora conside-
riamo la quantit` a
E(t
n+k
; h) = [y(t
n+k
) y
n+k
[.
Analizziamo tale quantit` a per metodi espliciti e impliciti.
Metodi Espliciti
E(t
n+k
; h) = [y(t
n+k
) y
n+k
[ =
=

y(t
n+k
) +
k1

j=0

j
y
n+j
h(t
n
, . . . , t
n+k1
, y
n
, . . . , y
n+k1
; h)

=
288 CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI
=

j=0

j
y(t
n+j
) h(t
n
, . . . , t
n+k1
, y(t
n
), . . . , y(t
n+k1
); h)

=
= h[(t
n
; h)[.
Dunque
E(t
n+k
; h) = h[(t
n
; h)[ (8.13)
e perci` o lerrore locale di troncamento non `e altro che lerrore che si
commette in un singolo passo, rapportato ad h, ipotizzando che no al
passo precedente la soluzione sia stata calcolata esattamente.
8.3. DISCRETIZZAZIONE DI PROBLEMI A VALORI INIZIALI 289
Metodi Impliciti
Per i metodi impliciti assumiamo che la funzione sia derivabile (e
invero basterebbe anche la Lipschitzianit` a di ).
E(t
n+k
; h) = [y(t
n+k
) y
n+k
[ =
= [y(t
n+k
) +
k1

j=0

j
y
n+j
h(t
n
, . . . , t
n+k
, y
n
, . . . , y
n+k
; h)[ =
= [
k

j=0

j
y(t
n+j
) h(t
n
, . . . , t
n+k
, y(t
n
), . . . , y(t
n+k1
), y
n+k
; h)[ =
= [
k

j=0

j
y(t
n+j
) h(t
n
, . . . , t
n+k
, y(t
n
), . . . , y(t
n+k1
), y(t
n+k
); h)+
+h(t
n
, . . . , t
n+k
, y(t
n
), . . . , y(t
n+k1
), y(t
n+k
); h)+
h(t
n
, . . . , t
n+k
, y(t
n
), . . . , y(t
n+k1
), y
n+k
; h)[
h[(t
n
; h)[+h[

y
n+k
(t
n
, . . . , t
n+k
, y(t
n
), . . . , y(t
n+k1
),
n+k
; h)(y(t
n+k
)y
n+k
)[
h[(t
n
; h)[ + hL[y(t
n+k
) y
n+k
[ =
= h[(t
n
; h)[ + hLE(t
n+k
; h).
Qui L `e un limite superiore per [/y
n+k
[. Perci` o
E(t
n+k
; h) =
1
1 hL
h[(t
n
; h)[ (8.14)
e per h sucientemente piccolo
E(t
n+k
; h)

= h[(t
n
; h)[.
Denizione 8.3.3 Assumiamo che il problema di Cauchy (8.6) abbia
soluzione in [a, b]. Allora (8.7) `e consistente con (8.6) se
lim
h0
(h) = 0
dove
(h) = max
t[a,bkh]
[(t; h)[.
290 CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI
Teorema 8.3.1 Assumiamo che la soluzione del problema di Cauchy
(8.6) sia C
(1)
([a, b]), che la funzione sia continua rispetto a tutti i
suoi argomenti e, denito il polinomio
(r) =
k

j=0

j
r
j
Se
(1) = 0 (8.15)
e
(t, . . . , t, y(t), . . . , y(t); 0) =

(1)f(t, y(t)) t [a, b] (8.16)


allora, il metodo (8.7) `e consistente con lequazione (8.6). Inoltre se
y , 0 allora (8.15) e (8.16) sono anche condizioni necessarie per la
consistenza.
Dimostrazione.
1
h
k

j=0

j
y(t + jh) =
k

j=0
j
j
y(t + jh)
jh
=
=
k

j=0
j
j
_
y(t + jh) y(t)
jh
_
+
_
_
1
h
k

j=0

j
_
_
y(t) =
=
k

j=0
j
j
_
y(t + jh) y(t)
jh
y

(t)
_
+
1
h
y(t)
k

j=0

j
+
+y

(t)
k

j=0
j
j
=
=
k

j=0
j
j
g(t, jh) +
1
h
y(t)(1) + y

(t)

(1) =
= G(t, h) +
1
h
y(t)(1) + y

(t)

(1)
8.3. DISCRETIZZAZIONE DI PROBLEMI A VALORI INIZIALI 291
dove si `e posto
g(t, h) =
y(t + jh) y(t)
jh
y

(t)
e
G(t, h) =
k

j=0
j
j
g(t, jh).
Tenuto conto della denizione di errore locale di troncamento, possiamo
allora scrivere
(t; h) =
1
h
y(t)(1) + y

(t)

(1) + G(t, h)+


(t, t + h, . . . , t + kh, y(t), y(t + h), . . . , y(t + hk)).
Ora, poich`e G(t, h) tende a 0 quando h tende a 0, uniformemente
rispetto a t, e per la continuit` a di rispetto ai suoi argomenti, risulta
lim
h0
(t, t + h, . . . , t + kh, y(t), y(t + h), . . . , y(t + hk); h) =
(t, . . . , t, y(t), y(t), . . . , y(t); 0) t,
e da (8.15) e (8.16) segue
lim
h0
(t; h) = 0 t [a, b]
e dunque
lim
h0
(h) = 0.
Viceversa se
lim
h0
(h) = 0
e y(t) , 0 deve essere necessariamente (1) = 0 e da
G(t, h)
h0
0
consegue

(1)f(t, y(t)) = (t, . . . , t, y(t), y(t), . . . , y(t); 0). 2


292 CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI
Osservazione. Per i metodi multistep le condizioni (8.15) e (8.16)
diventano
k

j=0

j
= 0
e
k

j=0

j
=
k

j=0
j
j
,
ovvero, introdotto il polinomio
(r) =
k

j=0

j
r
j
le condizioni di consistenza diventano:
(1) = 0

(1) = (1).
I polinomi (r) e (r) si chiamano rispettivamente primo polinomio
caratteristico e secondo polinomio caratteristico. In particolare per i
metodi one-step deve essere

1
+
0
= 0 1 +
0
= 0
e
(t, . . . , t, y(t), y(t), . . . , y(t); 0) =

(1)f(t, y(t))
(t, . . . , t, y(t), y(t), . . . , y(t), 0) = f(t, y(t)). (8.17)
Quindi metodi one-step consistenti sono del tipo
y
n+1
= y
n
+ h [f(t
n
, y
n
) + (1 )f(t
n+1
, y
n+1
)]
con [0, 1]. Tra questi metodi i pi` u noti sono i seguenti:
= 1 : Metodo di Eulero Esplicito:
y
n+1
= y
n
+ hf(t
n
, y
n
)
= 0 : Metodo di Eulero Implicito:
y
n+1
= y
n
+ hf(t
n+1
, y
n+1
)
8.3. DISCRETIZZAZIONE DI PROBLEMI A VALORI INIZIALI 293
= 1/2 : Metodo dei Trapezi:
y
n+1
= y
n
+
h
2
[f(t
n
, y
n
) + f(t
n+1
, y
n+1
)] .
Notiamo (vedere (8.17)) che la consistenza implica che per h 0
lequazione alle dierenze che denisce il metodo numerico fornisce la
equazione dierenziale di partenza. Si pu` o allora essere tentati di con-
getturare che la consistenza di un metodo assicuri che lerrore globale di
troncamento tenda a zero per h 0. Ci` o `e vero per i metodi one-step
ma non `e necessariamente vero per i metodi multistep.
Denizione 8.3.4 Diremo che il metodo (8.7) `e zero stabile se ogni
soluzione dellequazione alle dierenze:
k

j=0

j
y
n+j
= 0,
k
= 1
`e stabile.
Per quanto visto nelle pagine precedenti possiamo riprendere la sud-
detta denizione nel seguente modo.
Condizione delle radici. Il metodo (8.7) `e 0-stabile se e solo se le
radici
1
, . . . ,
k
del polinomio
() =
k

j=0

j
soddisfano la condizione
[
i
[ 1, i = 1, . . . , n
e ogni radice di modulo 1 `e semplice.
Lemma 8.3.1 (Enunciato) Consideriamo lequazione alle dierenze
k

j=0

j
y
n+j
=
n
n = k, k + 1, . . . (8.18)
294 CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI
con y
0
, . . . , y
k1
assegnati. Assumiamo inoltre che le radici
1
, . . . ,
k
di
() =
k

j=0

j
= 0
soddisno la condizione
[
i
[ 1, i
e che ogni radice di modulo 1 sia semplice. Allora esiste una costante
c 1 tale che per ogni soluzione di (8.18) si ha:
[y
n
[ c
_
_
max
0ik1
[y
i
[ +
n

j=k
[
j
[
_
_
. n = k, k + 1, . . . 2
Teorema 8.3.2 (Consistenza + zero stabilit` a Convergenza.) Assu-
miamo
1) Il metodo (8.7) `e 0-stabile, ovvero
k

j=0

j
y
n+j
= 0 `e stabile;
2)
[(x
0
, . . . , x
k
, u
0
, . . . , u
k
; h) (x
0
, . . . , x
k
, v
0
, . . . , v
k
; h)[
c max
0ik
[u
i
v
i
[
per ogni x
0
, . . . , x
k
[a, b], e per ogni u
0
, . . . , u
k
, v
0
, . . . , v
k
e h 0:
3) (8.6) abbia una soluzione y(t) su [a, b];
e sia y
i
(h), i = 0, 1, . . . , una soluzione di (8.7), allora esistono due
costanti c
1
, c
2
indipendenti da h tali che
[y(a+nh)y
n
(h)[ c
1
r(h)+c
2
(h), n = k, k+1, . . . N = (ba)/h
dove
r(h) = max
0ik1
[y(a + ih) y
i
(h)[
8.3. DISCRETIZZAZIONE DI PROBLEMI A VALORI INIZIALI 295
e
(h) = max
t[a,b]
[(t, h)[.
In particolare se
lim
h0
r(h) = 0
e il metodo `e consistente allora
lim
h0,n+
y
n
(h) = y(t), dove t = a + nh.
Dimostrazione. Da
k

j=0

j
y
n+j
(h) h(t
n
, . . . , t
n+k
, y
n
(h), . . . , y
n+k
(h); h) = 0
e
k

j=0

j
y(t
n
+ jh) h(t
n
, . . . , t
n+k
, y(t
n
), . . . , y(t
n
+ kh); h) = h(t
n
, h)
sottraendo dalla prima la seconda e ponendo e
i
= y
i
(h) y(t
i
) segue:
k

j=0

j
e
n+j
+ h[(t
n
, . . . , t
n+k
, y(t
n
), . . . , y(t
n
+ kh); h)+
(t
n
, . . . , t
n+k
, y
n
(h), . . . , y
n+k
(h); h)] = h(t
n
, h)
ovvero
k

j=0

j
e
n+j
=
n+k
dove

n+k
= h[(t
n
, . . . , t
n+k
, y(t
n
), . . . , y(t
n
+ kh); h)+
(t
n
, . . . , t
n+k
, y
n
(h), . . . , y
n+k
(h); h)] + h(t
n
, h).
(8.19)
Dallipotesi di stabilit` a del metodo (8.7) e in virt` u del lemma 8.3.1
risulta
[e
n+k
[
_
max
0ik1
[e
i
[ +
n

i=0
[
k+i
[
_
n = 0, 1, . . . , > 1
296 CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI
Dalla (8.18) e dallipotesi 2)
[
i+k
[ h
_
c max
0jk
[e
i+j
[ +[(t
i
, h)[
_
e perci` o
[e
n+k
[ r(h) + h
n

i=0
_
c max
0jk
[e
i+j
[ +[(t
i
, h)[
_

r(h) + h(n + 1)c max


0in+k
[e
i
[ + h(h)(n + 1).
Posto

n
= max
0in
[e
i
[, n = 0, 1, 2, . . .
segue
[e
n+k
[ r(h) + ch(n + 1)
n+k
+ h(h)(n + 1)
questultima implica

n+k
r(h) + ch(n + 1)
n+k
+ h(h)(n + 1).
Fissato h, supponiamo che n possa prendere valori che soddisfano la
relazione
(n + 1)h
1
2
(c)
1

allora

k+n
r(h) +
1
2

k+n
+ (h)

k+n
2 [r(h) + (h)] , (n + 1)h
e perci` o
[e
k+n
[ 2 [r(h) + (h)] (8.20)
Questultima fornisce una stima dellerrore sullintervallo I
1
= [a, a+]
con indipendente da h. Consideriamo ora il successivo intervallo I
2
=
[a + , a + 2]. Possiamo allora assumere che i dati iniziali stiano in
I
1
e quindi gli errori per questi dati iniziali possono essere limitati da
(8.20). Perci` o
[e
k+n
[ 2 2[r(h) + (h)] + (h)
8.3. DISCRETIZZAZIONE DI PROBLEMI A VALORI INIZIALI 297
per tutti gli n tali che i punti di griglia che sono I
2
. Ora poich`e
lintervallo [a, b] pu` o essere coperto da un numero nito di intervalli
di ampiezza ne consegue la tesi. 2
Osservazione. Lipotesi 2) del teorema di convergenza `e una conse-
quenza della condizione di Lipschitz che normalmente poniamo su f per
lesistenza e lunicit` a della soluzione del problema di Cauchy. Infatti
assumiamo che f soddis
[f(t, u) f(t, v)[ L[u v[, t [a, b], u, v.
Allora, tenuto conto che per i metodi lineari k-step risulta
(x
0
, . . . , x
k
, u
0
, . . . , u
k
; h) =
k

j=0

j
f(x
j
, u
j
)
si ha
[(x
0
, . . . , x
k
, u
0
, . . . , u
k
; h) (x
0
, . . . , x
k
, v
0
, . . . , v
k
; h)[ =
=

j=0

j
f(x
j
, u
j
)
k

j=0

j
f(x
j
, v
j
)

j=0
[
j
[L[u
j
v
j
[
_
_
L
k

j=0
[
j
[
_
_
max
0jk
[u
j
v
j
[.
Unanaloga deduzione vale per i metodi Runge-Kutta. Un aspetto im-
portante dellerrore globale di troncamento `e la rapidit` a con la quale
tende a zero per h 0. Una prima misura di questa rapidit` a `e la se-
guente condizione sullerrore locale di troncamento (h). Richiamiamo
che la notazione
(h) = O(h
p
)
signica
lim
h0
(h)
h
p
= l
con l numero nito.
298 CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI
Denizione 8.3.5 Il metodo (8.7) ha ordine almeno p se per ogni pro-
blema di Cauchy con soluzione y(t) C
(p)
([a, b]) risulta
(h) = O(h
p
).
Il metodo ha esattamente ordine p se in aggiunta (h) ,= O(h
p+1
)
per qualche equazione dierenziale per la quale la soluzione y(t)
C
(p+1)
([a, b]).
Per quanto lordine di precisione di un metodo sia denito in termini
di errore locale di troncamento, esso pu` o essere legato allerrore globale
di troncamento. Infatti dal teorema di convergenza, abbiamo visto che
e
n
= [y(a + nh) y
n
(h)[ c
1
r(h) + c
2
(h), n k
r(h) = max
0ik1
[y(a + ih) y
i
(h)[.
Pertanto se r(h) = O(h
p
) e (h) = O(h
p
), risulta
e
n
= O(h
p
).
Condizioni di ordine per i metodi multistep
Consideriamo il metodo k-step
k

j=0

j
y
n+j
h
k

j=0

j
f(t
n
+ jh, y
n+j
) = 0,
k
= 1.
Dalla denizione di errore locale di troncamento abbiamo
(t
n
; h) =
1
h
_
_
k

j=0

j
y(t
n
+ jh) h
k

j=0

j
f(t
n
+ jh, y(t
n
+ jh))
_
_
8.3. DISCRETIZZAZIONE DI PROBLEMI A VALORI INIZIALI 299
dove y(t) denota la soluzione teorica del problema di Cauchy. Assu-
miamo che y(t) C
(p+1)
([a, b]). Possiamo allora scrivere
(t
n
; h) =
1
h
_
_
k

j=0

j
y(t
n
+ jh) h
k

j=0

j
y

(t
n
+ jh)
_
_
=
=
1
h
_
_
k

j=0

j
_
p

s=0
y
(s)
(t
n
)
(jh)
s
s!
+ y
(p+1)
(t
n
+ h)
(jh)
p+1
(p + 1)!
_
+
h
k

j=0

j
_
_
p1

s=0
(y

)
(s)
(t
n
)
(jh)
s
s!
+ y
(p+1)
(t
n
+ h)
(jh)
p
p!
_
_
_
_
con , ]0, j[.
(t
n
; h) =
1
h
p

s=0
_
_
k

j=0

j
j
s
s!
_
_
y
(s)
(t
n
)h
s
+ y
(p+1)
(t
n
+ h)
1
(p + 1)!
h
p
_
_
k

j=0

j
j
p+1
_
_
+

p1

s=0
_
_
k

j=0

j
j
s
s!
_
_
y
(s+1)
(t
n
)h
s
y
(p+1)
(t
n
+ h)
1
p!
h
p
_
_
k

j=0

j
j
p
_
_
=
=
1
h
_
_
k

j=0

j
y(t
n
)
_
_
+
p

s=1
_
_
k

j=0

j
j
s
s!
_
_
y
(s)
(t
n
)h
s1
+

p1

s=0
_
_
k

j=0

j
j
s
s!
_
_
y
(s+1)
(t
n
)h
s
+
+h
p
_
_
_
_
k

j=0

j
j
p+1
(p + 1)!
_
_
y
(p+1)
(t
n
+ h)
1
p!
_
_
k

j=0

j
j
p
_
_
y
(p+1)
(t
n
+ h)
_
_
=
=
1
h
_
_
k

j=0

j
y(t
n
)
_
_
+
p1

s=0
_
_
k

j=0

j
j
s+1
(s + 1)!
_
_
y
(s+1)
(t
n
)h
s
+

p1

s=0
_
_
k

j=0

j
j
s
s!
_
_
y
(s+1)
(t
n
)h
s
+ O(h
p
)
300 CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI
dove con O(h
p
) abbiamo indicato
h
p
_
_
_
_
k

j=0

j
j
p+1
(p + 1)!
_
_
y
(p+1)
(t
n
+ h)
1
p!
_
_
k

j=0

j
j
p
_
_
y
(p+1)
(t
n
+ h)
_
_
.
In denitiva abbiamo trovato
(t
n
; h) =
1
h
_
_
k

j=0

j
_
_
y(t
n
) +
p1

s=0
_
_
k

j=0

j
j
s+1
(s + 1)!

k

j=0

j
j
s
s!
_
_
y
(s+1)
(t
n
)h
s
+ O(h
p
)
pertanto anch`e il metodo abbia ordine p deve essere
k

j=0

j
= 0 (8.21)
k

j=0

j
j
s+1
(s + 1)!

k

j=0

j
j
s
s!
= 0 s = 0, 1, . . . , p 1. (8.22)
Si noti che le prime due condizioni sono le condizioni di consistenza.
Quando le suddette condizioni sono imposte si ha:
(t
n
; h) = h
p
_
_
k

j=0

j
j
p+1
(p + 1)!
_
_
y
(p+1)
(t
n
+ h)+

_
_
k

j=0

j
j
p
p!
_
_
y
(p+1)
(t
n
+ h) =
= h
p
(t
n
) + O(h
p+1
);
(8.23)
(t
n
) = l
p+1
y
(p+1)
(t
n
)h
p
+ O(h
p+1
),
l
p+1
=
k

j=0
_

j
j
p+1
(p + 1)!

j
j
p
p!
_
se y(t) C
(p+2)
([a, b]). Questultima uguaglianza segue sviluppando le
due derivate p + 1-esime attorno a t
n
. La quantit` a l
p+1
y
(p+1)
(t
n
)h
p
si
chiama parte principale dellerrore locale di troncamento.
8.3. DISCRETIZZAZIONE DI PROBLEMI A VALORI INIZIALI 301
Esercizio 8.3.1 Derivare un metodo del secondo ordine dallo schema

0
y
n
+
1
y
n+1
+ y
n+2
= h(
0
f
n
+
1
f
n+1
+
2
f
n+2
).
Si noti che un metodo lineare k-step ha essenzialmente 2k+1 parametri
liberi mentre per ottenere un metodo di ordine p si deve risolvere un
sistema lineare di p equazioni in 2k+1 incognite e perci` o si pu` o conget-
turare che il massimo ordine raggiungibile sia 2k+1. Comunque questo
risultato ha poca importanza in quanto vale il seguente teorema.
Teorema 8.3.3 (1
a
barriera di Dahlquist). Ogni metodo lineare k-
step di ordine maggiore di k + 2 `e instabile. In particolare se k `e pari
il massimo ordine per un metodo zero stabile `e k + 2, mentre se k `e
dispari il massimo ordine per un metodo zero stabile `e k + 1. 2
`
E importante realizzare che la convergenza di un metodo non `e, da sola,
garanzia di una soddisfacente procedura numerica. Consideriamo per
esempio il metodo
y
n+2
= y
n
+ 2hf
n+1
.
`
E facile vericare che tale metodo `e consistente e zero stabile e perci` o
convergente. Applichiamo ora tale metodo al problema test
y

= y y(0) = 1,
la cui soluzione teorica `e y(t) = e
t
. Abbiamo
y
n+2
+ 2hy
n+1
y
n
= 0 y
0
= 1, y
1
= noto.
La soluzione di questa equazione `e
y
n
=
_
1
2
+
y
1
+ h
2

1 + h
2
_

k
1
+ c
2
_
1
2

y
1
+ h
2

1 h
2
_

k
2
con
1
= h +

1 + h
2
e
2
= h

1 + h
2
. Notiamo che per h > 0

2
> 1 cosicch`e eccetto che per la scelta di y
1
che rende c
2
= 0 si ha
[y
n
[ + e perci` o in generale la soluzione numerica si discosta da
quella esatta di un valore arbitrariamente grande per t sucientemente
grande. Anche perch`e
1
1 per h 0 il suddetto comportamento
pu` o essere inibito se
2
tende ad un limite strettamente minore di 1.
Ci` o porta a denire la classe di metodi caratterizzata dalla seguente
propriet` a di stabilit` a.
302 CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI
Denizione 8.3.6 (Strong root condition). Un metodo `e fortemente
stabile se le radici del polinomio
() =
k

j=0

j
soddisfano la condizione
[
i
[ 1, i = 1, . . . , k
con n 1 radici strettamente minori di 1. Si noti che poich`e un me-
todo consistente ammette sempre la radice = 1 ((1) = 0) possiamo
asserire:
Un metodo consistente `e fortemente stabile se le radici
i
di () = 0
soddisfano
1
= 1 e [
i
[ < 1, i = 2, . . . , n.
Un metodo che non `e fortemente stabile pu` o esibire un comportamento
instabile specialmente per problemi con soluzione decrescente. Le radici

i
del polinomio () relative ad un metodo consistente sono usual-
mente catalogate in
= +1 radice principale (principal root)
[
i
[ 1, i = 2, . . . , k radici spurie (spurious roots)
[
i
[ = 1, i = 1, . . . , q radici essenziali (essential roots)
[
i
[ < 1, i = q + 1, . . . , k radici non essenziali (non essential roots).
Stabilit`a per h ssato (Assoluta stabilit`a)
Un metodo numerico fornisce risultati numerici accettabili quando il
passo di integrazione h dipende soltanto dallaccuratezza richiesta e la
sola propriet` a di convergenza di un metodo (consistenza + 0-stabilit` a),
pu` o non garantire ci` o. Non `e per esempio dicile costruire un metodo
del quarto ordine per il quale si abbia un comportamento di questo
tipo:
y(t
n
) y
n
(0.1) + (h = 0.1)
e
y(t
n
) y
n
(0.01) 0 (h = 0.01)
il che indica che pur essendo lerrore locale accettabile (t; 0.1) =
O(10
4
) nel primo caso si ha un comportamento instabile mentre nel
8.3. DISCRETIZZAZIONE DI PROBLEMI A VALORI INIZIALI 303
secondo caso le cose vanno come prevede la teoria. Cio`e in situazioni
come questa occorrerebbe, per poter applicare il metodo in tutta tran-
quillit` a, stimare la massima lunghezza del passo per cui si ha un com-
portamento instabile. A peggiorare le cose esistono anche metodi che
nonostante siano convergenti (e dunque stabili quando h tende a 0),
mostrano instabilit` a qualunque sia il passo h ssato. Consideriamo di
nuovo il metodo
y
n+2
= y
n
+ 2hf
n+1
y
0
= 1, y
1
= e
h
applicato allequazione
y

= y y(0) = 1
Abbiamo
y
n+2
= y
n
+ 2hy
n+1
. (8.24)
Detto () il polinomio caratteristico di (8.24) `e
(; h) = () h()
le cui radici sono
r
1
(h) = h +
_
1 + (h)
2
e
r
2
(h) = h
_
1 (h)
2
perci` o
y
n
(h) = c
1
(h)r
n
1
(h) + c
2
(h)r
n
2
(h)
dove
c
1
(h) =
1
2
+
e
h
h
2
_
1 (h)
2
c
2
(h) =
1
2

e
h
h
2
_
1 (h)
2
anche
c
1
(h) = 1 + O((h)
3
) c
2
(h) = O((h)
3
).
Per il metodo in esame lerrore locale di troncamento `e
(t, h) =
1
h
y(t + 2h) y(t) 2hf(t + h, y(t + h)) = O(h)
304 CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI
da cui
e
(t+2h)
e
t
2he
(t+h)
= O(h
2
)
e
2h
1 2he
h
= O(h
2
)
(e
h
; h) = (e
h
) h(e
h
) = O(h
2
)
(e
h
r
1
(h))(e
h
r
2
(h)) = O(h
2
).
Poich`e r
2
(h) tende a 1 quando h tende a 0
e
h
r
1
(h) = O(h
2
) r
1
(h) = e
h
+ O(h
2
).
Quindi
y
n
(h) = (1 + O((h)
3
)(e
h
+ O(h
2
)) + O((h
3
))r
t/h
2
(h).
Per h che tende a 0 e t sso
lim
n
y
n
(h) = e
t
e perci` o il metodo `e convergente. Per < 0 [r
2
(h)[ > 1 e quindi per
h piccolo quanto si vuole il secondo addendo aumenta con laumentare
di t e pu` o dominare laltro termine che `e quello che per h 0 tende
alla soluzione teorica. Se > 0 il secondo addendo tende a 0, per` o in
questo caso il problema `e instabile e la perturbazione sul primo termine
data da O(h
2
) + O((h)
3
)e
h
pu` o crescere esponenzialmente.
8.4. Assoluta stabilit`a
Dagli esempi precedenti appare evidente la necessit` a di una nuova
denizione di stabilit` a nella quale si pensi ssato il passo di integra-
zione h e si richieda che lerrore globale si propaghi in modo stabile
quando n . Per rendere tale denizione uno strumento utile per
lanalisi di stabilit` a `e necessario assumere come riferimento il compor-
tamento di metodi rispetto ad un particolare e ssato problema. A tale
scopo si assume come problema test il seguente
y

= y C. (8.25)
8.4. ASSOLUTA STABILIT
`
A 305
Quanto segue d` a una giusticazione alla scelta di tale problema. Esami-
niamo in primo luogo la reazione locale del problema di Cauchy allin-
troduzione di perturbazioni sul dato iniziale. A tal scopo supponiamo
di trovarci nel generico punto t

e di voler risolvere il problema


_

_
y

= f(t, y)
y(t

) = y

t t

. (8.26)
Introduciamo una perturbazione

nel dato y

ed esaminiamo il pro-
blema
_

_
z

= f(t, z)
z(t

) = y

.
(8.27)
Detta z(t) = y(t) +(t) la soluzione di questo problema, sottraendo da
(8.27) (8.26)
_

= f(t, y(t) + (t)) f(t, y(t))


(t

) =

.
Linearizziamo quindi questo problema sviluppando f(t, y(t) +(t)) nel-
lintorno della soluzione y(t).
f(t, y(t) + (t)) f(t, y(t)) =
f
y
(t, y(t)) + O(||
2
).
Nel caso di sistema di equazioni dierenziali del primo ordine la derivata
parziale di f rispetto a y indica la matrice jacobiana del sistema valu-
tata in (t, y(t)) e per t sucientemente vicino a t

possiamo supporre
f
y
(t, y(t))
f
y
(t

, y(t

)) = A.
Allora il modello linearizzato descrivente la propagazione degli errori
nei punti immediatamente successivi a t

ha la forma
_

(t) = A(t)
(t

) =

t t

.
306 CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI
Assunto che gli n autovalori
i
di A (in generale complessi) siano di-
stinti, possiamo porre A = TT
1
dove T = [u
1
[u
2
[ . . . [u
n
] `e la matrice
degli autovettori di A e = diag(
1
, . . . ,
n
). Perci` o
_

(t) = TT
1
(t)
(t

) =

(T
1

(t)) = (T
1
(t))
(t

) =

(8.28)
T
1
(t) = e
(tt)


(t) = Te
(tt)
w

= T
1

(t) =
n

j=1
e

j
(tt)
u
j
w

j
t t

e quindi
z(t) = y(t) +
n

j=1
e

j
(tt)
u
j
w

j
.
In denitiva le autosoluzioni
e

j
(tt)
u
j
caratterizzano la risposta locale del sistema alle perturbazioni sul dato
iniziale y

. Si noti che il sistema (8.28) rappresenta n equazioni dis-


accoppiate del tipo w

= w. Volendo risolvere il problema (8.26) con


un metodo numerico (one-step o multistep) `e necessario che la risposta
del sistema discreto in presenza di perturbazioni sia analoga a quella
del sistema continuo. Esaminiamo allora il comportamento del metodo
numerico quando applicato al problema test
_

_
y

= y
y(0) = 1
C, 0 t +
Sia dunque
k

j=0

j
y
n+j
h
k

j=0

j
f(t
n+j
, y
n+j
) = 0
8.4. ASSOLUTA STABILIT
`
A 307
il metodo multistep in esame che assumiamo consistente e zero stabile.
Applicato al problema test fornisce
k

j=0

j
y
n+j
h
k

j=0

j
y
n+j
= 0, y
0
, . . . , y
k1
noti (8.29)
perturbiamo ora i dati iniziali di una quantit` a
i
, i = 0, . . . , k 1.
Avremo
k

j=0

j
y
n+j
h
k

j=0

j
y
n+j
= 0, (8.30)
con y
0
= y
0
+
0
, . . . , y
k1
= y
k1
+
k1
, e, posto
n+j
= y
n+j
y
n+j
,
lequazione delle perturbazioni `e
k

j=0
(
j
h
j
)
n+j
= 0
0
, . . . ,
k1
noti (8.31)
e h = h. Indichiamo con (r; h) = (r) h(r) il polinomio di
stabilit` a di (8.31) dove
(r) =
k

j=0

j
r
j
(r) =
k

j=0

j
r
j
.
Ordiniamo quindi le radici r
i
( h), i = 1, . . . , n, di (r; h) in modo che
r
i
( h)
h0
r
i
, i = 1, 2, . . . , k
dove r
i
`e la i-esima radice di (r), ordinate come abbiamo visto in prece-
denza. Una volta note le radici r
i
( h) che per semplicare la descrizione
supponiamo distinte, la soluzione generale della (8.31) `e

n
=
k

i=1
c
i
r
n
i
( h)
dove le c
i
sono univocamente determinate da
0
, . . . ,
k1
. Delle k
soluzioni fondamentali solo quella relativa alla radice principale d` a
lapprossimazione alla soluzione del problema continuo y(t) = e
t
men-
tre le altre rappresentano soluzioni parassite sorte perch`e il modello
discreto `e di ordine k > 1. Dimostriamo infatti che
r
1
( h) = e
h
+ O(h
p+1
)
308 CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI
dove p `e lordine del metodo, e perci` o
r
n
1
( h) e
tn
= (t
n
).
A tal ne consideriamo lerrore locale di troncamento nel generico punto
t
(t; h) =
1
h
_
_
k

j=0

j
e
(t+jh)
h
k

j=0

j
e
(t+jh)
_
_
da cui
e
t
_
_
k

j=0
(
j
h
j
)(e
h
)
j
_
_
= O(h
p+1
)
ovvero
(e
h
) h(e
h
) = O(h
p+1
)
anche
(
k
h
k
)
k

i=1
(e
h
r
i
( h) = O(h
p+1
).
Avendo assunto il metodo consistente e zero stabile
r
1
( h) r
1
= +1 per h 0
r
i
( h) r
i
,= +1, per h 0
perci` o
r
1
( h) = e
h
+ O(h
p+1
).
Osserviamo anche che
r
1
( h) = 1 + h + O(h
2
) = r
1
+ h + O( h
2
).
Poich`e le radici r
i
, i = 1, . . . , q, sono semplici (zero stabilit` a) le cor-
rispondenti r
i
( h) continueranno ad essere semplici per [h[ suciente-
mente piccolo (le radici sono infatti funzioni continue dei coecienti)
anzi si potrebbe provare che sono funzioni analitiche di h. Possiamo
allora sviluppare r
i
( h), per i = 1, . . . , q, in serie di Taylor intorno a
h = 0. Abbiamo
r
i
( h) = r
i
(0) + hr

i
(0) + O(h
2
) i = 1, . . . , q (8.32)
8.4. ASSOLUTA STABILIT
`
A 309
e poich`e
(r
i
( h)) h(r
i
( h)) = 0
derivando rispetto a h segue:

(r
i
( h))r

i
( h) (r
i
( h)) h(r
i
( h))r

i
( h) = 0
cio`e
r

i
( h) =
(r
i
( h))

(r
i
( h)) h(r
i
( h))
poich`e il metodo `e zero stabile r
i
(0) = r
i
, i = 1, . . . , q, e quindi
r

i
(0) =
(r
i
)

(r
i
)
la (8.32) pu` o quindi scriversi
r
i
( h) = r
i
+ h
(r
i
)

(r
i
)
+ O(h
2
) =
= r
i
(1 + h) + O(h
2
),
i
= (r
i
)/(r
i

(r
i
)).
Da questultima
r
n
i
( h) r
n
i
e

i
hn
= r
n
i
e

i
tn
i = 1, . . . , q
dove

1
=
(1)

(1)
= 1
per la consistenza. In denitiva

n
=
k

i=1
c
i
r
n
i
( h) =
= c
1
e
tn
+
q

i=2
c
i
e

i
tn
r
n
i
+
k

i=q+1
c
i
r
n
i
( h),
(8.33)
cio`e
y
n
= y
n
+ c
1
e
tn
+
q

i=2
c
i
e

i
tn
+
k

i=q+1
c
i
r
n
i
( h). (8.34)
310 CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI
Come si vede il termine che simula la perturbazione nel caso continuo
`e quello dovuto alla radice r
1
(h) e pertanto se si vuole che la pertur-
bazione nel caso discreto simuli quella del caso continuo bisogna ab-
battere il contributo dovuto alle altre radici. Ci` o si ottiene imponendo
che [r
i
( h)[ < 1, i = 2, . . . , n. Inoltre se si vuole che la perturbazione
tenda a zero quando n tende a +allora deve essere anche [r
1
(h)[ < 1.
Possiamo allora dare la seguente denizione.
Denizione 8.4.1 Un metodo multistep `e detto assolutamente stabile
in una regione H
A
C se per ogni h H
A
si ha
[r
i
( h)[ < 1 i = 1, 2, . . . , k.
La regione
H
A
= h C[ [r
i
( h)[ < 1
si chiama regione di assoluta stabilit` a.
Osservazione 1. Ricordando che r
1
( h) = 1+ h+O( h
2
) `e facile osservare
che per 'e( h) sucientemente piccola ma positivo risulta [r
1
( h)[ > 1
cosicch`e un qualunque metodo k-step lineare consistente e zero stabile
risulta assolutamente instabile per tutte le h con 'e( h) > 0 suciente-
mente piccola. Ci` o signica che integrando numericamente lequazione
test y

= y, 'e > 0, per h sucientemente piccolo gli errori vengono


amplicati con il procedere del metodo. Tuttavia questa circostanza
non `e del tutto negativa. Infatti la soluzione teorica del problema
`e y(t) = e
t
e se il termine r
1
( h) domina le restanti radici allora la
propagazione degli errori `e analoga a quella della soluzione teorica e
perci` o la propagazione relativa degli errori `e limitata. Possiamo allora
dare la seguente denizione.
Denizione 8.4.2 Un metodo multistep lineare zero stabile `e detto rel-
ativamente stabile in una regione H
R
C se per ogni h H
R
si ha
[r
i
( h)[ < [r
1
( h)[ i = 2, . . . , k.
La regione
H
R
= h C[ [r
i
( h)[ < [r
1
( h)[ i = 2, . . . , k
si chiama regione di relativa stabilit` a.
8.4. ASSOLUTA STABILIT
`
A 311
Osservazione 2. Ricordiamo che il nellequazione test rappresenta
il generico autovalore della matrice jacobiana del sistema calcolato in
un punto t

, pertanto = (t

) pu` o avere 'e() < 0 in qualche punto


e 'e() > 0 in qualche altro; in questultimo caso sappiamo che per h
sucientemente piccolo il metodo risulta assolutamente instabile, tut-
tavia per quanto precedentemente detto ci` o non deve far preoccupare
purch`e il metodo risulti relativamente stabile per quel valore di h.
Il seguente criterio (di Schur) fornisce un metodo per la determinazione
della regione di assoluta stabilit` a di un metodo k-step lineare.
Denizione 8.4.3 Assegnato il polinomio
(r) =
k

i=0
c
i
r
i
con c
0
,= 0 e c
k
,= 0, questo si dice polinomio di Schur se le sue radici
r
i
, i = 1, . . . , k, soddisfano
[r
i
[ < 1 i = 1, 2, . . . , k.
Ci` o premesso sia
(r) =
k

i=0
c
i
r
i
un qualunque polinomio con c
0
,= e c
k
,= 0 e a partire da questo consi-
deriamo il polinomio

(r) =
k

i=0
c

ki
r
i
dove c

j
`e il complesso coniugato di c
j
, per ogni j, e successivamente il
polinomio

1
(r) =
1
r
det
_

(0)

(r)
(0) (r)
_
il cui grado `e k 1. Vale allora il seguente teorema.
Teorema 8.4.1 (di Schur). (r) `e un polinomio di Schur se e solo se
[

(0)[ > [(0)[


e
1
(r) `e un polinomio di Schur. 2
312 CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI
8.5. Metodi Runge-Kutta
Un metodo Runge-Kutta ha, come abbiamo visto, la seguente struttura:
y
n+1
= y
n
+ h
s

i=1
b
i
f(t
n
+ hc
i
, Y
ni
)
Y
n1
= y
n
Y
ni
= y
n
+ h
i1

j=1
a
ij
f(t
n
+ hc
j
, Y
nj
) i = 2, . . . , s
se esplicito, oppure
y
n+1
= y
n
+ h
s

i=1
b
i
f(t
n
+ hc
i
, Y
ni
)
Y
ni
= y
n
+ h
s

j=1
a
ij
f(t
n
+ hc
j
, Y
nj
) i = 1, . . . , s
se implicito. Normalmente questi metodi vengono cos` rappresentati:
c
1
a
11
a
12
. . . a
1s
c
2
a
21
a
22
. . . a
2s
.
.
.
.
.
.
.
.
.
.
.
.
c
s
a
s1
a
s2
. . . a
ss
s b
1
b
2
. . . b
s
o, in forma pi` u compatta
c A
s b
T
con A strettamente triangolare inferiore per i metodi espliciti e, in ge-
nerale, piena per i metodi impliciti. Tali metodi sono sicuramente zero
stabili in quanto (r) = r1 e perci` o lunica radice del primo polinomio
di stabilit` a `e r
1
= +1. Inoltre, essendo
(t, y(t)) = f(t, y(t))
s

i=1
b
i
ed avendosi
(1) = 0,

(1) = 1
8.5. METODI RUNGE-KUTTA 313
se
s

i=1
b
i
= 1
allora il metodo `e anche consistente e dunque convergente.
Condizioni di ordine
Per derivare le condizioni di ordine p di un metodo Runge-Kutta, basta,
in linea di principio, imporre che
(t; h) = O(h
p
).
A titolo di esempio consideriamo lo schema
y
n+1
= y
n
+ hb
1
f(t
n
, y
n
) + hb
2
f(t
n
+ hc
2
, Y
n2
)
Y
n2
= y
n
+ ha
21
f(t
n
, y
n
)
ovvero
y
n+1
= y
n
+ hb
1
f(t
n
, y
n
) + hb
2
f(t
n
+ hc
2
, y
n
+ ha
21
f(t
n
, y
n
))
e imponiamo le condizioni per avere ordine 2. Deve essere
(t; h) =
1
h
[y(t + h) y(t) hb
1
f(t, y(t))+
+hb
2
f(t + hc
2
, y(t) + ha
21
f(t, y(t)))] = O(h
2
).
314 CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI
Assunta y(t) di classe C
(3)
([a, b]) e sviluppando in serie di Taylor ab-
biamo
(t; h) =
1
h
y

(t)h + y

(t)
h
2
2
+ O(h
3
) hb
1
f(t, y(t))+
hb
2
[f(t, y(t)) +
f
t
(t, y(t))hc
2
+
f
y
(t, y(t))ha
21
f(t, y(t)) + O(h
2
)] =
=
1
h
f(t, y(t))h +
f
t
(t, y(t))
h
2
2
+
f
y
(t, y(t))f(t, y(t))
h
2
2
+ O(h
3
)+
hb
1
f(t, y(t)) hb
2
f(t, y(t))
f
t
(t, y(t))b
2
c
2
h
2
+

f
y
(t, y(t))f(t, y(t))h
2
b
2
a
21
+ O(h
3
).
Perci` o deve risultare
b
1
+ b
2
= 1 b
2
c
2
= 1/2 b
2
a
21
= 1/2.
Lesempio precedente fa intuire la dicolt` a di manipolazione per ot-
tenere metodi di ordine elevato. Esiste per` o una tecnica pi` u ranata
che utilizza strumenti di teoria dei gra e che permette unelegante
derivazione delle condizioni di ordine. Rinunciando allesposizione di
tale teoria, riportiamo di seguito le condizioni da soddisfare per ot-
8.5. METODI RUNGE-KUTTA 315
tenere metodi no allordine 4.
1
s

i=1
b
i
= 1
2
s

i=1
b
i
c
i
=
1
2
3
s

i=1
b
i
c
2
i
=
1
3
3
s

i,j=1
b
i
a
ij
c
i
=
1
6
4
s

i,j=1
b
i
c
3
i
=
1
4
4
s

i,j=1
b
i
c
i
a
ij
c
j
=
1
8
4
s

i,j=1
b
i
a
ij
c
2
j
=
1
12
4
s

i,j,k=1
b
i
a
ij
a
jk
c
k
=
1
24
.
Per lordine massimo `e possibile dedurre, dalla suddetta teoria, i se-
guenti risultati. Denotato con p = p

(s) lordine massimo raggiungibile


con un metodo Runge-Kutta esplicito si ha:
p

(s) = s 1 s 4
p

(5) = 4
p

(s) = s 1 5 s 7
p

(s) = s 2 8 s 9
p

(s) s 2 s 10.
Per un metodo Runge-Kutta implicito p

(s) = 2s.
316 CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI
Assoluta stabilit`a dei metodi Runge-Kutta
Applicando il metodo Runge-Kutta allequazione test y

= y, C,
si ha:
y
n+1
= y
n
+ h
s

i=1
b
i
Y
ni
, h = h
Y
ni
= y
n
+ h
s

j=1
a
ij
Y
nj
introdotti i vettori e = (1, 1, . . . , 1)
T
e Y
n
= (Y
n1
, Y
n2
, . . . , Y
ns
)
T
, queste
si riscrivono
y
n+1
= y
n
+ hb
T
Y
n
Y
n
= y
n
e + hAY
n
ovvero
y
n+1
= (1 + hb
T
(I hA)
1
e)y
n
anche
y
n+1
= R( h)y
n
dove R( h) = 1 + hb
T
(I hA)
1
e. Il metodo Runge-Kutta si dir` a as-
solutamente stabile nella regione 1
A
C se per ogni h 1
A
risulta
[R( h)[ < 1. Linsieme
1
A
= z C [ [R( h)[ < 1
si dice regione di assoluta stabilit` a.
Sulla funzione R(z)
Per i metodi Runge-Kutta espliciti la matrice A ha la seguente struttura
A =
_
_
_
_
_
_
_
_
_
0 0 . . . . . . 0
a
21
0 . . . . . . 0
a
31
a
32
0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
s1
a
s2
. . . a
s,s1
0
_
_
_
_
_
_
_
_
_
.
8.5. METODI RUNGE-KUTTA 317
Dal teorema di Cayley-Hamilton `e facile allora dedurre che A
s
= 0.
Osserviamo ora che per ogni matrice B di ordine s:
(I B)(I + B + B
2
+ . . . + B
s1
) = I B
s
e pertanto, per B = zA:
(I zA)(I + zA + z
2
A
2
+ . . . + z
s1
A
s1
) = I z
s
A
s
= I
ne consegue
(I zA)
1
=
s1

i=0
(zA)
i
.
La funzione R(z) pu` o allora scriversi
R(z) = 1 + zb
T
s1

i=0
z
i
A
i
e =
= 1 +
s

i=1
(b
T
A
i1
e)z
i
.
cio`e R(z) `e un polinomio di grado al pi` u s in z. Notiamo quindi che
per [z[ +, [R(z)[ +, perci` o la regione di assoluta stabilit` a di
un metodo Runge-Kutta esplicito `e necessariamente nita. Per quanto
concerne la funzione R(z) dei metodi impliciti, ricordando che per ogni
x, y R
s
,
det(I +xy
T
) = 1 +y
T
x
possiamo scrivere
R(z) = det(I + z(I zA)
1
eb
T
) =
= det
_
(I zA)
1
(I zA + zeb
T
)
_
=
=
det(I + z(eb
T
A))
det(I zA)
.
Pertanto R(z) `e una funzione razionale di z. Notiamo che per [z[
+, [R(z)[ pu` o tendere ad un limite nito e che pertanto i metodi
Runge-Kutta impliciti possono avere regioni di assoluta stabilit` a che
contengono tutto il semipiano a parte reale negativa del piano comp-
lesso.
318 CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI
Sulla implementazione dei metodi Runge-Kutta
I metodi Runge-Kutta espliciti non presentano alcun problema di im-
plementazione, nel senso che i valori Y
ni
, i = 1, . . . , s, possono essere
facilmente calcolati in cascata. Per i metodi Runge-Kutta impliciti `e
invece necessario risolvere ad ogni passo un sistema di equazioni in
generale non lineare. Consideriamo infatti il metodo
y
n+1
= y
n
+ h
s

i=1
b
i
f(t
n
+ hc
i
, Y
ni
),
Y
ni
= y
n
+ h
s

j=1
a
ij
f(t
n
+ hc
j
, Y
nj
) i = 1, . . . , s. (8.35)
Un metodo per risolvere (8.35) `e quello di utilizzare procedimenti iter-
ativi del tipo
Y
(k+1)
ni
= y
n
+ h
s

j=1
a
ij
f(t
n
+ hc
j
, Y
(k)
nj
) i = 1, . . . , s, k = 0, 1, 2, . . .
(8.36)
nella versione Jacobi, oppure del tipo
Y
(k+1)
ni
= y
n
+ h
i1

j=1
a
ij
f(t
n
+ hc
j
, Y
(k+1)
nj
) + h
s

j=i+1
a
ij
f(t
n
+ hc
j
, Y
(k)
nj
)
(8.37)
con i = 1, . . . , s e k = 0, 1, 2, . . ., nella versione Gauss-Seidel. Non `e
dicile vedere che se f `e Lipschitziana rispetto a y con costante di
Lipschitz L in [a, b] R allora sia (8.36) che (8.37) sono convergenti per
h sucientemente piccolo. Infatti posto
Y
(k)
n
=
_
_
_
_
_
_
_
Y
(k)
n1
Y
(k)
n2
.
.
.
Y
(k)
ns
_
_
_
_
_
_
_
F(t
n
, Y
n
) =
_
_
_
_
_
_
f(t
n
+ hc
1
, Y
n1
)
f(t
n
+ hc
2
, Y
n2
)
.
.
.
f(t
n
+ hc
s
, Y
ns
)
_
_
_
_
_
_
e =
_
_
_
_
_
_
1
1
.
.
.
1
_
_
_
_
_
_
8.5. METODI RUNGE-KUTTA 319
G =
_
_
_
_
_
_
_
_
_
0 0 . . . . . . 0
a
21
0 . . . . . . 0
a
31
a
32
0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
s1
a
s2
. . . a
s,s1
0
_
_
_
_
_
_
_
_
_
H =
_
_
_
_
_
_
_
_
_
0 a
12
a
13
. . . a
1s
0 0 a
23
. . . a
2s
0 0 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. a
s1,s
0 0 . . . 0 0
_
_
_
_
_
_
_
_
_
.
(8.36) e (8.37) si riscrivono rispettivamente
Y
(k+1)
n
= y
n
e + hAF(t
n
, Y
(k)
n
) (8.38)
Y
(k+1)
n
= y
n
e + hGF(t
n
, Y
(k+1)
n
) + hHF(t
n
, Y
(k)
n
). (8.39)
Detta Y

n
la soluzione di (8.38), si ha
|Y

n
Y
(k+1)
n
|

= |hAF(t
n
, Y

n
) hAF(t
n
, Y
(k)
n
)|


h|A|

|F(t
n
, Y

n
) F(t
n
, Y
(k)
n
)|

=
= h|A|

max
1is
[f(t
n
+ hc
i
, Y

ni
) f(t
n
+ hc
i
, Y
(k)
ni
)[
hL|A|

|Y

n
Y
(k)
n
|

.
Pertanto se hL|A|

q < 1
|Y

n
Y
(k)
n
|

q
k
|Y

n
Y
(0)
n
|

e il metodo converge qualunque sia il punto iniziale. Per le versione


Gauss-Seidel abbiamo
Y

n
Y
(k+1)
n
= hG
_
F(t
n
, Y
(k+1)
n
) F(t
n
, Y

n
)
_
+hH
_
F(t
n
, Y
(k)
n
) F(t
n
, Y

n
)
_
posto
e
(k)
n
= Y
(k)
n
Y

n
segue
e
(k+1)
n,i
= h
i1

j=1
a
ij
[f(t
n
+ hc
j
, Y
(k+1)
nj
) f(t
n
+ hc
j
, Y

nj
)]+
+h
n

j=i+1
a
ij
[f(t
n
+ hc
j
, Y
(k)
nj
) f(t
n
+ hc
i
, Y

nj
)]
320 CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI
[e
(k+1)
n,i
[ hL
i1

j=1
[a
ij
[[e
(k)
n,j
[ + h
n

j=i+1
[a
ij
[[e
(k)
n,j
[.
Sia r lindice tale che
[e
(k+1)
n,r
[ = |e
(k+1)
n
|

.
Allora
[e
(k+1)
n,r
[ hL
r1

j=1
[a
rj
[[e
(k)
n,j
[ + h
n

j=r+1
[a
rj
[[e
(k)
n,j
[.
|e
(k+1)
n
|

hL|e
(k+1)
n
|

+ hL|e
(k)
n
|

dove
=
r1

j=1
[a
rj
[ =
s

j=r+1
[a
rj
[
Allora
|e
(k+1)
n
|


hL
1 hL
|e
(k)
n
|

.
Assumiamo ora che
hLmax
1is
s

j=1,j=i
[a
ij
[ q < 1
allora sicuramente
hL( + ) q < 1
hL
1 hL
=
hL + hL hL
1 hL
=
=
hL( + ) hL
1 hL

q hL
1 hL
=
=
q hL + hLq hLq
1 hL
=
=
q(1 hL) + hL(q 1)
1 hL
=
= q
hL(1 q)
1 hL
q < 1.
8.5. METODI RUNGE-KUTTA 321
Pertanto
|Y

n
Y
(k)
n
|

q
k
|Y

n
Y
(0)
n
|

e dunque il metodo converge per ogni Y


(0)
n
.
Stima dellerrore di troncamento
Sia
y
n+1
= y
n
+ h(t
n
, y
n
; h)
un metodo one-step di ordine p 1. Come `e noto lerrore locale di
troncamento in t
n
`e dato da
(t
n
; h) =
1
h
[y(t
n
+ h) y(t
n
) h(t
n
, y
n
; h)]
dove y(t) `e la soluzione teorica del problema di Cauchy. Anche, se
y(t) C
(p+1)
([a, b])
(t
n
; h) = (t
n
)h
p
+ O(h
p+1
).
Indichiamo ora con y
n+1
(h) lapprossimazione in t
n+1
fornita dal metodo
(8.6) a partire da t
n
con passo di integrazione h, mentre denotiamo
con y

n+1
(h/2) lapprossimazione in t
n+1
a partire da t
n
con passo di
integrazione h/2. Allora
y
n+1
(h/2) = y
n
+
h
2
(t
n
, y
n
; h/2)
y

n+1
(h/2) = y
n+1
(h/2) +
h
2
(t
n
+ h/2, y
n
(h/2); h/2).
In ipotesi locale
y
n
= y(t
n
) y
n+1
(h/2) = y(t
n
+ h/2)
e
(t
n
+ h/2; h/2) =
2
h
[y(t
n
+ h/2) y(t
n
) h/2(t
n
, y(t
n
); h/2)]
(t
n
; h/2) =
2
h
[y(t
n
+ h) y(t
n
+ h/2) h/2(t
n
+ h/2, y(t
n
+ h/2); h/2)]
322 CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI
Ora
1
h
[y
n+1
(h) y

n+1
(h/2)] =
=
1
h
[y(t
n
) + h(t
n
, y(t
n
); h) y(t
n
) h/2(t
n
, y(t
n
); h/2)+
h/2(t
n
+ h/2, y(t
n
+ h/2); h/2)] =
= (t
n
, y(t
n
); h)
1
2
(t
n
, y(t
n
); h/2)
1
2
(t
n
+h/2, y(t
n
+h/2); h/2) =
=
1
h
[y(t
n
+ h) y(t
n
)] (t
n
; h)+

1
h
[y(t
n
+ h/2) y(t
n
)] +
1
2
(t
n
+ h/2; h/2)+
+
1
h
[y(t
n
+ h) y(t
n
+ h/2)] +
1
2
(t
n
; h/2) =
= (t
n
)h
p
+ O(h
p+1
) +
1
2
_
(t
n
+ h/2)
_
h
2
_
p
+ O(h
p+1
)
_
+
+
1
2
_
(t
n
)
_
h
2
_
p
+ O(h
p+1
)
_
=
= (t
n
)h
p
+
1
2
_
(t
n
)
_
h
2
_
p
+

(t
n
)
h
p+1
2
p+1
+ O(h
p+1
)
_
+
+
1
2
[(t
n
)
_
h
2
_
p
+ O(h
p+1
)] =
= (t
n
)h
p
_
1
2
p
1
_
+ O(h
p+1
).
In denitiva la parte principale dellerrore locale di troncamento pu` o
essere cos` stimata
(t
n
)h
p

2
p
2
p
1
1
h
[y
n+1
(h) y

n+1
(h/2)].