You are on page 1of 23

Capitolo 3

Metodi numerici per equazioni


differenziali ordinarie
3.1

Introduzione

Supponiamo che sia assegnato il seguente problema differenziale:


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

(3.1)

dove f : [t0 , T ] R R `e una funzione continua rispetto a t e Lipschitziana


rispetto a y, cio`e esiste una costante positiva L tale che, per ogni x, y R,
risulta
|f (t, x) f (t, y)| L|x y|,
t [t0 , T ].
Il problema (3.1) prende il nome di problema di Cauchy del primo ordine
ai valori iniziali. Risolvere (3.1) significa determinare una funzione y(t) di
classe C 1 ([t0 , T ]) la cui derivata prima soddisfi lequazione assegnata e che
passi per il punto (t0 , y0 ). In base alle ipotesi fatte sulla funzione f (t, y(t)) il
teorema di Cauchy assicura lesistenza e lunicit`a di tale funzione.
Teorema 3.1.1 (di Cauchy) Sia f (t, y) : R R R, una funzione definita
e continua per ogni (t, y) appartenente alla regione [t0 , T ] R, e sia inoltre
Lipschitziana rispetto a y allora per ogni condizione iniziale esiste ununica
soluzione continua e differenziabile y(t) del problema (3.1).
Lequazione (3.1) dipende solo dalla derivata prima della soluzione, mentre
si possono avere anche problemi di ordine superiore del tipo:
y (m) (t) = f (t, y, y 0, y 00 , . . . , y (m1) (t)).
19

CAPITOLO 3. EQUAZIONI DIFFERENZIALI ORDINARIE

20

` tuttavia possibile ricondursi ad un sistema differenziale del primo ordine


E
con alcuni cambi di variabile, infatti, posto

y1 = y

y2 = y
y3 = y 00

..

y = y (m1)
m

si ottiene il sistema differenziale equivalente:

= y2
y10

y2
= y3

y0
= y4
3
..

ym1 = ym

y0
= f (t, y1 , y2 , . . . , ym )
m
da cui, ponendo

0 1
0 0
1
.
.
.

A = .. . . . .
.
..
0
0 ... ...

.
,

0 1
0 0

..

y1
y2
..
.

y=

ym1
ym

f =

0
0
..
.
0
f (t, y)

si ricava il sistema differenziale in forma compatta:


y0 = Ay + f .
Descriveremo nel seguito alcune classi di metodi per equazioni differenziali del
primo ordine, considerando sempre che tali metodi possono essere applicati
anche a sistemi. Tali metodi ovviamente non forniscono in forma chiusa lespressione della soluzione y(t) ma solo una sua approssimazione in un insieme
discreto di punti. Se siamo interessati alla funzione y(t) nellintervallo [t0 , T ]
lo suddividiamo in N sottointervalli ciascuno di ampiezza h = (T t0 )/N e
definiamo i punti
tn = tn1 + h = t0 + nh,

n = 0, . . . , N

CAPITOLO 3. EQUAZIONI DIFFERENZIALI ORDINARIE

21

dove la soluzione verr`a approssimata.


Prima di studiare le principali classi di metodi numerici per equazioni differenziali vediamo prima di descriverne alcuni piuttosto semplici. Partendo
dal problema di Cauchy
y 0 (t) = f (t, y(t))
(3.2)
e supponendo di voler calcolare la funzione in tn+1 noto il suo valore in tn ,
andiamo ad integrare membro a membro (3.2):
Z tn+1
Z tn+1
0
y (t)dt =
f (t, y(t))dt
(3.3)
tn

tn

cio`e
y(tn+1 ) y(tn ) =

tn+1

f (t, y(t))dt

(3.4)

tn

quindi il problema equivale ad approssimare lintegrale a secondo membro.


Un primo modo `e quello di approssimare tale integrale con larea del rettangolo avente come base lintervallo [tn , tn+1 ] e come altezza il valore assunto
dalla funzione integranda in tn , quindi
y(tn+1 ) y(tn ) = hf (tn , y(tn )) + Errore.
Trascurando il termine di errore si ottiene luguaglianza approssimata
y(tn+1 ) y(tn ) ' hf (tn , y(tn ))
da cui, definendo le approssimazioni yn ' y(tn ) e yn+1 ' y(tn+1 ) si ottiene la
seguente uguaglianza tra quantit`a approssimate:
yn+1 yn = hf (tn , yn )

yn+1 = yn + hf (tn , yn ).

Tale metodo va sotto il nome di Metodo di Eulero Esplicito in quanto consente, noto yn , di calcolare esplicitamente lapprossimazione nel punto successivo. In modo analogo si pu`o approssimare lintegrale in (3.3) prendendo
come punto di riferimento tn+1 ottenendo quindi:
y(tn+1 ) y(tn ) ' hf (tn+1 , y(tn+1 ))
che fornisce il cosiddetto Metodo di Eulero Implicito:
yn+1 = yn + hf (tn+1 , yn+1 ).

CAPITOLO 3. EQUAZIONI DIFFERENZIALI ORDINARIE

22

Un ulteriore formula per approssimare lintegrale in (3.3) `e quello di usare


larea del trapezio avente come basi il valore della funzione f (t, y) calcolato
negli estremi dellintervallo e come altezza lo stesso intervallo:
y(tn+1 ) y(tn ) '

h
[f (tn+1 , y(tn+1 )) + f (tn , y(tn ))]
2

che d`a luogo al cosiddetto Metodo dei Trapezi:


yn+1 = yn +

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

I due metodi appena descritti sono di tipo implicito, cio`e lapprossimazione


yn+1 dipende dal valore assunto dalla funzione f (t, y) nellincognita yn+1 . In
questo caso `e spesso necessario risolvere unequazione non lineare (o un sistema di equazioni), cosa che, abbiamo visto, pu`o essere fatta numericamente.
Un ultimo metodo, applicabile allintervallo [tn , tn+2 ], consiste nellapprossimare lintegrale a secondo membro nellequazione
Z tn+2
f (t, y(t))dt
y(tn+2 ) y(tn ) =
tn

con larea del rettangolo avente come base lintervallo [tn , tn+2 ] e come altezza
il valore assunto dalla funzione nel punto medio dello stesso intervallo:
y(tn+2 ) y(tn ) ' 2hf (tn+1 , y(tn+1 ))
che fornisce il Metodo del Midpoint:
yn+2 = yn + 2hf (tn+1 , yn+1 ).
Vediamo ora qualche dettaglio sulle due principali classi di metodi per la
risoluzione numerica di equazioni differenziali:
1. i metodi multistep lineari
2. i metodi Runge-Kutta.

CAPITOLO 3. EQUAZIONI DIFFERENZIALI ORDINARIE

3.2

23

I metodi multistep lineari

Lespressione generale di un metodo multistep lineare `e la seguente


k
X

j yn+j h

j=0

k
X

j fn+j = 0,

(3.5)

j=0

dove fn+j = f (tn+j , yn+j ). Il valore intero k indica il numero di passi del
metodo ed indica il numero di approssimazioni necessarie per poter calcolare
un valore yn . Infatti un metodo multistep lineare funziona in questo modo.
Inizialmente si suppone di conoscere le quantit`a y0 , y1 , . . . , yk1 e, scrivendo
lespressione (3.5), per n = 0 si ricava:
k
X

j yj h

j=0

k
X

j fj = 0,

j=0

da cui `e possibile ricavare (o esplicitamente o attraverso un metodo numerico, come vedremo in seguito) lunica incognita yk . Una volta calcolata tale
approssimazione si scrive lequazione (3.5), per n = 1:
k
X
j=0

j yj+1 h

k
X

j fj+1 = 0,

j=0

e si ricava lunica incognita yk+1 e, in questo modo, applicando ripetutamente


il metodo si calcolano tutte le approssimazioni fino allultima yN . Da quanto
detto tuttavia emergono due questioni aperte:
1. Inizialmente si conosce solo il valore y0 mentre sono necessari anche i
valori y1 , . . . , yk1 ;
2. Se k 6= 0 e la funzione f (t, y) `e non lineare rispetto a y allora ad ogni
passo non `e possibile calcolare esplicitamente il valore yn+k .
Vedremo in seguito come affrontare queste due problematiche. Adesso facciamo alcune considerazioni preliminari sulle condizioni da imporre ai coefficienti del metodo j e j .
Osservando che lespressione di un metodo multistep lineari rimane inalterata se viene moltiplicata per una costante non nulla allora per normalizzare
i coefficienti si impone che sia k = 1. Un altro vincolo sui coefficienti `e che
sia
|0 | + |0 | 6= 0

CAPITOLO 3. EQUAZIONI DIFFERENZIALI ORDINARIE

24

in modo tale che siano certamente coinvolti nella formula yn e yn+k . Il motivo
di tale scelta `e quello di non considerare metodi del tipo
yn+2 yn+1 hfn+1 = 0
che `e essenzialmente un metodo ad un passo e non a 2 passi ed `e sostanzialmente indistingubile dal metodo ad un passo:
yn+1 yn hfn = 0.
Prima di vedere quali sono le altre condizioni che i coefficienti del metodo
devono soddisfare definiamo i due seguenti polinomi:
(z) =

k
X

j z j

j=0

detto primo polinomio caratteristico del metodo, e


(z) =

k
X

j z j

j=0

detto secondo polinomio caratteristico del metodo.


Una prima classificazione tra i metodi multistep lineari `e quella in base al
valore assunto dal coefficiente k . Infatti se in (3.5) k = 0 il metodo si
dice esplicito, altrimenti si dice implicito. Nel primo caso il metodo si pu`o
riscrivere come:
k1
k1
X
X
j fn+j
j yn+j ,
yn+k = h
j=0

j=0

mettendo in evidenza che il valore yn+k pu`o essere calcolato esplicitamente


utilizzando solo valori gi`a noti. Invece se k 6= 0 e la funzione f (t, y) `e non
lineare rispetto alla variabile y allora ad ogni passo il metodo pu`o essere
scritto come:
yn+k = hk fn+k +

k1
X
j=0

j fn+j

k1
X

j yn+j ,

j=0

cosicch`e per poter calcolare yn+k `e necessario risolvere lequazione non lineare
yn+k = hk f (tn+k , yn+k ) + Gn,k

(3.6)

CAPITOLO 3. EQUAZIONI DIFFERENZIALI ORDINARIE

25

avendo posto
Gn,k =

k1
X

j fn+j

j=0

k1
X

j yn+j ,

j=0

che `e una quantit`a nota. Lequazione (3.6) `e anche unequazione di punto


fisso
x = (x)
dove
(x) = hk f (tn+k , x) + Gn,k .
In questo caso `e naturale definire il metodo di iterazione funzionale:


[m+1]
[m]
yn+k = yn+k
prendendo come approssimazione iniziale il valore dellapprossimazione pi`
u
vicina a quella incognita, cio`e:
[0]

yn+k = yn+k1 .
Il metodo iterativo `e quindi
[0]

= yn+k1

[m+1]

= hk f (tn+k , yn+k ) + Gn,k .

yn+k
yn+k

[m]

Affinch`e tale metodo converga deve essere


|0 (x)| < 1
in un opportuno intorno della soluzione. Calcolando la derivata prima della
funzione (x) si ha:
f
(tn+k , x)
(x) = hk
y
quindi la condizione per la convergenza diviene:


f
f
1
h|k | < 1 <
.
y
y
h|k |
Tale condizione `e sicuramente verificata se risulta h|k |L < 1, essendo L la
costante di Lipschitz della funzione f (t, y), infatti per definizione

f
L
y

CAPITOLO 3. EQUAZIONI DIFFERENZIALI ORDINARIE

26

quindi


f
h|k | h|k |L
y
ed il metodo `e convergente se
h|k |L < 1.

(3.7)

Tale condizione non presenta eccessivi problemi per la gran parte delle equazioni differenziali, se la (3.7) non `e rispettata `e sufficiente scegliere un valore
h pi`
u piccolo, in modo tale che essa sia soddisfatta, e procedere. Un caso
particolare sono i cosiddetti problemi stiff in cui la costante L  1 ed in
questo caso la (3.7) rappresenta una restrizione molto forte sul passo h.
Un ultimo aspetto da analizzare `e il fatto che, per applicare il metodo al
primo passo (cio`e quando n = 0) si devono conoscere le approssimazioni
y1 , y2 , . . . , yk1 per poter calcolare yk . Un modo per ottenerle `e quello di
applicare un metodo che richieda un numero di passi inferiore (per esempio
metodi ad un passo come Eulero esplicito o implicito) e di applicare il metodo
multistep solo quando si abbiano tutte le approssimazioni necessarie.
Le propriet`a che devono soddisfare i coefficienti del metodo sono principalmente tre:
1. Consistenza
2. Zero Stabilit`a
3. Convergenza
Vediamo ora di descrivere in maggior dettaglio tali propriet`a.
Convergenza
Quando il passo di integrazione h tende a zero linsieme di punti discreti
{tn } diventa lintero intervallo [t0 , T ]. Una propriet`a ovvia da richiedere ad
un qualsiasi metodo numerico `e che, quando h 0 la soluzione numerica
yn diventa la soluzione teorica y(t), t [t0 , T ]. Questa propriet`a `e detta
Convergenza.
Definizione 3.2.1 Un metodo numerico si dice convergente se, per ogni
problemi ai valori iniziali soddisfacente le ipotesi si ha:
lim yn = y(t)
h0

t=t0 +nh

per ogni t [t0 , T ]. Un metodo che non `e convergente si dice divergente.

CAPITOLO 3. EQUAZIONI DIFFERENZIALI ORDINARIE

27

Tale definizione necessita di alcuni chiarimenti. Consideriamo infatti un punto t della discretizzazione (cio`e tale che t = tn = t0 + nh), un metodo convergente deve essere tale che la soluzione numerica yn nel punto della discretizzazione t = tn tende a quella teorica y(t) quando h 0. La definizione
puntualizza lesigenza che, anche se h tende a zero (e quindi n ), la quantit`a nh si mantiene costante allampiezza dellintervallo [t0 , t]. Una definzione
alternativa di convergenza richiede che
lim max |y(tn ) yn | = 0

h0 0nN

quando il metodo numerico viene applicato ad un qualsiasi probema ai valori


iniziali che soddisfa le ipotesi del Teorema 3.1.1. Adesso lobiettivo diventa quello di stabilire quali sono le condizioni che consentano di stabilire la
convergenza del metodo. Un primo concetto `e quello di consistenza.
Consistenza
Sia z(t) C 1 ([t0 , T ]) e definiamo il seguente operatore differenza lineare:
L[z(t); h] =

k
X

[j z(t + jh) hj z 0 (t + jh)] .

j=0

Se calcoliamo tale operatore nella soluzione del problema di Cauchy assegnato


in un punto della discretizzazione tn otteniamo unespressione del residuo,
detto anche errore locale di troncamento:
Rn+k =

k
X

[j y(tn+j ) hj y 0 (tn+j )] =

j=0

k
X

[j y(tn+j ) hj f (tn+j , y(tn+j ))] .

j=0

Se le approssimazioni yn coincidessero con la soluzione teorica allora il residuo


sarebbe nullo pertanto possiamo prendere tale quantit`a come possibile misura
della qualit`a dellapprossimazione fornita dal metodo. Una condizione ovvia
che il residuo deve soddisfare `e che
lim Rn+k = 0

h0

ma questo implicherebbe una condizione solo sui coefficienti j , pertanto si


preferisce la seguente definizione.

CAPITOLO 3. EQUAZIONI DIFFERENZIALI ORDINARIE

28

Definizione 3.2.2 Un metodo numerico si dice consistente (con il problema


differenziale) se
Rn+k
lim
=0
(3.8)
h0
h
Per esplicitare le condizioni per la consistenza di un metodo cerchiamo unespressione alternativa del residuo. Sostituiamo infatti al posto di y(tn+j ) e
di y 0 (tn+j ) gli sviluppi in serie di Taylor (ipotizzando ovviamente che y(t) sia
una funzione di classe C ([t0 , T ])):
y(tn+j )

= y(tn + jh) =

X
(jh)i

i!

i=0

y 0 (tn+j ) = y 0 (tn + jh) =

y (i) (tn ),

X
(jh)i

i!

i=0

y (i+1) (tn ).

Riscriviamo le due espansioni in serie in modo tale da uniformare gli indici


delle sommatorie e lordine delle derivate:
y(tn+j )

= y(tn ) +

X
(jh)i
i=1

i!

y (i) (tn ),

X
(jh)i1 (i)
y (tn )
y (tn+j ) =
(i 1)!
i=1
0

e andiamo a sostituire tali serie nellespressione del residuo:


Rn+k =

k
X

[j y(tn+j ) hj y 0 (tn+j )] =

j=0

k
X

"

j=0

y(tn ) +

X
(jh)i
i=1

i!

y (i) (tn )

X
(jh)i1 (i+1)
y
hj
(tn ) =
(i

1)!
i=1

" k 
#

X
X
(jh)i
(jh)i1
y (i) (tn ) =
hj
j +
= y(tn )
j
i!
(i

1)!
j=0
i=1
j=0
k
X

" k 
#

X
X
ji
j i1
hi y (i) (tn ).
= y(tn )
j +
j j
i!
(i 1)!
j=0
i=1
j=0
k
X

CAPITOLO 3. EQUAZIONI DIFFERENZIALI ORDINARIE


Ponendo
C0 =

k
X

29


k 
X
ji
j i1
Ci =
j j
i!
(i 1)!
j=0

j ,

j=0

si ha che il residuo Rn+k ammette uno sviluppo asintotico del tipo:


Rn+k = C0 y(tn ) + C1 hy 0 (tn ) + C2 h2 y 00 (tn ) + C3 h3 y 000 (tn ) + . . . .
Da tale propriet`a segue che il metodo multistep pu`o essere consistente solo
se i primi due coefficienti dello sviluppo, C0 e C1 , sono nulli, cio`e:
C0 =

k
X

j = 0

j=0

C1 =

k
X

(j j j ) = 0.

j=0

In termini di coefficienti dei polinomi caratteristici


C0 =

k
X

j = (1) = 0

j=0

C1 =

k
X

(j j j ) = 0 (1) (1) = 0

j=0

Riassumendo abbiamo il seguente risultato:


Teorema 3.2.1 Un metodo multistep lineare avente (z) e (z) come primo
e secondo polinomi caratteristici, rispettivemente, `e consistente se e solo se:
(1) = 0,

0 (1) (1) = 0.

Lo sviluppo in serie del residuo (o dellerrore locale di troncamente) induce


unaltra considerazione. Poich`e esso pu`o essere considerato come una misura
dellerrore commesso e di solito il passo di integrazione h `e una quantit`a relativamente piccola, possiamo ipotizzare che i metodi che forniscono risultati
pi`
u accurati (a parit`a di passo) sono quelli il cui residuo dispende da potenze
di h di ordine pi`
u grande. Tale considerazione pu`o essere formalizzata nella
seguente definizione.

CAPITOLO 3. EQUAZIONI DIFFERENZIALI ORDINARIE

30

Definizione 3.2.3 Un metodo multistep lineare si dice di ordine p se risulta


C0 = C1 = = Cp = 0 e Cp+1 6= 0. La costante Cp+1 viene detta costante
dellerrore.
Se un metodo multistep ha ordine p allora
Rn+k = Cp+1 hp+1 y (p+1) (tn ) + Cp+2 hp+2 y (p+2) (tn ) + . . .
ovvero si scrive
Rn+k = O(hp+1 )
quindi dal punto di vista teorico i metodi che dovrebbero fornire un errore
pi`
u piccolo sono quelli che hanno con ordine pi`
u elevato.
Osserviamo che le condizioni per la consistenza di un metodo multistep lineare sono equivalenti alla richiesta che il metodo numerico abbia almeno
ordine p = 1.
Come esempio consideriamo la classe dei metodi ad un passo (k = 1):
yn+1 + 0 yn h(1 fn+1 + 0 fn ) = 0.
Le condizioni da imporre affinch`e un metodo abbia ordine p = 1 sono:
0 (1) (1) = 0.

(1) = 0,

(3.9)

I due polinomi caratteristici di tali metodi sono:


(z) = z + 0 ,

(z) = 1 z + 0

e, da (3.9), deve essere


(z) = z 1.
La condizione 0 (1) = (1) `e equivalente a richiedere che sia
1 = 1 + 0 .
Di solito si preferisce porre 0 = , cosicch`e 1 = 1 , e i metodi possono
essere scritti nella forma:
yn+1 yn = hfn + h(1 )fn+1 .
I metodi appena scritti, che sono anche detti metodi sono metodi di ordine
almeno 1 e comprendono alcuni introdotti in precedenza. Infatti per = 1
si ottiene il Metodo di Eulero Esplicito:
yn+1 = yn + hfn ,

CAPITOLO 3. EQUAZIONI DIFFERENZIALI ORDINARIE

31

per = 0 il Metodo di Eulero Implicito:


yn+1 = yn + hfn+1 ,
mentre per = 1/2 il Metodo dei Trapezi:
yn+1 yn =

h
[fn + fn+1 ] .
2

Cerchiamo ora di verificare se qualcuno di questi metodi ha ordine superiore


(cio`e 2) verificando se qualche valore di annulla la costante C2 . Ricordiamo
che in questo C2 `e

1 
X
j2
j j j
C2 =
2!
j=0
con 0 = 1, 1 = 1, 0 = e 1 = 1 . Si vede agevolmente che
C2 =

1
1
(1 ) = = 0
2
2

1
= ,
2

quindi solo il metodo dei trapezi ha ordine 2 (in realt`a andrebbe verificato
che C3 6= 0 come effettivemente risulta).
Esercizio 3.2.1 Determinare lordine del metodo del midpoint esplicito:
yn+2 yn 2hfn+1 = 0.
Osserviamo innanzitutto che i due polinomi caratteristici del metodo sono:
(z) = z 2 1,

(z) = 2z,

ovvero
0 = 1,

1 = 0,

2 = 1

0 = 0,

1 = 2,

2 = 0

CAPITOLO 3. EQUAZIONI DIFFERENZIALI ORDINARIE

32

Per determinare lordine del metodo si devono calcolare le costanti Ci dello


sviluppo in serie dellerrore locale di troncamento.
C0 = (1) = 0
C1 = 0 (1) (1) = 2 2 = 0
C2 =

2 
X
j=0

C3 =


1 + (22 22 ) = 2 + 2 = 0

2 
X
j=0

j2
j j j
2!

j3
j2
j j
3!
2!

 

1 1
42
1
4
=

+
22 = 1 + = .
6
2
3
3
3
Il metodo ha ordine 2 poich`e C0 = C1 = C2 = 0 ma C3 6= 0.
Zero-stabilit`
a
Abbiamo visto che la convergenza `e un processo che avviene al limite, quando h ' 0, quindi pu`o essere interessante studiare la soluzione numerica yn
quando h = 0. Cos` facendo il metodo diventa
k
X

j yn+j = 0.

(3.10)

j=0

Tale equazione prende il nome di equazione alle differenze lineare a coefficienti costanti e pu`o essere considerata come lanalogo discreto delle equazioni
differenziali a coefficienti costanti. Per risolvere (3.10) si procede esattamente
come nel caso delle analoghe equazioni differenziali a coefficienti costanti, cio`e
si cerca una soluzione di tipo esponenziale. In questo caso specifico si cerca
una soluzione del tipo
yn = n
con C. Imponendo che tale yn sia soluzione di (3.10) segue
k
X
j=0

j yn+j =

k
X
j=0

n+j

k
X
j=0

j j = n ().

CAPITOLO 3. EQUAZIONI DIFFERENZIALI ORDINARIE

33

Quindi yn = n `e soluzione di (3.2) solo se `e uno zero del polinomio (z).


Se questo ammette k radici distinte ognuna d`a luogo ad una soluzione dellequazione (3.10) pertanto, proprio in analogia con quanto accade nel caso
delle equazioni differenziali, dette 1 , . . . k tali radici, la soluzione generale
della (3.10) `e:
k
X
yn =
cj jn
j=1

dove le cj sono delle costanti dipendenti dalle condizioni iniziali imposte su


yn . Nel caso in cui una delle radici abbia molteplicit`a doppia, cio`e
() = 0 () = 0
allora si pu`o provare che yn = n n `e soluzione di (3.10). Infatti:
" k
#
k
k
k
X
X
X
X
j yn+j =
j (n + j) n+j = n n
j j +
j j j =
j=0

j=0

"

= n n() +

j=0
k
X

"

j j j = n n() +

j=1

j=0
k
X

j j j1 =

j=1
n

= [n() + ()] = 0.
Esempio 3.2.1 (La Successione di Fibonacci) Un classico esempio di
equazione alle differenze `e quella che definisce la successione di Fibonacci:
yn+2 = yn+1 + yn ,

n = 0, 1, 2, . . .

con valori iniziali y0 = y1 = 1. La successione in questione `e soluzione


dellequazione alle differenze
yn+2 yn+1 yn = 0.
Definito il polinomio
(z) = z 2 z 1
esso ammette come radici
1,2

1 5
=
2

cosicch`e la soluzione yn `e uguale a


!n
!n
1+ 5
1 5
yn = c1
+ c2
,
2
2

n = 0, 1, 2, . . .

CAPITOLO 3. EQUAZIONI DIFFERENZIALI ORDINARIE

34

dove c1 e c2 sono due costanti reali il cui valore dipende dai valori iniziali y0
e y1 . Infatti imponendo le condizioni su tali valori:
y0 = c1 + c2 = 1
y1 = c1

!
1+ 5
+ c2
2

!
1 5
=1
2

si trovano le espressioni delle due costanti:

1+ 5
51
c1 = ,
c2 = .
2 5
2 5
Consideriamo ora che, ponendo h = 0, `e come se yn fosse la soluzione
numerica del problema di Cauchy
y 0 (t) = 0,

y(t0 ) = y0

che ammette come soluzione y(t) = y0 per t t0 . Essendo la soluzione


teorica limitata `e naturale richiedere che anche la soluzione numerica fornita
dal metodo numerico lo sia. In base al discorso fatto sulle radici del polinomio
(z) abbiamo le seguenti considerazioni:
1. Il valore z = 1 `e radice del polinomio (z);
2. Se tutte le radici j di (z) sono distinte e tali che
|j | 1,

j = 1, . . . , k

allora la soluzione numerica yn si mantiene limitata (come quella teorica). Tale situazione resta invariata se (z) ha una radice multipla j di
modulo minore di 1, infatti in questo caso nj `e soluzione dellequazione
alle differenza 3.10 ma
lim njn = 0.
n

3. Se invece (z) ha una radice j di modulo maggiore di 1 oppure di


modulo 1 ma di molteplicit`a maggiore di 1 allora la soluzione yn non
pu`o mantenersi limitata.
Riassumiamo quanto appena detto nel seguente risultato.

CAPITOLO 3. EQUAZIONI DIFFERENZIALI ORDINARIE

35

Definizione 3.2.4 Un polinomio (z), di grado k, soddisfa il Criterio delle


radici se e solo se le sue radici 1 , . . . , k sono tali che
|i | 1,

i = 1, . . . , k

e ogni radice di modulo 1 `e semplice.


Se il primo polinomio caratteristico (z) associato ad un metodo multistep
lineare soddisfa il criterio delle radici allora il metodo numerico si dice Zerostabile, intendendo in questo modo che la soluzione numerica di una particolare equazione differenziale che ammette soluzione teorica limitata `e a sua
volta limitata. Le condizioni di Consistenza e Zero-stabilit`a di un metodo
multistep lineare possono essere utilizzate per dimostrare il seguente risultato
che tuttavia enunciamo senza dimostrare.
Teorema 3.2.2 Un metodo multistep lineare `e convergente se e solo se `e
consistente e zero-stabile.
Avendo gi`a fatto alcune considerazioni su consistenza e zero-stabilit`a possiamo enunciare il precedente risultato in modo equivalente:
Teorema 3.2.3 Un metodo multistep lineare (3.5) `e convergente se e solo
se:
1. (1) = 0;
2. 0 (1) (1) = 0;
3. il polinomio (z) soddisfa la condizione delle radici.
Concludiamo questo paragrafo sui metodi multistep lineari descrivendo in
breve le classi di metodi pi`
u utilizzate.

3.2.1

Alcune classi di metodi multistep lineari

La classe pi`
u famosa di metodi multistep sono i Metodi di Adams, che hanno
come primo polinomio caratteristico:
(z) = z k z k1 .
Tale polinomio soddisfa ovviamente il criterio delle radici perche i suoi zeri
sono z = 1 (radice semplice) e z = 0 (radice di molteplicit`a k 1). Un
metodo di Adams ha la formula:
yn+k yn+k1 h

k
X
j=0

j fn+j = 0.

(3.11)

CAPITOLO 3. EQUAZIONI DIFFERENZIALI ORDINARIE

36

I metodi di Adams espliciti (k = 0) sono noti come Metodi di AdamsBashforth, mentre quelli impliciti sono detti Metodi di Adams-Moulton. Il
metodo di Adams-Bashforth ad un passo coincide con il metodo di Eulero
Esplicito, mentre il metodo di Adams-Moulton ad un passo `e il metodo dei
Trapezi. I metodi di Adams sono tra i pi`
u antichi (erano noti gi`a nel diciannovesimo secolo) eppure continuano ad essere utilizzati anche negli algoritmi
pi`
u moderni.
Una seconda classe di metodi `e definita dal primo polinomio caratteristico:
(z) = z k z k2 .
Anche questi metodi sono zero-stabili perch`e il polinomio (z) ha come radici
z = 1 (radici semplici) e z = 0 (radice di molteplicit`a k 2). I metodi
espliciti di questa classe sono i Metodi di Nystr
om, quelli impliciti sono detti
Metodi di Milne-Simpson Generalizzati. Un esempio di metodo di Nystrom
`e il Metodo del Midpoint Esplicito, mentre tra i metodi di Milne-Simpson
Generalizzati, possiamo citare il Metodo di Simpson:
yn+2 yn

h
(fn+2 + 4fn+1 + fn ) = 0.
3

Unultima classe di metodi multistep che vale la pena di citare sono le cosiddette Backward Differentiotion Formulae (BDF in breve), che sono metodi
impliciti definiti dal secondo polinomio caratteristico:
(z) = k z k .
Per k = 1 il metodo appartenente a questa classe `e il metodo di Eulero
Implicito, per k = 2 abbiamo il seguente metodo che non ha un nome
particolare:
4
1
2
yn+2 yn+1 + yn hfn+2 = 0,
3
3
3
mentre per k = 3 abbiamo:
yn+3

18
9
2
6
yn+2 + yn+1 yn hfn+3 = 0.
11
11
11
11

CAPITOLO 3. EQUAZIONI DIFFERENZIALI ORDINARIE

3.3

37

I metodi Runge-Kutta

I metodi appartenenti a questa classe sono metodi ad un passo, cio`e consentono di calcolare lapprossimazione yn+1 solo in funzione dellapprossimazione precedente yn . Considerando (3.4) possiamo scrivere
y(tn+1 ) y(tn ) =

tn +h

f (t, y(t))dt.
tn

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

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


0

= y(tn ) + h

s
X

bi f (tn + hci , y(tn + hci )) +00 errore00

i=1

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


Z tn +hci
y(tn + hci ) = y(tn ) +
f (t, y(t))dt =
tn

= y(tn ) + h

ci

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


0

= y(tn ) + h

s
X

aij f (tn + hcj , y(tn + hcj )) +00 Errore00 .

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 )

(3.12)

i=1

Yi = yn + h

s
X

aij f (tn + hcj , Yj ),

i = 1, . . . , s

(3.13)

j=1

detto metodo Runge-Kutta a s-stadi.


Osserviamo che in generale il valore Yi dipende dai valori Y1 , . . . , Ys , ed in
particolare da Yi stesso, quindi (3.13) rappresenta in realt`a un sistema, in

CAPITOLO 3. EQUAZIONI DIFFERENZIALI ORDINARIE

38

generale non lineare, nelle incognite Y1 , . . . , Ys . Per questo motivo il metodo


descritto da (3.12)-(3.13) viene detto implicito.
Se invece le relazioni (3.13) sono sostituite da
Y1 = yn

(3.14)
i1
X

Yi = yn + h

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

(3.15)

j=1

la dipendenza di Yi da se stesso viene a mancare e tali valori possono essere


calcolati esplicitamente in modo progressivo da Y1 a Ys . Per questo motivo
il metodo Runge-Kutta viene detto esplicito.
Nella maggior parte dei testi di analisi numerica gli schemi Runge-Kutta
vengono riportati in una forma diversa dalla (3.12)-(3.13) ma facilmente
deducibile da questa. Infatti, posto
Ki = f (tn + hci , Yi )
abbiamo

s
X

bi Ki
yn+1 = yn + h

i=1

Ki = f

tn + hci , yn +

s
X

aij Kj

j=1

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


vengono rappresentati utilizzando il cosiddetto array di Butcher (o Butcher
tableau):
c1 a11 a12 . . . a1s
c2 a21 a22 . . . a2s
..
..
..
..
.
.
.
.
cs
s

as1
b1

as2
b2

...
...

ass
bs

o, in forma pi`
u compatta
c
s

A
bT

` bene osservare che nel caso dei metodi impliciti la matrice A `e una matrice
E
piena, mentre se il metodo `e esplicito allora A `e una matrice strettamente
triangolare inferiore.

CAPITOLO 3. EQUAZIONI DIFFERENZIALI ORDINARIE

39

Vediamo ora alcuni esempi di Metodi Runge-Kutta. Consideriamo il seguente


tableau:
0
0
(3.16)
1
In questo caso si tratta di un metodo ad uno stadio (s = 1) con coefficienti
c1 = 0,

b1 = 1,

a11 = 0,

quindi
yn+1 = yn + hb1 K1 = yn + hK1
dove
K1 = f (tn + c1 h, yn + ha11 K1 ) = f (tn , yn ).
Il metodo pu`o essere riscritto come
yn+1 = yn + hf (tn , yn )
dimostrando che esso coincide con il metodo di Eulero Esplicito.
Consideriamo ora il seguente tableau:
1/2

1/2
1

(3.17)

Anche in questo caso abbiamo un metodo ad uno stadio con coefficienti:


c1 = 1/2,

b1 = 1,

a11 = 1/2,

quindi
yn+1 = yn + hb1 K1 = yn + hK1

(3.18)

dove
K1 = f (tn + c1 h, yn + ha11 K1 ) = f (tn + h/2, yn + h/2K1 ) .

(3.19)

Da (3.18) segue che


yn+1 yn
h
quindi sostituendo nel secondo membro di (3.19) si ha:


1
K1 = f (tn + h/2, yn + 1/2(yn+1 yn )) = f tn + h/2, (yn+1 yn )
2
K1 =

CAPITOLO 3. EQUAZIONI DIFFERENZIALI ORDINARIE

40

ed ottenendo lespressione finale del metodo:




1
yn+1 = yn + hf tn + h/2, (yn+1 yn )
2
che viene detto Metodo del Midpoint Implicito.
Consideriamo ora il seguente tableau:
1
1

(3.20)

Anche in questo caso abbiamo un metodo ad uno stadio con coefficienti:


c1 = 1,

b1 = 1,

a11 = 1,

quindi
yn+1 = yn + hb1 K1 = yn + hK1

(3.21)

K1 = f (tn + h, yn + hK1 ) .

(3.22)

dove
Da (3.21) segue che
yn+1 yn
h
quindi sostituendo nel secondo membro di (3.21) si ha:
K1 =

K1 = f (tn + h, yn + (yn+1 yn )) = f (tn+1 , yn+1 )


ed ottenendo lespressione finale del metodo:
yn+1 = yn + hf (tn+1 , yn+1 )
che `e il Metodo di Eulero Implicito.
Consideriamo ora il seguente tableau:
0
1

0
1/2
1/2

0
1/2
1/2

(3.23)

In questo caso abbiamo un metodo a due stadi (s = 2) con coefficienti:


c1 = 0,

c2 = 1,

b1 = b2 = 1/2,

a11 = a12 = 0,

a21 = a22 = 1/2.

CAPITOLO 3. EQUAZIONI DIFFERENZIALI ORDINARIE

41

quindi
yn+1 = yn +

h
[K1 + K2 ]
2

(3.24)

dove
K1 = f (tn + hc1 , yn + ha11 K1 + ha12 K2 )
(3.25)
K2 = f (tn + hc2 , yn + ha21 K1 + ha22 K2 ) .
Sostituendo i valori dei coefficienti in (3.25) risulta:
K1 = f (tn , yn )
K2 = f (tn + h, yn + h/2[K1 + K2 ]) .
Da (3.24) segue che:
K1 + K2 =

2(yn+1 yn )
h

quindi
K1 = f (tn , yn )
K2 = f (tn+1 , yn + (yn+1 yn )) = f (tn+1 , yn+1 ).
In questo modo si ottiene lespressione finale del metodo:
yn+1 = yn +

h
(f (tn , yn ) + f (tn+1 , yn+1 ))
2

che `e il gi`a noto Metodo dei Trapezi.

You might also like