Anda di halaman 1dari 42

Capitolo 8

Metodi Numerici per


Equazioni Differenziali
8.1.

Equazioni alle differenze

Un sistema di k equazioni alle differenze del 1o ordine `e un sistema del


tipo
y1,n+1 = 1 (n, y1,n , y2,n , . . . , yk,n)
y2,n+1 = 2 (n, y1,n , y2,n , . . . , yk,n)
n = 0, 1, 2, . . .

..
.
yk,n+1 = k (n, y1,n , y2,n , . . . , yk,n )

con yi,0 , i = 1, . . . , k, quantit`a assegnate, ovvero con ovvio significato


dei simboli

yn+1 = G(n, yn )
(8.1)

y0 assegnato.

Diamo ora le seguenti definizioni.

Definizione 8.1.1 Sia G : N Rk Rk . Allora una soluzione yn


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
{
yn } `e unulteriore soluzione di (8.1), per la quale
ky0 y0 k <

kyn yn k < , n = 1, 2, . . . ,

(8.2)

b) asintoticamente stabile se oltre a valere (8.2) vale


n+

kyn yn k 0.
c) relativamente stabile se (8.2) `e sostituita da
kyn yn k
<
kyn k

8.2.

n = 1, 2, . . .

(8.3)

Stabilit`
a di equazioni alle differenze

Consideriamo lequazione alle differenze


yn+k + ak1 yn+k1 + . . . + a1 yn+1 + a0 yn = b.
Posto

yn =
yn+1 =
yn+2 =
yn+3 =
..
.

yn,1
yn,2
yn,3
yn,4

yn+k1 = yn,k
lequazione alle differenze pu`o scriversi
yn+1,1 = yn,2
yn+1,2 = yn,3
..
.
yn+1,k = yn+k = b a0 yn,1 a1 yn,2 . . . ak1 yn,k

ovvero, posto

B=

0
0

1
0 1
.. ..
.
.

O
..

O
0
0
1
a0 . . . . . . ak2 ak1

yn =

yn,1 yn
yn,2
yn,3
..
.
yn,k

283

` DI EQUAZIONI ALLE DIFFERENZE


8.2. STABILITA

d=

0
0
0
..
.
b

yn+1 = Byn + d.

(8.4)

La matrice B del tipo appena definito prende il nome di matrice di


Frobenius.
Teorema 8.2.1 Ogni soluzione di sistema di equazioni alle differenze
di ordine n omogenea a coefficienti 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
` immediato notare che
Osservazione. E
det(B rI) =

k
X

aj r j

ak = 1.

j=0

Teorema 8.2.2 Una soluzione dellequazione alle differenze del tipo


(8.4) risulta stabile se ogni radice del polinomio
(r) =

k
X

aj r j

j=0

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 differenze omogenea
di ordine k:
k
X

aj yn+j = 0.

j=0

Cerchiamo una soluzione del tipo


yn = z n .

(8.5)

284

CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI

Deve essere necessariamente


k
X

aj z n+j = 0

j=0

cio`e
z

k
X

aj z j = 0.

j=0

Quindi se z `e una radice del polinomio


(r) =

k
X

aj r j

j=0

allora z n `e una soluzione dellequazione alle differenze. Inoltre si pu`o


provare che se z1 , . . . , zk sono radici tutte distinte del polinomio (r)
allora la soluzione generale di (8.5) `e data da
yn (c1 , . . . , ck ) =

k
X

ci zin

i=1

con c1 , . . . , ck univocamente determinate dalla condizione iniziale.

8.3.

Discretizzazione di problemi a valori iniziali

Consideriamo il problema a valori iniziali


y 0 = f (t, y(t))

a t b, y(a) = y0

(8.6)

ed f funzione scalare1 , f : R R. Una classe molto generale di metodi


per integrare numericamente lequazione (8.6) `e la seguente
k
X

j yn+j = h(tn , . . . , tn+k , yn , . . . , yn+k ; h),

k = 1

(8.7)

j=0

qui tn = 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 (tn+j , y(tn+j )), per j = 0, . . . , k 1, e riscriviamo (8.6) nel seguente modo
y(tn+k ) y(tn ) =

tn+k
tn

f (t, y(t))dt

utilizzando quindi una formula di quadratura per lintegrale a destra


abbiamo
y(tn+k ) y(tn ) =

k
X

hj f (tn+j , y(tn+j )) + errore

j=0

trascurando quindi in questa il termine di errore e indicando con yn


unapprossimazione della soluzione teorica y(tn ) otteniamo lo schema
numerico
yn+k yn =

k
X

hj f (tn+j , yn+j )

j=0

e quindi, la naturale generalizzazione


k
X

j=0

j yn+j h

k
X

j fn+j = 0,

fn+j f (tn+j , yn+j ).

j=0

(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(tn+1 ) y(tn ) =

tn +h
tn

f (t, y(t))dt.

Posto t = tn + hc:
y(tn+1 ) = y(tn ) + h
= y(tn ) + h

1
0

s
X
i=1

f (tn + hc, y(tn + hc))dc =


bi f (tn + hci , y(tn + hci )) + errore

286

CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI

e, per ogni fissato i compreso tra 1 ed s:


y(tn + hci ) = y(tn ) +

tn +hci
tn

= y(tn ) + h

= y(tn ) + h

s
X

ci
0

f (t, y(t))dt =

f (tn + hc, y(tn + hc))dc =


aij f (tn + hcj , y(tn + hcj )) + errorei .

j=1

Posto Yi = y(tn +hci ) e trascurando i termini di errore possiamo dedurre


il seguente schema:
yn+1 = yn + h

s
X

bi f (tn + hci , Yi )

s
X

aij f (tn + hcj , Yj )

(8.9)

i=1

Yi = y n + h

(8.10)

j=1

detto metodo Runge-Kutta implicito a s-stages. Se le (8.10) sono sostituite da


Y1 = y n
Yi = y n + h

(8.11)
i1
X

aij f (tn + hcj , Yj )

(8.12)

j=1

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
Ki = f (tn + hci , Yi )
abbiamo

yn+1 = yn + h

s
X

b i Ki

i=1

Ki = f tn + hci , yn +

s
X

j=1

aij Kj ,

8.3. DISCRETIZZAZIONE DI PROBLEMI A VALORI INIZIALI

287

che `e la forma classica dei metodi Runge-Kutta.


Definizione 8.3.1 Sia y(t) la soluzione dellequazione differenziale (8.6)
sullintervallo [a, b] e y0 , y1 , . . . , yN , N h = b a, la soluzione approssimata data dal metodo (8.7). Allora la quantit`
a
max |y(tn ) yn |

0nN

`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, introduciamo una quantit`a che `e pi`
u facilmente calcolabile rispetto allerrore
globale.
Definizione 8.3.2 Assumiamo che (8.6) abbia una soluzione nell intervallo [a, b]. Chiamiamo errore locale di discretizzazione (o di troncamento) del metodo (8.7) in t [a, b] la quantit`
a

k
1 X
(t; h) = j y(t + jh) h(t, . . . , t + hk, y(t), . . . , y(t + hk); h) .
h j=0

Per meglio comprendere il senso di tale definizione, assumiamo che i


valori yn , yn+1 , . . . , yn+k1 siano esatti (ipotesi locale) e allora consideriamo la quantit`a
E(tn+k ; h) = |y(tn+k ) yn+k |.
Analizziamo tale quantit`a per metodi espliciti e impliciti.
Metodi Espliciti
E(tn+k ; h) = |y(tn+k ) yn+k | =



k1
X

y(tn+k ) +
j yn+j


j=0




h(tn , . . . , tn+k1 , yn , . . . , yn+k1 ; h)

288

CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI



k

X


y(t
)

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


j=0

= h| (tn ; h)|.

Dunque
E(tn+k ; h) = h| (tn ; 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 fino al
passo precedente la soluzione sia stata calcolata esattamente.

289

8.3. DISCRETIZZAZIONE DI PROBLEMI A VALORI INIZIALI

Metodi Impliciti
Per i metodi impliciti assumiamo che la funzione sia derivabile (e
invero basterebbe anche la Lipschitzianit`a di ).
E(tn+k ; h) = |y(tn+k ) yn+k | =
= |y(tn+k ) +
=|
=|

k
X

j=0

k
X

j=0

k1
X
j=0

j yn+j h(tn , . . . , tn+k , yn , . . . , yn+k ; h)| =

j y(tn+j ) h(tn , . . . , tn+k , y(tn ), . . . , y(tn+k1), yn+k ; h)| =

j y(tn+j ) h(tn , . . . , tn+k , y(tn ), . . . , y(tn+k1), y(tn+k ); h)+


+h(tn , . . . , tn+k , y(tn ), . . . , y(tn+k1 ), y(tn+k ); h)+
h(tn , . . . , tn+k , y(tn ), . . . , y(tn+k1), yn+k ; h)|

h| (tn ; h)|+h|

(tn , . . . , tn+k , y(tn ), . . . , y(tn+k1), n+k ; h)(y(tn+k )yn+k )|


yn+k
h| (tn ; h)| + hL|y(tn+k ) yn+k | =
= h| (tn ; h)| + hLE(tn+k ; h).

Qui L `e un limite superiore per |/yn+k |. Perci`o


1
h| (tn ; h)|
1 hL

E(tn+k ; h) =

(8.14)

e per h sufficientemente piccolo


E(tn+k ; h)
= h| (tn ; h)|.
Definizione 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 (h) = 0

h0

dove
(h) =

max | (t; h)|.

t[a,bkh]

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, definito il polinomio
(r) =

k
X

j r j

j=0

Se
(1) = 0

(8.15)

e
(t, . . . , t, y(t), . . . , y(t); 0) = 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 6 0 allora (8.15) e (8.16) sono anche condizioni necessarie per la
consistenza.
Dimostrazione.
k
k
X
y(t + jh)
1X
j y(t + jh) =
jj
=
h j=0
jh
j=0

k
X

jj

"

jj

"

j=0

k
X

j=0

+y 0 (t)

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

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

k
X

jj =

j=0

k
X

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

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

8.3. DISCRETIZZAZIONE DI PROBLEMI A VALORI INIZIALI

291

dove si `e posto
g(t, h) =

y(t + jh) y(t)


y 0 (t)
jh

e
G(t, h) =

k
X

jj g(t, jh).

j=0

Tenuto conto della definizione di errore locale di troncamento, possiamo


allora scrivere
(t; h) =

1
y(t)(1) + y 0 (t)0 (1) + G(t, h)+
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 (t, t + h, . . . , t + kh, y(t), y(t + h), . . . , y(t + hk); h) =

h0

(t, . . . , t, y(t), y(t), . . . , y(t); 0)

t,

e da (8.15) e (8.16) segue


lim (t; h) = 0

t [a, b]

h0

e dunque
lim (h) = 0.

h0

Viceversa se
lim (h) = 0

h0

e y(t) 6 0 deve essere necessariamente (1) = 0 e da


h0

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

292

CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI

Osservazione.
diventano

Per i metodi multistep le condizioni (8.15) e (8.16)


k
X

j = 0

j=0

k
X

j =

j=0

k
X

jj ,

j=0

ovvero, introdotto il polinomio


(r) =

k
X

j r j

j=0

le condizioni di consistenza diventano:


0 (1) = (1).

(1) = 0

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) = 0 (1)f (t, y(t))
(t, . . . , t, y(t), y(t), . . . , y(t), 0) = f (t, y(t)).
Quindi metodi one-step consistenti sono del tipo
yn+1 = yn + h [f (tn , yn ) + (1 )f (tn+1 , yn+1 )]
con [0, 1]. Tra questi metodi i pi`
u noti sono i seguenti:
= 1 : Metodo di Eulero Esplicito:
yn+1 = yn + hf (tn , yn )
= 0 : Metodo di Eulero Implicito:
yn+1 = yn + hf (tn+1 , yn+1 )

(8.17)

8.3. DISCRETIZZAZIONE DI PROBLEMI A VALORI INIZIALI

293

= 1/2 : Metodo dei Trapezi:


yn+1 = yn +

h
[f (tn , yn ) + f (tn+1 , yn+1 )] .
2

Notiamo (vedere (8.17)) che la consistenza implica che per h 0


lequazione alle differenze che definisce il metodo numerico fornisce la
equazione differenziale di partenza. Si pu`o allora essere tentati di congetturare 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.
Definizione 8.3.4 Diremo che il metodo (8.7) `e zero stabile se ogni
soluzione dellequazione alle differenze:
k
X

j yn+j = 0,

k = 1

j=0

`e stabile.
Per quanto visto nelle pagine precedenti possiamo riprendere la suddetta definizione nel seguente modo.
Condizione delle radici. Il metodo (8.7) `e 0-stabile se e solo se le
radici 1 , . . . , k del polinomio
() =

k
X

j j

j=0

soddisfano la condizione
|i | 1,

i = 1, . . . , n

e ogni radice di modulo 1 `e semplice.


Lemma 8.3.1 (Enunciato) Consideriamo lequazione alle differenze
k
X

j=0

j yn+j = n

n = k, k + 1, . . .

(8.18)

294

CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI

con y0 , . . . , yk1 assegnati. Assumiamo inoltre che le radici 1 , . . . , k


di
() =

k
X

j j = 0

j=0

soddisfino la condizione
|i | 1,

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:

|yn | c max |yi | +


0ik1

n
X

j=k

|j | .

n = k, k + 1, . . . 2

Teorema 8.3.2 (Consistenza + zero stabilit`


a Convergenza.) Assumiamo
1) Il metodo (8.7) `e 0-stabile, ovvero
k
X

j yn+j = 0 `e stabile;

j=0

2)
|(x0 , . . . , xk , u0 , . . . , uk ; h) (x0 , . . . , xk , v0 , . . . , vk ; h)|
c max |ui vi |
0ik

per ogni x0 , . . . , xk [a, b], e per ogni u0 , . . . , uk , v0 , . . . , vk e h 0:


3) (8.6) abbia una soluzione y(t) su [a, b];
e sia yi (h), i = 0, 1, . . . , una soluzione di (8.7), allora esistono due
costanti c1 , c2 indipendenti da h tali che
|y(a+nh)yn (h)| c1 r(h)+c2 (h),

n = k, k+1, . . . N = (ba)/h

dove
r(h) = max |y(a + ih) yi (h)|
0ik1

8.3. DISCRETIZZAZIONE DI PROBLEMI A VALORI INIZIALI

295

e
(h) = max | (t, h)|.
t[a,b]

In particolare se
lim r(h) = 0

h0

e il metodo `e consistente allora


lim

h0,n+

yn (h) = y(t),

dove t = a + nh.

Dimostrazione. Da
k
X

j=0

j yn+j (h) h(tn , . . . , tn+k , yn (h), . . . , yn+k (h); h) = 0

e
k
X

j=0

j y(tn + jh) h(tn , . . . , tn+k , y(tn ), . . . , y(tn + kh); h) = h (tn , h)

sottraendo dalla prima la seconda e ponendo ei = yi (h) y(ti ) segue:


k
X

j en+j + h[(tn , . . . , tn+k , y(tn ), . . . , y(tn + kh); h)+

j=0

ovvero

(tn , . . . , tn+k , yn (h), . . . , yn+k (h); h)] = h (tn , h)


k
X

j en+j = n+k

j=0

dove
n+k = h[(tn , . . . , tn+k , y(tn ), . . . , y(tn + kh); h)+
(8.19)
(tn , . . . , tn+k , yn (h), . . . , yn+k (h); h)] + h (tn , h).
Dallipotesi di stabilit`a del metodo (8.7) e in virt`
u del lemma 8.3.1
risulta
|en+k |

max |ei | +

0ik1

n
X
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 |ei+j | + | (ti , h)|


0jk

e perci`o
|en+k | r(h) + h

n 
X
i=0

c max |ei+j | + | (ti , h)|


0jk

r(h) + h(n + 1)c max |ei | + h (h)(n + 1).


0in+k

Posto
n = max |ei |,
0in

n = 0, 1, 2, . . .

segue
|en+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
1
(n + 1)h (c)1
2
allora
1
k+n r(h) + k+n + (h)

2
k+n 2 [r(h) + (h)] ,
(n + 1)h
e perci`o
|ek+n | 2 [r(h) + (h)]

(8.20)

Questultima fornisce una stima dellerrore sullintervallo I1 = [a, a + ]


con indipendente da h. Consideriamo ora il successivo intervallo I2 =
[a + , a + 2]. Possiamo allora assumere che i dati iniziali stiano in
I1 e quindi gli errori per questi dati iniziali possono essere limitati da
(8.20). Perci`o
|ek+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 I2 . Ora poich`e
lintervallo [a, b] pu`o essere coperto da un numero finito di intervalli
di ampiezza ne consegue la tesi. 2
Osservazione. Lipotesi 2) del teorema di convergenza `e una consequenza della condizione di Lipschitz che normalmente poniamo su f per
lesistenza e lunicit`a della soluzione del problema di Cauchy. Infatti
assumiamo che f soddisfi
|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


(x0 , . . . , xk , u0 , . . . , uk ; h) =

k
X

j f (xj , uj )

j=0

si ha
|(x0 , . . . , xk , u0 , . . . , uk ; h) (x0 , . . . , xk , v0 , . . . , vk ; h)| =
=

k
X

j=0



k

k
X
X


j f (xj , uj )
j f (xj , vj )

j=0

j=0

|j |L|uj vj | L

k
X

j=0

|j | max |uj vj |.
0jk

Unanaloga deduzione vale per i metodi Runge-Kutta. Un aspetto importante 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 seguente condizione sullerrore locale di troncamento (h). Richiamiamo
che la notazione
(h) = O(hp )
significa
(h)
=l
h0 hp
lim

con l numero finito.

298

CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI

Definizione 8.3.5 Il metodo (8.7) ha ordine almeno p se per ogni problema di Cauchy con soluzione y(t) C (p) ([a, b]) risulta
(h) = O(hp ).
Il metodo ha esattamente ordine p se in aggiunta (h) 6= O(hp+1 )
per qualche equazione differenziale per la quale la soluzione y(t)
C (p+1) ([a, b]).
Per quanto lordine di precisione di un metodo sia definito in termini
di errore locale di troncamento, esso pu`o essere legato allerrore globale
di troncamento. Infatti dal teorema di convergenza, abbiamo visto che
en = |y(a + nh) yn (h)| c1 r(h) + c2 (h),

nk

r(h) = max |y(a + ih) yi (h)|.


0ik1

Pertanto se r(h) = O(hp ) e (h) = O(hp ), risulta


en = O(hp ).

Condizioni di ordine per i metodi multistep


Consideriamo il metodo k-step
k
X

j=0

j yn+j h

k
X

j f (tn + jh, yn+j ) = 0,

k = 1.

j=0

Dalla definizione di errore locale di troncamento abbiamo

k
k
X
1 X
j f (tn + jh, y(tn + jh))
(tn ; h) = j y(tn + jh) h
h j=0
j=0

299

8.3. DISCRETIZZAZIONE DI PROBLEMI A VALORI INIZIALI

dove y(t) denota la soluzione teorica del problema di Cauchy. Assumiamo che y(t) C (p+1) ([a, b]). Possiamo allora scrivere

k
k
X
1 X
(tn ; h) =
j y(tn + jh) h
j y 0 (tn + jh) =
h j=0
j=0

p
k
X
(jh)s
(jh)p+1
1 X
=
j
y (s) (tn )
+ y (p+1) (tn + h)
+
h j=0
s!
(p + 1)!
s=0

p1
X

k
X

(jh)p
(jh)s
+ y (p+1) (tn + h)
h
j (y 0 )(s) (tn )
s!
p!
s=0
j=0

con , ]0, j[.

p
k
k
X
X
1X
js
1

j y (s) (tn )hs + y (p+1) (tn + h)


hp j j p+1 +
(tn ; h) =
h s=0 j=0 s!
(p + 1)!
j=0
p1
X

k
X

k
X
js
1
j y (s+1) (tn )hs y (p+1) (tn + h) hp j j p =
s!
p!
s=0 j=0
j=0

p
k
k
X
X
1 X
js

j y(tn ) +
j y (s) (tn )hs1 +
=
h j=0
s!
s=1 j=0

p1
X
s=0

k
X

j=0

j (s+1)
y
(tn )hs +
s!

k
X

k
1 X
j p+1 (p+1)
+hp j
y
(tn + h) j j p y (p+1) (tn + h) =
(p + 1)!
p! j=0
j=0

p1
k
k
X X
1 X
j s+1 (s+1)

=
j y(tn ) +
j
y
(tn )hs +
h j=0
(s
+
1)!
s=0 j=0
p1
X

k
X

js
j y (s+1) (tn )hs + O(hp )
s!
s=0 j=0

300

CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI

dove con O(hp ) abbiamo indicato

k
1 X
j p+1 (p+1)
y
(tn + h) j j p y (p+1) (tn + h).
hp j
(p + 1)!
p! j=0
j=0
k
X

In definitiva abbiamo trovato

p1
k
k
k
X X
X
j s+1
js
1 X

(tn ; h) = j y(tn ) +
j

j y (s+1) (tn )hs + O(hp )


h j=0
(s + 1)! j=0 s!
s=0 j=0

pertanto affinch`e il metodo abbia ordine p deve essere


k
X

j = 0

(8.21)

j=0
k
X

j=0

k
X
j s+1
js
j = 0

(s + 1)! j=0 s!

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:

k
X

j p+1 (p+1)
(tn ; h) = hp j
y
(tn + h)+
(p + 1)!
j=0

k
X

jp
j y (p+1) (tn + h) =
p!
j=0

(8.23)

= hp (tn ) + O(hp+1 );
(tn ) = lp+1 y (p+1) (tn )hp + O(hp+1 ),
lp+1 =

k
X

j=0

j p+1
jp
j
j
(p + 1)!
p!

se y(t) C (p+2) ([a, b]). Questultima uguaglianza segue sviluppando le


due derivate p + 1-esime attorno a tn . La quantit`a lp+1 y (p+1) (tn )hp si
chiama parte principale dellerrore locale di troncamento.

301

8.3. DISCRETIZZAZIONE DI PROBLEMI A VALORI INIZIALI

Esercizio 8.3.1 Derivare un metodo del secondo ordine dallo schema


0 yn + 1 yn+1 + yn+2 = h(0 fn + 1 fn+1 + 2 fn+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 congetturare che il massimo ordine raggiungibile sia 2k + 1. Comunque questo
risultato ha poca importanza in quanto vale il seguente teorema.
Teorema 8.3.3 (1a barriera di Dahlquist). Ogni metodo lineare kstep 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
` importante realizzare che la convergenza di un metodo non `e, da sola,
E
garanzia di una soddisfacente procedura numerica. Consideriamo per
esempio il metodo
yn+2 = yn + 2hfn+1 .
` facile verificare che tale metodo `e consistente e zero stabile e perci`o
E
convergente. Applichiamo ora tale metodo al problema test
y 0 = y

y(0) = 1,

la cui soluzione teorica `e y(t) = et . Abbiamo


yn+2 + 2hyn+1 yn = 0

y0 = 1, y1 = noto.

La soluzione di questa equazione `e


!

y1 + h
y1 + h
1
1
+

k2
yn =
k1 + c2
2
2 2 1+h
2 2 1 h2

con 1 = h + 1 + h2 e 2 = h 1 + h2 . Notiamo che per h > 0


2 > 1 cosicch`e eccetto che per la scelta di y1 che rende c2 = 0 si ha
|yn | + e perci`o in generale la soluzione numerica si discosta da
quella esatta di un valore arbitrariamente grande per t sufficientemente
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 definire la classe di metodi caratterizzata dalla seguente
propriet`a di stabilit`a.

302

CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI

Definizione 8.3.6 (Strong root condition). Un metodo `e fortemente


stabile se le radici del polinomio
() =

k
X

j j

j=0

soddisfano la condizione
|i | 1,

i = 1, . . . , k

con n 1 radici strettamente minori di 1. Si noti che poich`e un metodo 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 usualmente 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 fissato (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 difficile costruire un metodo
del quarto ordine per il quale si abbia un comportamento di questo
tipo:
y(tn ) yn (0.1) +
(h = 0.1)
e

y(tn ) yn (0.01) 0

(h = 0.01)

il che indica che pur essendo lerrore locale accettabile (t; 0.1) =
O(104 ) 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 tranquillit`a, stimare la massima lunghezza del passo per cui si ha un comportamento 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 fissato. Consideriamo di
nuovo il metodo
y0 = 1, y1 = eh

yn+2 = yn + 2hfn+1
applicato allequazione
y 0 = y

y(0) = 1

Abbiamo
yn+2 = yn + 2hyn+1 .
Detto () il polinomio caratteristico di (8.24) `e
(; h) = () h()
le cui radici sono
r1 (h) = h +
e
perci`o

r2 (h) = h

1 + (h)2
1 (h)2

yn (h) = c1 (h)r1n (h) + c2 (h)r2n (h)


dove
c1 (h) =
c2 (h) =
anche

eh h
1
+ q
2 2 1 (h)2

1
eh h
q
2 2 1 (h)2

c1 (h) = 1 + O((h)3 )

c2 (h) = O((h)3 ).

Per il metodo in esame lerrore locale di troncamento `e


1
(t, h) = y(t + 2h) y(t) 2hf (t + h, y(t + h)) = O(h)
h

(8.24)

304

CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI

da cui
e(t+2h) et 2he(t+h) = O(h2 )
e2h 1 2heh = O(h2 )

(eh ; h) = (eh ) h(eh ) = O(h2 )

(eh r1 (h))(eh r2 (h)) = O(h2 ).


Poich`e r2 (h) tende a 1 quando h tende a 0
eh r1 (h) = O(h2 )

r1 (h) = eh + O(h2 ).

Quindi
t/h

yn (h) = (1 + O((h)3 )(eh + O(h2 )) + O((h3 ))r2 (h).


Per h che tende a 0 e t fisso
lim yn (h) = et
n

e perci`o il metodo `e convergente. Per < 0 |r2 (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(h2 ) + O((h)3 )eh pu`o crescere esponenzialmente.

8.4.

Assoluta stabilit`
a

Dagli esempi precedenti appare evidente la necessit`a di una nuova


definizione di stabilit`a nella quale si pensi fissato il passo di integrazione h e si richieda che lerrore globale si propaghi in modo stabile
quando n . Per rendere tale definizione uno strumento utile per
lanalisi di stabilit`a `e necessario assumere come riferimento il comportamento di metodi rispetto ad un particolare e fissato problema. A tale
scopo si assume come problema test il seguente
y 0 = y

C.

(8.25)

305

`
8.4. ASSOLUTA STABILITA

Quanto segue d`a una giustificazione alla scelta di tale problema. Esaminiamo in primo luogo la reazione locale del problema di Cauchy allintroduzione di perturbazioni sul dato iniziale. A tal scopo supponiamo
di trovarci nel generico punto t e di voler risolvere il problema

y 0 = f (t, y)
y(t ) = y

t ' t .

(8.26)

Introduciamo una perturbazione nel dato y ed esaminiamo il problema

z = f (t, z)
(8.27)

z(t ) = y + .

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)) nellintorno della soluzione y(t).
f (t, y(t) + (t)) f (t, y(t)) =

f
(t, y(t)) + O(kk2 ).
y

Nel caso di sistema di equazioni differenziali del primo ordine la derivata


parziale di f rispetto a y indica la matrice jacobiana del sistema valutata in (t, y(t)) e per t sufficientemente vicino a t possiamo supporre
f
f
(t, y(t)) '
(t , y(t )) = A.
y
y
Allora il modello linearizzato descrivente la propagazione degli errori
nei punti immediatamente successivi a t ha la forma

0 (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 distinti, possiamo porre A = T T 1 dove T = [u1 |u2 | . . . |un ] `e la matrice
degli autovettori di A e = diag(1 , . . . , n ). Perci`o

0 (t) = T T 1 (t)

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

(t ) =

(8.28)
(t ) =

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

n
X

w = T 1

ej (tt ) uj wj

j=1

t ' t

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

n
X

ej (tt ) uj wj .

j=1

In definitiva le autosoluzioni
ej (tt ) uj
caratterizzano la risposta locale del sistema alle perturbazioni sul dato
iniziale y . Si noti che il sistema (8.28) rappresenta n equazioni disaccoppiate del tipo w 0 = 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

Sia dunque

k
X

j=0

y 0 = y
C, 0 t +

y(0) = 1

j yn+j h

k
X

j=0

j f (tn+j , yn+j ) = 0

307

`
8.4. ASSOLUTA STABILITA

il metodo multistep in esame che assumiamo consistente e zero stabile.


Applicato al problema test fornisce
k
X

j=0

j yn+j h

k
X

j yn+j = 0,

y0 , . . . , yk1 noti

(8.29)

j=0

perturbiamo ora i dati iniziali di una quantit`a i , i = 0, . . . , k 1.


Avremo
k
X

j=0

j yn+j h

k
X

j yn+j = 0,

(8.30)

j=0

con y0 = y0 + 0 , . . . , yk1 = yk1 + k1 , e, posto n+j = yn+j yn+j ,


lequazione delle perturbazioni `e
k
X

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
X

j r

(r) =

j=0

k
X

j r j .

j=0

Ordiniamo quindi le radici ri (


h), i = 1, . . . , n, di (r; h) in modo che
h0

ri (
h) ri ,

i = 1, 2, . . . , k

dove ri `e la i-esima radice di (r), ordinate come abbiamo visto in precedenza. Una volta note le radici ri (
h) che per semplificare la descrizione
supponiamo distinte, la soluzione generale della (8.31) `e
n =

k
X

ci rin (
h)

i=1

dove le ci 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) = et mentre le altre rappresentano soluzioni parassite sorte perch`e il modello
discreto `e di ordine k > 1. Dimostriamo infatti che
r1 (
h) = eh + O(hp+1 )

308

CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI

dove p `e lordine del metodo, e perci`o


r1n (
h) ' etn = (tn ).
A tal fine consideriamo lerrore locale di troncamento nel generico punto
t

k
k
X
X
1
(t; h) = j e(t+jh) h
j e(t+jh)
h j=0
j=0

da cui

ovvero

et

k
X

(j h
j )(eh )j = O(hp+1 )

j=0

(eh ) h
(eh ) = O(hp+1 )
anche
(k h
k )

k
Y

i=1

(eh ri (
h) = O(hp+1 ).

Avendo assunto il metodo consistente e zero stabile


r1 (
h) r1 = +1

per h 0

ri (
h) ri 6= +1,

per h 0

perci`o
r1 (
h) = eh + O(hp+1 ).
Osserviamo anche che
r1 (
h) = 1 + h
+ O(h2 ) = r1 + h
+ O(
h2 ).
Poich`e le radici ri , i = 1, . . . , q, sono semplici (zero stabilit`a) le corrispondenti ri (
h) continueranno ad essere semplici per |h| sufficientemente piccolo (le radici sono infatti funzioni continue dei coefficienti)
anzi si potrebbe provare che sono funzioni analitiche di h
. Possiamo
allora sviluppare ri (
h), per i = 1, . . . , q, in serie di Taylor intorno a
h
= 0. Abbiamo
ri (
h) = ri (0) + h
ri0 (0) + O(h2 )

i = 1, . . . , q

(8.32)

309

`
8.4. ASSOLUTA STABILITA

e poich`e
(ri (
h)) h
(ri (
h)) = 0

derivando rispetto a h
segue:

0 (ri (
h))ri0 (
h) (ri (
h)) h
(ri (
h))ri0 (
h) = 0
cio`e
ri0 (
h) =

0 (r

(ri (
h))
h)) h
(ri (
h))
i (

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


ri0 (0) =

(ri )
0 (ri )

la (8.32) pu`o quindi scriversi


ri (
h) = ri + h

(ri )
+ O(h2 ) =
0
(ri )

= ri (1 + h
) + O(h2 ),

i = (ri )/(ri 0 (ri )).

Da questultima
rin (
h) ' rin ei h n = rin ei tn
dove
1 =

i = 1, . . . , q

(1)
=1
0 (1)

per la consistenza. In definitiva


n =

k
X

ci rin (
h) =

i=1

= c1 etn +

(8.33)
q
X

ci ei tn rin +

i=2

cio`e
yn = yn + c1 etn +

k
X

ci rin (
h),

i=q+1

q
X
i=2

ci ei tn +

k
X

i=q+1

ci rin (
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 r1 (h) e pertanto se si vuole che la perturbazione nel caso discreto simuli quella del caso continuo bisogna abbattere il contributo dovuto alle altre radici. Ci`o si ottiene imponendo
che |ri (
h)| < 1, i = 2, . . . , n. Inoltre se si vuole che la perturbazione
tenda a zero quando n tende a + allora deve essere anche |r1 (h)| < 1.
Possiamo allora dare la seguente definizione.
Definizione 8.4.1 Un metodo multistep `e detto assolutamente stabile
in una regione HA C se per ogni h
HA si ha
|ri (
h)| < 1

i = 1, 2, . . . , k.

La regione
HA = {
h C| |ri (
h)| < 1}

si chiama regione di assoluta stabilit`


a.

Osservazione 1. Ricordando che r1 (


h) = 1+
h +O(
h2 ) `e facile osservare
che per <e(
h) sufficientemente piccola ma positivo risulta |r1 (
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 sufficientemente piccola. Ci`o significa che integrando numericamente lequazione
test y 0 = y, <e > 0, per h sufficientemente piccolo gli errori vengono
amplificati con il procedere del metodo. Tuttavia questa circostanza
non `e del tutto negativa. Infatti la soluzione teorica del problema
`e y(t) = et e se il termine r1 (
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 definizione.
Definizione 8.4.2 Un metodo multistep lineare zero stabile `e detto relativamente stabile in una regione HR C se per ogni h
HR si ha
|ri (
h)| < |r1 (
h)|

i = 2, . . . , k.

La regione
HR = {
h C| |ri (
h)| < |r1 (
h)| i = 2, . . . , k}
si chiama regione di relativa stabilit`a.

311

`
8.4. ASSOLUTA STABILITA

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

sufficientemente piccolo il metodo risulta assolutamente instabile, tuttavia 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.
Definizione 8.4.3 Assegnato il polinomio
(r) =

k
X

ci r i

i=0

con c0 6= 0 e ck =
6 0, questo si dice polinomio di Schur se le sue radici
ri , i = 1, . . . , k, soddisfano
|ri | < 1

i = 1, 2, . . . , k.

Ci`o premesso sia


(r) =

k
X

ci r i

i=0

un qualunque polinomio con c0 6= e ck 6= 0 e a partire da questo consideriamo il polinomio

cj

b
(r)

k
X

cki r i

i=0

dove `e il complesso coniugato di


polinomio
1
1 (r) = det
r

cj , per ogni j, e successivamente il


b
b
(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
b
|(0)|
> |(0)|

e 1 (r) `e un polinomio di Schur. 2

312

8.5.

CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI

Metodi Runge-Kutta

Un metodo Runge-Kutta ha, come abbiamo visto, la seguente struttura:


yn+1 = yn + h

s
X

bi f (tn + hci , Yni )

i1
X

aij f (tn + hcj , Ynj ) i = 2, . . . , s

s
X

bi f (tn + hci , Yni )

s
X

aij f (tn + hcj , Ynj ) i = 1, . . . , s

i=1

Yn1

= yn

Yni

= yn + h

j=1

se esplicito, oppure
yn+1 = yn + h

i=1

Yni

= yn + h

j=1

se implicito. Normalmente questi metodi vengono cos` rappresentati:


c1 a11 a12 . . . a1s
c2 a21 a22 . . . a2s
..
..
..
..
.
.
.
.
cs as1 as2 . . . ass
s b 1 b2 . . . bs
o, in forma pi`
u compatta
c A
s bT
con A strettamente triangolare inferiore per i metodi espliciti e, in generale, 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 r1 = +1. Inoltre, essendo
(t, y(t)) = f (t, y(t))

s
X

bi

i=1

ed avendosi
(1) = 0,

0 (1) = 1

313

8.5. METODI RUNGE-KUTTA

se
s
X

bi = 1

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(hp ).
A titolo di esempio consideriamo lo schema
yn+1 = yn + hb1 f (tn , yn ) + hb2 f (tn + hc2 , Yn2 )
Yn2

= yn + ha21 f (tn , yn )

ovvero
yn+1 = yn + hb1 f (tn , yn ) + hb2 f (tn + hc2 , yn + ha21 f (tn , yn ))
e imponiamo le condizioni per avere ordine 2. Deve essere

(t; h) =

1
[y(t + h) y(t) hb1 f (t, y(t))+
h
+hb2 f (t + hc2 , y(t) + ha21 f (t, y(t)))] = O(h2 ).

314

CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI

Assunta y(t) di classe C (3) ([a, b]) e sviluppando in serie di Taylor abbiamo

(t; h) =

h2
1 0
{y (t)h + y 00 (t) + O(h3 ) hb1 f (t, y(t))+
h
2
hb2 [f (t, y(t)) +

f
f
(t, y(t))hc2 +
(t, y(t))ha21 f (t, y(t)) + O(h2 )]} =
t
y

1
f
h2 f
h2
{f (t, y(t))h +
(t, y(t)) +
(t, y(t))f (t, y(t)) + O(h3 )+
h
t
2
y
2
hb1 f (t, y(t)) hb2 f (t, y(t))

f
(t, y(t))b2 c2 h2 +
t

f
(t, y(t))f (t, y(t))h2b2 a21 + O(h3 )}.
y

Perci`o deve risultare

b1 + b 2 = 1

b2 c2 = 1/2

b2 a21 = 1/2.

Lesempio precedente fa intuire la difficolt`a di manipolazione per ottenere metodi di ordine elevato. Esiste per`o una tecnica pi`
u raffinata
che utilizza strumenti di teoria dei grafi e che permette unelegante
derivazione delle condizioni di ordine. Rinunciando allesposizione di
tale teoria, riportiamo di seguito le condizioni da soddisfare per ot-

315

8.5. METODI RUNGE-KUTTA

tenere metodi fino allordine 4.


1

s
X

bi = 1

s
X

bi ci =

1
2

s
X

bi c2i =

1
3

i=1

i=1

i=1

s
X

bi aij ci =

s
X

bi c3i =

s
X

bi ci aij cj =

s
X

bi aij c2j =

1
6

i,j=1

i,j=1

1
4

i,j=1

i,j=1

s
X

1
8

1
12

bi aij ajk ck =

i,j,k=1

1
.
24

Per lordine massimo `e possibile dedurre, dalla suddetta teoria, i seguenti risultati. Denotato con p = p (s) lordine massimo raggiungibile
con un metodo Runge-Kutta esplicito si ha:
p (s)
p (5)
p (s)
p (s)
p (s)

=s
=4
=s1
=s2
s2

1s4
5s7
8s9
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 0 = y, C,
si ha:
yn+1 = yn + h

s
X

bi Yni ,

s
X

aij Ynj

h
= h

i=1

Yni

= yn + h

j=1

introdotti i vettori e = (1, 1, . . . , 1)T e Yn = (Yn1 , Yn2 , . . . , Yns )T , queste


si riscrivono
yn+1 = yn + h
b T Yn
Yn

= yn e + h
AYn

ovvero
yn+1 = (1 + h
bT (I h
A)1 e)yn
anche
yn+1 = R(
h)yn
dove R(
h) = 1 + h
bT (I h
A)1 e. Il metodo Runge-Kutta si dir`a as RA risulta
solutamente stabile nella regione RA C se per ogni h
|R(
h)| < 1. Linsieme
RA = {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
a
21

0
0

...
...

...
...

a31 a32 0
.. . . . .
..
.
.
.
.
as1 as2 . . . as,s1

0
0
..
.
..
.
0

317

8.5. METODI RUNGE-KUTTA

Dal teorema di Cayley-Hamilton `e facile allora dedurre che As = 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 A2 + . . . + z s1 As1 ) = I z s As = I
ne consegue
(I zA)

s1
X

(zA)i .

i=0

La funzione R(z) pu`o allora scriversi


R(z) = 1 + zbT

s1
X

z i Ai e =

i=0

=1+

s
X

(bT Ai1 e)z i .

i=1

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 finita. Per quanto
concerne la funzione R(z) dei metodi impliciti, ricordando che per ogni
x, y Rs ,
det(I + xyT ) = 1 + yT x
possiamo scrivere
R(z) = det(I + z(I zA)1 ebT ) =
h

= det (I zA)1 (I zA + zebT ) =


=

det(I + z(ebT 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 finito 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 complesso.

318

CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI

Sulla implementazione dei metodi Runge-Kutta


I metodi Runge-Kutta espliciti non presentano alcun problema di implementazione, nel senso che i valori Yni , 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
yn+1 = yn + h

s
X

bi f (tn + hci , Yni ),

s
X

aij f (tn + hcj , Ynj )

i=1

Yni = yn + h

i = 1, . . . , s. (8.35)

j=1

Un metodo per risolvere (8.35) `e quello di utilizzare procedimenti iterativi del tipo
(k+1)

Yni

= yn + h

s
X

(k)

aij f (tn + hcj , Ynj )

i = 1, . . . , s, k = 0, 1, 2, . . .

j=1

(8.36)

nella versione Jacobi, oppure del tipo


(k+1)
Yni

= yn + h

i1
X

aij f (tn +

(k+1)
hcj , Ynj )

j=1

+h

s
X

(k)

aij f (tn + hcj , Ynj )

j=i+1

(8.37)
con i = 1, . . . , s e k = 0, 1, 2, . . ., nella versione Gauss-Seidel. Non `e
difficile 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 sufficientemente piccolo. Infatti posto

Yn(k)

(k)

Yn1
(k)
Yn2
..
.
(k)
Yns

F (tn , Yn ) =

f (tn + hc1 , Yn1 )


f (tn + hc2 , Yn2 )
..
.
f (tn + hcs , Yns)

e=

1
1
..
.
1

319

8.5. METODI RUNGE-KUTTA

G=

0
a
21

0
0

...
...

...
...

0
0
..
.
..
.
0

a31 a32 0
.. . . . .
..
.
.
.
.
as1 as2 . . . as,s1

0 a12 a13 . . . a1s


0 0 a
a2s

23 . . .

..
.

..
0
.
H= 0 0

.. . .
.. ..
.
.
.
. as1,s
0 0 ... 0
0

(8.36) e (8.37) si riscrivono rispettivamente

Yn(k+1) = yn e + hAF (tn , Yn(k) )

(8.38)

Yn(k+1) = yn e + hGF (tn , Yn(k+1) ) + hHF (tn , Yn(k) ).

(8.39)

Detta Yn la soluzione di (8.38), si ha


kYn Yn(k+1) k = khAF (tn , Yn ) hAF (tn , Yn(k) )k
hkAk kF (tn , Yn ) F (tn , Yn(k) )k =
(k)

= hkAk max |f (tn + hci , Yni ) f (tn + hci , Yni )|


1is

hLkAk kYn Yn(k) k .


Pertanto se hLkAk q < 1
kYn Yn(k) k q k kYn Yn(0) k
e il metodo converge qualunque sia il punto iniziale. Per le versione
Gauss-Seidel abbiamo


Yn Yn(k+1) = hG F (tn , Yn(k+1) ) F (tn , Yn ) +hH F (tn , Yn(k) ) F (tn , Yn )


posto

(k)

e(k)
n = Yn Yn

segue
(k+1)

en,i

= h

i1
X

j=1

+h

(k+1)

aij [f (tn + hcj , Ynj

n
X

j=i+1

) f (tn + hcj , Ynj


)]+

(k)

aij [f (tn + hcj , Ynj ) f (tn + hci , Ynj


)]

320

CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI

(k+1)

|en,i

| hL

i1
X

(k)

|aij ||en,j | + h

j=1

n
X

j=i+1

(k)

|aij ||en,j |.

Sia r lindice tale che


(k+1)
|e(k+1)
k .
n,r | = ken

Allora
|e(k+1)
n,r |

dove

hL

ke(k+1)
k
n
=

r1
X

j=1

(k)
|arj ||en,j |

+h

j=r+1

hLke(k+1)
k
n

r1
X

j=1

|arj |

Allora
ke(k+1)
k
n
Assumiamo ora che
hL max

1is

n
X

(k)

|arj ||en,j |.

+ hLke(k)
n k
s
X

j=r+1

|arj |

hL
ke(k) k .
1 hL n

s
X

j=1,j6=i

|aij | q < 1

allora sicuramente
hL( + ) q < 1

hL
hL + hL hL
=
=
1 hL
1 hL
=

hL( + ) hL
q hL

=
1 hL
1 hL

q hL + hLq hLq
=
1 hL

q(1 hL) + hL(q 1)


=
1 hL

=q

hL(1 q)
q < 1.
1 hL

321

8.5. METODI RUNGE-KUTTA

Pertanto
kYn Yn(k) k q k kYn Yn(0) k

e dunque il metodo converge per ogni Yn(0) .


Stima dellerrore di troncamento
Sia

yn+1 = yn + h(tn , yn ; h)
un metodo one-step di ordine p 1. Come `e noto lerrore locale di
troncamento in tn `e dato da
(tn ; h) =

1
[y(tn + h) y(tn ) h(tn , yn ; h)]
h

dove y(t) `e la soluzione teorica del problema di Cauchy. Anche, se


y(t) C (p+1) ([a, b])
(tn ; h) = (tn )hp + O(hp+1 ).
Indichiamo ora con yn+1 (h) lapprossimazione in tn+1 fornita dal metodo
(8.6) a partire da tn con passo di integrazione h, mentre denotiamo

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

yn+1
(h/2) = yn+1 (h/2) + (tn + h/2, yn (h/2); h/2).
2
In ipotesi locale
yn = y(tn )

yn+1 (h/2) = y(tn + h/2)

e
(tn + h/2; h/2) =
(tn ; h/2) =

2
[y(tn + h/2) y(tn ) h/2(tn , y(tn ); h/2)]
h

2
[y(tn + h) y(tn + h/2) h/2(tn + h/2, y(tn + h/2); h/2)]
h

322

CAPITOLO 8. METODI NUMERICI PER EQUAZIONI DIFFERENZIALI

Ora

[yn+1 (h) yn+1


(h/2)] =
h
=

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

1
1
= (tn , y(tn ); h) (tn , y(tn ); h/2) (tn + h/2, y(tn + h/2); h/2) =
2
2
1
= [y(tn + h) y(tn )] (tn ; h)+
h
1
1
[y(tn + h/2) y(tn )] + (tn + h/2; h/2)+
h
2
1
1
+ [y(tn + h) y(tn + h/2)] + (tn ; h/2) =
h
2
"
!p
#
1
h
p
p+1
p+1
= (tn )h + O(h ) +
(tn + h/2)
+ O(h ) +
2
2
"

!p

+ O(h

h
1
= (tn )hp +
(tn )
2
2

"

!p

hp+1
+ 0 (tn ) p+1 + O(hp+1 ) +
2

1
h
+ [(tn )
2
2

!p

+ O(hp+1 )] =

1
h
+ (tn )
2
2

p+1

) =
#

1
= (tn )h
1 + O(hp+1 ).
2p
In definitiva la parte principale dellerrore locale di troncamento pu`o
essere cos` stimata
p

(tn )hp '

2p 1

[yn+1 (h) yn+1


(h/2)].
2p 1 h