Professional Documents
Culture Documents
Introduzione
(3.1)
20
y1 = y
y2 = y
y3 = y 00
..
y = y (m1)
m
= 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)
n = 0, . . . , N
21
tn
cio`e
y(tn+1 ) y(tn ) =
tn+1
f (t, y(t))dt
(3.4)
tn
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 ).
22
h
[f (tn+1 , y(tn+1 )) + f (tn , y(tn ))]
2
h
[f (tn+1 , yn+1 ) + f (tn , yn )] .
2
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.
3.2
23
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
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
k
X
j z j
j=0
j=0
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)
25
avendo posto
Gn,k =
k1
X
j fn+j
j=0
k1
X
j yn+j ,
j=0
yn+k = yn+k1 .
Il metodo iterativo `e quindi
[0]
= yn+k1
[m+1]
yn+k
yn+k
[m]
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
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
k
X
j=0
k
X
[j y(tn+j ) hj y 0 (tn+j )] =
j=0
k
X
j=0
h0
28
= y(tn + jh) =
X
(jh)i
i!
i=0
y (i) (tn ),
X
(jh)i
i!
i=0
y (i+1) (tn ).
= 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
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
k
X
29
k
X
ji
j i1
Ci =
j j
i!
(i 1)!
j=0
j ,
j=0
k
X
j = 0
j=0
C1 =
k
X
(j j j ) = 0.
j=0
k
X
j = (1) = 0
j=0
C1 =
k
X
(j j j ) = 0 (1) (1) = 0
j=0
0 (1) (1) = 0.
30
(1) = 0,
(3.9)
(z) = 1 z + 0
31
h
[fn + fn+1 ] .
2
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
32
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 ().
33
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, . . .
1 5
=
2
n = 0, 1, 2, . . .
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
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
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
35
i = 1, . . . , k
3.2.1
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)
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
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
= y(tn ) + h
s
X
i=1
= y(tn ) + h
ci
= y(tn ) + h
s
X
j=1
s
X
bi f (tn + hci , Yi )
(3.12)
i=1
Yi = yn + h
s
X
i = 1, . . . , s
(3.13)
j=1
38
(3.14)
i1
X
Yi = yn + h
(3.15)
j=1
s
X
bi Ki
yn+1 = yn + h
i=1
Ki = f
tn + hci , yn +
s
X
aij Kj
j=1
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.
39
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)
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)
40
(3.20)
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 =
0
1/2
1/2
0
1/2
1/2
(3.23)
c2 = 1,
b1 = b2 = 1/2,
a11 = a12 = 0,
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