EQUAZIONI DIFFERENZIALI ORDINARIE ∗
A. SOMMARIVA
†Conoscenze richieste. Formula di Taylor. Risoluzione di equazioni nonlineari. Calcolo differenziale. Cono- scenza di Matlab/Octave.
Conoscenze ottenute. Discretizzazione con Eulero esplicito ed Eulero implicito. Stabilit`a assoluta dei due metodi.
1. Problema di Cauchy. P ROBLEMA . 1.1 (Problema di Cauchy ). Si determini la funzione y tale che
y 0 (x) = f (x, y(x)), x ≥ x 0
y(x 0 ) = y 0 (1.1)
dove f `e a valori in R n e definita in un sottoinsieme Ω di R × R n , con (x 0 , y 0 ) ∈ Ω.
N OTA . 1.1. Di seguito supporremo che tale problema abbia una sola soluzione.
E SEMPIO 1.1 (Equazione differenziale ordinaria).
y 0 (x) = y(x), x ≥ 0
y(0) = 1 (1.2)
la cui soluzione `e exp (x), `e un problema di Cauchy con f (x, y(x)) = y(x).
E SEMPIO 1.2 (Sistema di equazioni differenziali ordinarie).
y 1 0 (x) = −y 2 (x), x ≥ 0 y 2 0 (x) = y 1 (x), x ≥ 0 y 1 (0) = 1, y 2 (0) = 0
(1.3)
la cui soluzione `e y(x) = (y 1 (x), y 2 (x)) = (cos (x), sin (x)), `e un problema di Cauchy con y = (y 1 , y 2 ), x 0 = 0, y(x 0 ) = (1, 0) e
f (x, y(x)) = f (x, y 1 (x), y 2 (x)) = (−y 2 (x), y 1 (x)).
T EOREMA 1.1 (Teorema di Picard-Lindel¨of). Sia D = [t 0 − ε, t 0 + ε] × R. Dato il problema ai valori iniziali
y 0 (t) = f (t, y(t)), t ∈ [t 0 − ε, t 0 + ε]
y(t 0 ) = y 0
se f : D → R `e una funzione lipschitziana in y cio`e
|f (t, y 1 ) − f (t, y 2 )| ≤ Kky 1 − y 2 k, (t, y 1 ), (t, y 2 ) ∈ D
ed `e continua in t allora per qualche ε > 0, allora esiste un’unica soluzione y al problema ai valori iniziali sull’intervallo [t 0 − ε, t 0 + ε].
T EOREMA 1.2 (Cauchy in piccolo, [2, p.7]). Si supponga che
∗
Ultima revisione: 22 maggio 2017
†
Dipartimento di Matematica, Universit´a degli Studi di Padova, stanza 419, via Trieste 63, 35121 Padova, Italia (alvise@euler.math.unipd.it). Telefono: +39-049-8271350.
1
• D sia un aperto connesso di R × R n ;
• f : D → R sia una funzione continua in D;
• (t 0 , y 0 ) un punto interno a D;
• la funzione f verifichi la condizione di Lipschitz
kf (t, y 1 ) − f (t, y 2 )k ≤ Kky 1 − y 2 k, (t, y 1 ), (t, y 2 ) ∈ D.
per qualche K ≥ 0.
Allora esiste un unica funzione y definita su un intervallo [t 0 − α, t 0 + α], per qualche α > 0 tale che
y 0 (t) = f (t, y(t)), t ∈ [t 0 − α, t 0 + α]
y(t 0 ) = y 0 (1.4)
T EOREMA 1.3 (Cauchy in grande, [4 , p.331]). Sia f : [a, b] × R n → R tale che
• f (t, y), t ∈ [a, b], y ∈ R n continua nella prima variabile,
• soddisfi rispetto alla seconda variabile la condizione di Lipschitz
kf (t, y 1 ) − f (t, y 2 )k ≤ Kky 1 − y 2 k, t ∈ [a, b], y 1 , y 2 ∈ R
n. per qualche norma vettoriale k · k e K ≥ 0.
Allora il problema di Cauchy
y 0 (t) = f (t, y(t)), t ∈ [a, b]
y(a) = y 0 (1.5)
ha una e una sola soluzione y in [a, b], per un arbitrario y 0 ∈ R n . N OTA . 1.2.
• Nel teorema di Cauchy in piccolo si fornisce un teorema di esistenza e unicit`a locale.
• Nel teorema di Cauchy in grande si fornisce un teorema di esistenza e unicit`a globale.
N OTA . 1.3 (Soluzioni multiple). Esistono casi in cui il problema di Cauchy ha soluzioni multiple. Ad esempio, il problema
y 0 (x) = 2py(x), x > 0
y(x 0 ) = 0 (1.6)
ha per soluzioni, per α ∈ R +
y(x) =
y(x) = (x − α) 2 , x ≥ α
y(x) = 0, altrimenti. (1.7)
2
2. Metodo di Eulero esplicito. Indichiamo con I(x, x) il pi`u piccolo intervallo aperto contenente x e x (cio`e (x, x) oppure (x, x)). Assumendo che la soluzione sia sufficientemente regolare, abbiamo dalla formula di Taylor per x ≈ x, ξ ∈ I(x, x) e (1.1)
y(x) = y(x) + y 0 (x)(x − x) + y 00 (ξ)(x − x) 2 2
≈ y(x) + y 0 (x)(x − x) = y(x) + f (x, y(x))(x − x) (2.1) cio`e
y(x) ≈ y(x) + f (x, y(x))(x − x)
Di conseguenza se si desidera calcolare la soluzione nei punti x k+1 = x 0 + kh = x k + h con k > 0, ponendo x = x k+1 , x = x k
y(x k+1 ) ≈ y(x k ) + h · f (x k , y(x k )). (2.2) M ETODO 2.1 (Eulero esplicito, 1768-1770). Tale metodo consiste nell’approssimare y(x k+1 ) con u k+1 dove
u
k+1= u
k+ h · f (x
k, u
k), u
0= y(x
0), (2.3) ove h = x
k+1− x
k.
T EOREMA 2.1 (Errore Eulero esplicito). Se l’unica soluzione y del problema di Cauchy in [a, b] `e sufficientemente regolare in [x k , x k+1 ] ⊆ [a, b] e u
k= y(x
k) allora
y(x
k+1) − u
k+1= y
00(ξ)(x
k+1− x
k)
22 (2.4)
per qualche ξ ∈ (x k , x k+1 ).
D IMOSTRAZIONE . 2.1. Essendo
y(x k+1 ) = y(x k ) + y 0 (x k )(x − x k ) + y 00 (ξ)(x k+1 − x k ) 2 2
da u
k= y(x
k) otteniamo
u k+1 = u k + h · f (x k , u k ) = u k + h · f (x k , y(x k ))
= y(x k ) + y 0 (x k )(x k+1 − x k ), e quindi si ha per qualche ξ in (x k , x k+1 )
y(x k+1 ) − u k+1 = y(x k ) + y 0 (x k )(x k+1 − x k ) + y 00 (ξ)(x k+1 − x k ) 2 2
− (y(x k ) + y 0 (x k )(x k+1 − x k ))
= y 00 (ξ)(x k+1 − x k ) 2
2 .
3
3. Metodo di Eulero implicito. Similmente al caso di Eulero esplicito, da y(x) ≈ y(x) + f (x, y(x))(x − x)
se poniamo x = x k , x = x k+1 abbiamo
y(x k ) ≈ y(x k+1 ) + f (x k+1 , y(x k+1 ))(x k − x k+1 ), (3.1) e quindi
y(x k+1 ) ≈ y(x k ) + h · f (x k+1 , y(x k+1 )). (3.2) M ETODO 3.1 (Metodo di Eulero implicito ). Tale metodo consiste nell’approssimare y(x k+1 ) con u k+1 definito da
u
k+1= u
k+ h · f (x
k+1, u
k+1), u
0= y(x
0) (3.3)
N OTA . 3.1 (Risoluzione equazioni nonlineari). Evidentemente ad ogni iterazione si richiede di risolvere un’equazione nonlineare nella variabile z del tipo
z = u
k+ h · f (x
k+1, z) la cui soluzione pu`o essere calcolata utilizzando ad esempio
• col metodo di Newton o
• del punto fisso o
• delle secanti.
N OTA . 3.2 (Metodi di Eulero e sistemi di equazioni differenziali). Il problema di Cauchy `e definito da
y 0 (x) = f (x, y(x)), x ≥ x 0
y(x 0 ) = y 0 (3.4)
dove f `e a valori in R n e definita in un sottoinsieme Ω di R × R n , con (x 0 , y 0 ) ∈ Ω.
Nei casi multivariati con n > 1, indipendentemente dalla derivazione dovuta alla espan- sione di Taylor, i metodi
• Eulero esplicito: u k+1 = u k + h · f (x k , u k ), u 0 = y(x 0 )
• Eulero implicito: u k+1 = u k + h · f (x k+1 , u k+1 ), u 0 = y(x 0 ), possono essere utilizzati, in quanto la sequenza `e ben definita.
4. Linear Multistep Methods. D EFINIZIONE 4.1 (Linear Multistep Methods ). Sono i metodi che approssimano y(x k ) con u k , dove x k = x 0 + kh e
u n+1 =
p
X
j=0
a j u n−j + h
p
X
j=−1
b j f (x n−j , u n−j )
N OTA . 4.1. Si osservi che
• Sono metodi per cui se voglio calcolare u n+1 necessitano u n−p , . . . , u n (si chiama- no metodi a p + 1 passi). Siccome inizialmente si dispone solo di u 0 , per calcolare u 1 , . . . , u p , necessari ad innescare il metodo, si utilizzano di solito altre strategie (come ad esempio applicare pi`u volte metodi a un passo, cio`e in cui p = 0, come ad esempio Eulero implicito).
• Se b −1 = 0 allora il metodo `e esplicito, altrimenti `e implicito.
4
5. Analisi convergenza. N OTA . 5.1. Osserviamo che il metodo di Eulero esplicito
u k+1 = u k + h · f (x k , u k ) e Eulero implicito
u k+1 = u k + h · f (x k+1 , u k+1 ) hanno la forma
u n+1 =
p
X
j=0
a j u n−j + h
p
X
j=−1
b j f (x n−j , u n−j )
ponendo rispettivamente
• Eulero esplicito: p = 0, a 0 = 1, b −1 = 0, b 0 = 1,
• Eulero implicito: p = 0, a 0 = 1, b −1 = 1, b 0 = 0.
D EFINIZIONE 5.1 (Convergenza ). Supponiamo di analizzare il problema di Cauchy nell’intervallo compatto I = [x
0, xfin] . Siano x s = x 0 + sh, con N h N = x f in − x 0 ,
• y (hN) = {y(x k )} la soluzione esatta di un fissato problema di Cauchy,
• u (hN) = {u k } dove u k `e l’approssimazione di y(x k ) fornita nei punti x k da un metodo numerico a p + 1 passi.
Un metodo Linear Multistep a p + 1 passi si dice convergente se qualora i passi iniziali u (h 0N) , . . . , u (h p
N) sono tali che
η(h N ) = max
0≤k≤p |y k (h
N) − u (h k
N) | → 0 per h N → 0 si ha che
ky (hN) − u (h
N) k ∞ → 0 per h N → 0.
Se qualora η(h N ) ≤ C 1 h q implica ky (hN) − u (h
N) k ∞ ≤ C 2 h q , con C 1 , C 2 indipendenti da h, allora il metodo si dice convergente con ordine q.
D EFINIZIONE 5.2 (Errori di troncamento, [2], p.112). Se un metodo per la soluzione di problemi di Cauchy ha la forma
u n+1 =
p
X
j=0
a j u n−j + h
p
X
j=−1
b j f (x n−j , u n−j )
ove u n ≈ y(t n ), y soluzione di (1.1) in t n = x 0 + nh, e sia
τ
n(h) = 1 h ·
y(x
n+1) − (
p
X
j=0
a
jy(x
n−j) + h
p
X
j=−1
b
jf (x
n−j, y(x
n−j)))
.
5
• La quantit`a τ
n(h) chiama errore locale di troncamento del metodo.
• La quantit`a τ (h) = max
n=0,...|τ
n(h)| si chiama errore globale di troncamento del metodo.
• Un metodo per cui τ (h) tende a 0, quando h → 0 si dice consistente.
N OTA . 5.2. La consistenza rende conto di come la soluzione y del problema di Cauchy verifichi lo schema discreto del metodo linear multistep.
N OTA . 5.3. In queste note ci interesseremo esclusivamente della convergenza e con- sistenza di metodi linear multistep, ma esistono definizioni che permettono l’analisi di altri metodi non rientranti in questa famiglia.
N OTA . 5.4. Un teorema dovuto a Lax/Dahlquist, mostra che un metodo `e convergente se e solo se consistente e stabile. Un metodo Linear Multistep a p + 1 passi si dice (zero-)stabile per un certo problema di Cauchy nel compatto [x 0 , x f in ] se per ogni > 0 esiste h tale che se h N ≤ h e
max
k=0,...,p−1 |u (h k
N) − y(x 0 + kh N )| ≤ allora
ku (h kN) − y(x 0 + kh N )k ∞ ≤ K
con K indipendente da h.
Di seguito intendiamo mostrare, sotto opportune ipotesi, la convergenza del metodo di Eulero esplicito.
Consideriamo il metodo di Eulero esplicito, con x n = x 0 + nh per un prefissato passo h = (x f in − x 0 )/N . Sia y soluzione del problema di Cauchy, e
u
n= y(x
n−1) + h · f (x
n−1, y(x
n−1)),
u
n= u
n−1+ h · f (x
n−1, u
n−1).
Osserviamo che
• la prima sequenza u (h) = {u n }, ha il generico u n ottenuto applicando il metodo di Eulero esplicito partendo dal valore assunto dalla soluzione y in ogni x n−1 ,
• la seconda sequenza u (h) = {u n }, ha il generico u n ottenuto applicando il metodo di Eulero esplicito partendo dal valore assunto u n−1 , che a priori non coincide con y(x n−1 ).
Da
e
n= y(x
n) − u
n= (y(x
n) − u
n) + (u
n− u
n) (5.1) per la disuguaglianza triangolare
|e n | ≤ |y(x n ) − u n | + |u n − u n |.
Analizziamo il primo termine |y(x
n) − u
n|. Se la derivata seconda di y esiste ed `e continua allora abbiamo per il teorema di Weierstrass
max
x∈[x
0,x
f in] |y 00 (x)| ≤ M
6
e quindi per ξ n ∈ (x n−1 , x n ),
|y(x n ) − u n | = (h 2 /2) · |y 00 (ξ n )| ≤ M h 2 /2.
Di conseguenza,
h|τ
n(h)| = max
n=0,...,N
|y(x
n) − u
n| ≤ M h
2/2.
6. Analisi convergenza Eulero esplicito, caso Lipschitziano. Sketch della dimostra- zione (supposto y suff. regolare e f continua e L-lipschitziana):
1. |e n | ≤ (1 + (1 + hL) + . . . + (1 + hL) n−1 )h|τ (h)| + (1 + hL) n |e 0 |;
2. 1+(1+hL)+. . .+(1+hL) n−1 ≤ exp(L(x hLf in−x
0)) , (1+hL) n ≤ exp(L(x f in − x 0 ));
3. conclusione perch`e secondo membro infinitesimo per h → 0 visto che |τ (h)| ≤ M h 2 /2 e |e 0 | → 0 per h → 0.
Se f `e L-Lipschitziana (rispetto al secondo argomento) allora
|f (x, y 1 ) − f (x, y 2 )| ≤ L|y 1 − y 2 | e otteniamo, ricordando che e n := y(x n ) − u n ,
|u
n− u
n| ≤ (1 + hL)|e
n−1|.
Infatti da
u n = y(x
n−1) + h · f (x n−1 , y(x n−1 )), u n = u n−1 + h · f (x n−1 , u n−1 ) ricaviamo dalla L-lipschitzianit`a
|u n − u n | = |(y(x n−1 ) + h · f (x n−1 , y(x n−1 ))) − (u n−1 + h · f (x n−1 , u n−1 ))|
= |(y(x n−1 ) − u n−1 ) + h · (f (x n−1 , y(x n−1 )) − f (x n−1 , u n−1 ))|
≤ |y(x n−1 ) − u n−1 | + h|f (x n−1 , y(x n−1 )) − f (x n−1 , u n−1 ))|
≤ |y(x n−1 ) − u n−1 | + hL|y(x n−1 ) − u n−1 | = (1 + hL)|y(x n−1 ) − u n−1 |
= (1 + hL)e n−1 . (6.1)
Da
• e n := y(x n ) − u n = (y(x n ) − u n ) + (u n − u n ),
• |y(x n ) − u n | ≤ h|τ (h)|,
• |u n − u n | ≤ (1 + hL)|e n−1 | si deduce
|e n | = |(y(x n ) − u n ) + (u n − u n )|
≤ |y(x n ) − u n | + |u n − u n |
≤ h|τ (h)| + (1 + hL)|e n−1 | (6.2)
ovvero
|e
n| ≤ h|τ (h)| + (1 + hL)|e
n−1|.
Quindi essendo
7
• |e 0 | → 0 per h → 0,
• |e n | ≤ h|τ (h)| + (1 + hL)|e n−1 |, ricaviamo
|e n | ≤ h|τ (h)| + (1 + hL)|e n−1 |
≤ h|τ (h)| + (1 + hL)(h|τ (h)| + (1 + hL)|e
n−2|)
= (1 + (1 + hL))h|τ (h)| + (1 + hL) 2 |e n−2 |
≤ . . .
≤ (1 + (1 + hL) + . . . + (1 + hL) n−1 )h|τ (h)| + (1 + hL) n |e 0 | e cio`e
|e
n| ≤ (1 + (1 + hL) + . . . + (1 + hL)
n−1)h|τ (h)| + (1 + hL)
n|e
0|.
Ricordando che
1 + s + . . . + s k = (1 − s k+1 ) (1 − s) posto s = 1 + hL deduciamo che
1 + (1 + hL) + . . . + (1 + hL)
n−1= 1 − (1 + hL) n
1 − (1 + hL) = (1 + hL)
n− 1
hL .
Notiamo che per γ > 0
exp (γ) =
∞
X
k=0
γ k k! ≥
1
X
k=0
γ k
k! = 1 + γ (6.3)
e quindi (1 + γ) n ≤ (exp(γ)) n = exp(nγ) implica che per γ = hL si ha essendo nh = x n − x 0
(1 + hL)
n≤ exp (nhL) = exp (L(x
n− x
0)) ≤ exp (L(x
f in− x
0)).
Da
• 1 + (1 + hL) + . . . + (1 + hL) n−1 = 1−(1+hL) 1−(1+hL)n = (1+hL) hLn−1
−1
• (1 + hL)
n≤ exp (L(x
f in− x
0)), concludiamo che
1 + (1 + hL) + . . . + (1 + hL) n−1 = (1 + hL) n − 1
hL ≤ exp (L(x f in − x 0 )) − 1 hL
≤ exp (L(x f in − x 0 ))
hL (6.4)
e quindi da |τ (h)| ≤ M h 2 /2
(1 + (1 + hL) + . . . + (1 + hL) n−1 )h|τ (h)| ≤ exp (L(x f in − x 0 ))
hL h|τ (h)|
= exp (L(x f in − x 0 ))|τ (h)| → 0.
8
Di conseguenza da
|e n | ≤ (1 + (1 + hL) + . . . + (1 + hL) n−1 )h|τ (h)| + (1 + hL) n |e 0 |
≤ exp (L(x f in − x 0 ))|τ (h)| + exp (L(x f in − x 0 ))|e 0 |
≤ exp (L(x f in − x 0 )) M h 2
2 + exp (L(x f in − x 0 ))|e 0 | (6.5) visto che il secondo membro non dipende da n ricaviamo
max
n=0,...,N |e n | ≤ exp (L(x f in − x 0 )) M h 2
2 + exp (L(x f in − x 0 ))|e 0 |
e quindi il metodo di Eulero esplicito risulta convergente, visto che il secondo membro `e infinitesimo.
Consideriamo il metodo di Eulero implicito
u n = u n−1 + hf (t n , u n ), u 0 = y 0 . Calcoliamo l’errore globale di troncamento. Se g ∈ C 2 (a, b),
Z b a
g(x)dx = (b − a)g(b) − (b − a) 2 g (1) (ξ)/2, ξ ∈ (a, b) e posto b = x n , a = x n−1 , b − a = h, se y `e suff. regolare
y n = y n−1 + Z xn
x
n−1y 0 (x)dx = y n−1 + hy 0 (x n ) − h 2 y 00 (ξ)/2
= y n−1 + hf (x n , y n ) − h 2 y 00 (ξ)/2 (6.6) e quindi facilmente
τ n (h) = −(1/h) · (h 2 y 00 (ξ)/2) = −hy 00 (ξ)/2.
Ricordiamo che y n = y(t n ) `e la soluzione del problema di Cauchy mentre u n = u n−1 + hf (t n , u n ), u 0 = y 0 .
Definiamo
u n := y n−1 + hf (t n , u n ), u 0 = y 0 . Come in precedenza
y n − u n = (y n − u n ) + (u n − u n ) e quindi per la disuguaglianza triangolare
|y n − u n | ≤ |y n − u n | + |u n − u n |.
Studiamo separatamente i termini al secondo membro.
Osserviamo che
|u n − u n | = |u n − (y n−1 + hf (t n , u n ))| = h|τ n (h)|
9
Studiamo |u n − u n | ricordando che e 0 = |y 0 − u 0 | → 0. Dalla lipschitzianit`a (rispetto la seconda variabile)
|u n − u n | = |y n−1 + hf (t n , u n ) − u n−1 − hf (t n , u n )|
= |y n−1 − u n−1 + hf (t n , u n ) − hf (t n , u n )|
≤ |y n−1 − u n−1 | + h|f (t n , u n ) − f (t n , u n )|
≤ |y n−1 − u n−1 | + hL|u n − u n | (6.7) da cui facilmente per h sufficientemente piccolo, cosicch`e 1 − hL > 0,
|u n − u n | ≤ |y n−1 − u n−1 | 1 − hL . Da
• |y n − u n | = h 2 |y 00 (ξ)/2|,
• |u n − u n | ≤ |yn−11−hL −u
n−1| , se ky 00 k ∞ ≤ M
|y n − u n | ≤ |y n − u n | + |u n − u n |
≤ h 2 |y 00 (ξ)|
2 + |y n−1 − u n−1 | 1 − hL
≤ h 2 |y 00 (ξ)|
2 + |y n−1 − u n−1 |
1 − hL (6.8)
Con ragionamenti simili a quelli utilizzati per mostrare la convergenza di Eulero esplici- to, abbiamo per h piccolo che s = 1/(1 − hL) > 1, posto τ (h) = max n |τ n (h)|
|e n | ≤ h|τ n (h)| + s|e n−1 | ≤ sh|τ n (h)| + s|e n−1 |
≤ sh|τ n (h)| + s(sh|τ n−1 (h)| + s|e n−2 |)
≤ . . .
≤ h
n
X
k=1
s k |τ n−k+1 (h)| + s n |e 0 |
≤ h(
n
X
k=1
s k )|τ (h)| + s n |e 0 | (6.9)
Notiamo che se hL < 1 allora s = 1/(1 − hL) > 1 e che
n
X
k=1
s k = s n+1 − 1
s − 1 ≤ s n+1 s − 1 Ora
s − 1 = 1
1 − hL − 1 = hL
1 − hL > 0 (6.10)
e da (1 + x) k ≤ exp(kx) per x > 0, abbiamo
s n+1 = (1 + (s − 1)) n+1 ≤ exp((n + 1)(s − 1))
= exp( hL(n + 1)
1 − hL ) = exp( L(x n+1 − x 0 )
1 − hL ) (6.11)
10
e quindi
n
X
k=1
s k ≤ (1 − hL) exp( L(x 1−hLn+1−x
0) ) hL
Cos`ı ricapitolando
|e n | ≤ h(
n
X
k=1
s k )|τ (h)| + s n |e 0 |,
n
X
k=1
s k ≤ (1 − hL) exp( L(x 1−hLn+1−x
0) ) hL
s n ≤ exp( L(x n − x 0 ) 1 − hL ), implica finalmente
|e n | ≤ h (1 − hL) exp( L(x 1−hLn+1−x
0) )
hL |τ (h)| + exp( L(x n − x 0 ) 1 − hL )|e 0 |.
Se ky 00 k ≤ M e xfin = x 0 + N h, |e 0 | → 0 per h → 0 abbiamo
|e n | ≤ h (1 − hL) exp( L(x 1−hLn+1−x
0) )
hL |τ (h)| + exp( L(x n − x 0 ) 1 − hL )|e 0 |
≤ h (1 − hL) exp( L(x 1−hLn+1−x
0) ) hL
M h
2 + exp( L(xfin − x 0 ) 1 − hL )|e 0 |
≤ (1 − hL) exp( L(x 1−hLn+1−x
0) ) L
M h
2 + exp( L(xfin − x 0 ) 1 − hL )|e 0 | e quindi |e n | → 0 per h → 0, cio`e Eulero implicito `e convergente.
Supponiamo di dover risolvere il problema di Cauchy
y 0 (x) = f (x, y(x)), x ≥ x 0
y(x 0 ) = y 0
(6.12) Osserviamo che se x n+1 = x 0 + nh allora ricordando la formula del trapezio per il calcolo di integrali
y(x n+1 ) = y(x n ) + Z xn+1
x
ny 0 (x)dx
≈ y(x n ) + (h/2)(y 0 (x n+1 ) + y 0 (x n ))
= y(x n ) + (h/2)(f (x n , y(x n )) + f (x n+1 , y(x n+1 ))).
N OTA . 6.1. Utilizzando rispettivamente le formule dei rettangoli,
Z b a
g(x)dx ≈ (b − a)g(a), Z b
a
g(x)dx ≈ (b − a)g(b)
11
si possono ottenere similmente i metodi di Eulero esplicito e implicito.
Essendo
y(x n+1 ) ≈ y(x n ) + (h/2)(f (x n , y(x n )) + f (x n+1 , y(x n+1 ))) (6.13) si introduce il metodo di Crank-Nicolson (1947):
M ETODO 6.1 (Crank-Nicolson o dei trapezi ). Tale metodo consiste nell’approssimare y(x n+1 ) con u n+1 dove
u
n+1= u
n+ (h/2)(f (t
n, u
n) + f (t
n+1, u
n+1)) (6.14)
con u 0 = y 0 .
Si osservi che ad ogni iterazione, essendo il metodo implicito, bisogna risolvere una equazione nonlineare.
Nell’ambito delle equazioni differenziali ordinarie, esistono vari criteri di stabilit´a. Un classico problema `e quello di vedere se un metodo `e assolutamente stabile. Definito il problema di Cauchy
y
0(x) = λy(x), x ≥ 0
y(0) = 1 (6.15)
per un certo λ ∈ C con <(λ) < 0, visto che l’unica soluzione `e y(x) = exp (λx) si cerca di definire il passo h cosicch`e il metodo numerico per la soluzione del problema di Cauchy (1.1) abbia lo stesso comportamento asintotico di exp (λx).
La regione di assoluta stabilit`a `e composta dagli hλ, per cui il metodo numerico con passo h `e tale da avere lo stesso comportamento asintotico del problema di Cauchy (6.15) relativo al parametro λ (con <(λ) < 0).
N OTA . 6.2 (Facoltativo). Stabilire la stabilit`a per il problema di Cauchy
y 0 (x) = f (x, y(x)), x ≥ 0 y(x 0 ) = y 0
(6.16)
`e in generale complicato. Se invece consideriamo
y 0 (x) = λy(x) + g(x), x ≥ 0
y(0) = y 0 (6.17)
la questione `e pi`u semplice. Ricordiamo che la soluzione di (6.17) `e y(x) = c · exp (λx) +
Z x 0
exp (λ(x − t))g(t)dt con
c = y 0
(cf. [1, p.369]).
6.1. Sia y la soluzione di
y 0 (x) = λy(x) + g(x), x ≥ 0
y(0) = y 0 (6.18)
12
e y quella di
y 0 (x) = λy(x) + g(x), x ≥ 0
y(0) = y 0 + (6.19)
Posto z = y − y, da (6.18), (6.20),
z 0 (x) = λz (x), x ≥ 0
y(0) = (6.20)
la cui soluzione `e z = · exp (λx).
Di solito nelle applicazioni ci si interessa al caso λ < 0 o complesso con parte reale negativa. In questi casi z → 0 per n → ∞ e quindi l’effetto delle perturbazioni si annulla per valori grandi di x.
Si desidera che il metodo numerico goda delle stesse propriet`a e la risposta la si ha nuovamente dallo studio della regione di stabilit`a.
D EFINIZIONE 6.1 (Problema stiff). Un problema di Cauchy
y
0(x) = λy(x), x ≥ 0
y(0) = 1. (6.21)
si dice stiff, quando <(λ) 0 (cio`e <(λ) `e molto grande in valore assoluto).
Ricordiamo a tal proposito che dalla formula di Eulero, se z = a + ib = <(z) + =(z) allora
exp (z) = exp (a) · (cos (b) + i sin (b)).
Quindi se <(λ) < 0, visto che | cos (=(λx)) + i sin (=(λx))| = 1 e x > 0 abbiamo
| exp (λx)| = |exp(<(λx))|| cos (=(λx)) + i sin ((=(λx)))|
= |exp (<(λx))| → 0, per x → ∞.
Visto il comportamento asintotico di exp (λx), se u n `e l’approssimazione della soluzione in x n = x 0 +nh fornita da un metodo numerico a passo h, si desidera sia u n → 0 per n → +∞.
Nel caso del metodo di Eulero esplicito,
u n = u n−1 + hf (x n−1 , u n−1 ) = (1 + hλ)u n−1 , u 0 = 1.
Si verifica facilmente che questa equazione alle differenze (di ordine 1) ha quale unica solu- zione
u
n= (1 + hλ)
ne che
u n → 0 se e solo se |1 + hλ| < 1
il che significa che hλ deve stare nel disco del piano complesso di centro −1 e raggio 1.
Di conseguenza, fissato λ, il metodo risulta stabile se e solo se si sceglie un passo sufficientemente piccolo, cio`e minore di 1/|λ|.
Nel caso di problemi stiff, cio`e con <(λ) 0, si deve scegliere un passo h molto piccolo affinch`e la soluzione di Eulero esplicito tenda a 0.
13
−4 −3 −2 −1 0 1 2
−3
−2
−1 0 1 2
F
IGURA6.1. In magenta: regione di assoluta stabilit`a di Eulero esplicito: disco unitario centrato in (−1, 0).
Nel caso del metodo di Eulero implicito,
u n = u n−1 + hf (x n , u n ) = u n−1 + hλu n , u 0 = 1.
Portando a primo membro hλu n , dividendo i membri per 1 − hλ u n = u n−1
1 − hλ . Si verifica, ragionando per induzione, che
u
n= 1
(1 − hλ)
ne quindi che
u n → 0 se e solo se 1
|1 − hλ| < 1.
Essendo <(λ) < 0, si vede facilmente che | 1−hλ 1 | < 1 per qualsiasi h. Infatti, hλ = a + ib con a < 0, ci`o `e vero se e solo se
1
|1 − hλ| < 1 ⇔ 1 < |1 − hλ| = p
(1 − a) 2 + b 2 ovvero, elevando ai quadrati entrambi i membri, se e solo se
1 < (1 − a) 2 + b 2
ovviamente verificata in quanto a < 0, a, b ∈ R. La regione di ass. stabilit`a `e tutto il semipiano negativo <(hλ) < 0.
N OTA . 6.3. Questa propriet`a suggerisce di applicare Eulero implicito invece di Eulero esplicito per risolvere numericamente un problema di Cauchy di tipo stiff.
Nel caso del metodo di Crank-Nicolson, da f (x, y) = λy
14
−6 −5 −4 −3 −2 −1 0 1
−6
−4
−2 0 2 4 6
F
IGURA6.2. In magenta: regione di assoluta stabilit`a di Eulero implicito, semipiano negativo <(hλ) < 0.
u n = u n−1 + (h/2)(f (x n , u n ) + f (x n−1 , u n−1 ))
= u n−1 + (h/2)λ(u n + u n−1 ), u 0 = 1 (6.22) Quindi,
(1 − hλ
2 )u n = u n−1 + hλ 2 u n cio`e
2 − hλ
2 · u n = 2 + hλ 2 · u n−1
e di conseguenza
u n = 2 + hλ 2 − hλ u n−1
Da
u n = 2 + hλ 2 − hλ u n−1
si verifica facilmente che questa equazione alle differenze ha quale unica soluzione
u
n= (2 + hλ)
n(2 − hλ)
ne che
u n → 0 se e solo se |2 + hλ|
|2 − hλ| < 1.
15
−6 −5 −4 −3 −2 −1 0 1
−6
−4
−2 0 2 4 6
F
IGURA6.3. In magenta: regione di assoluta stabilit`a di Crank-Nicolson, semipiano negativo <(hλ) < 0.
Da <(λ) < 0, | 2+hλ 2−hλ | < 1 per h > 0. Infatti, se hλ = a + ib, a < 0
|2 + hλ|
|2 − hλ| = |2 + (a + ib)|
|2 − (a + ib)| = |(2 + a) + ib|
|(2 − a) + ib| = p(2 + a) 2 + b 2 p(2 − a) 2 + b 2 < 1 in quanto (2 + a) 2 < (2 − a) 2 , qualora a < 0.
La regione di ass. stabilit`a `e tutto il semipiano negativo <(hλ) < 0.
Posto h > 0, x n = x 0 + nh, un metodo linear multistep `e del tipo
u n+1 =
p
X
j=0
a j u n−j + h
p
X
j=−1
b j f (x n−j , u n−j ), n = p, p + 1, . . . (6.23)
noti i valori u k ≈ y(x k ) per k < p e supposto a p , b p 6= 0.
N OTA . 6.4. Non `e difficile vedere che
• Eulero esplicito (a 0 = 1, b 0 = 1),
• Eulero implicito (a 0 = 1, b −1 = 1),
• Crank-Nicolson (a 0 = 1, b −1 = 1/2, b 0 = 1/2) sono metodi che hanno questa struttura.
Da
• y 0 (x) = f (x, y(x)),
• y(x n+1 ) = y(x n−m ) + R xn+1
x
n−my 0 (x) dx ricaviamo che
y(x n+1 ) = y(x n−m ) + Z xn+1
x
n−my
0(x) dx = y(x n−m ) + Z xn+1
x
n−mf (x, y(x)) dx.
Se per γ = 0 oppure γ = −1 e un numero naturale p, si suppone y(x n+γ−k ) ≈ u n+γ−k , k = γ, . . . , p
f n+γ−k := f (x n+γ−k , u n+γ−k )
16
allora se P p (x) = P
k f n+γ−k L k (x) `e il polinomio che interpola le coppie (x n+γ−k , f n+γ−k ) scritto nella forma di Lagrange, si ha
y(x n+1 ) ≈ y(x n−m ) + Z xn+1
x
n−mP p (x) dx = y(x n−m ) + X
k
f n+γ−k
Z xn+1
x
n−m
L k (x)dx
e quindi facilmente un metodo via quadratura numerica dell’integrale.
Scegliendo i nodi {x n } equispaziati,
• se m = 0, γ = 0 si hanno metodi espliciti (Adams-Bashforth, (1883));
• se m = 0, γ = 1 si hanno metodi impliciti (Adams-Moulton, (1926)).
N OTA . 6.5.
• Nel caso m = p − γ in particolare, la formula di integrazione `e in realt´a quella ben nota di tipo Newton-Cotes (chiusa o aperta a seconda γ = −1 o γ = 0).
• Si osservi che altri metodi di tipo linear multistep sono ottenibili per altre scelte di m e γ. Esempi sono per n ≥ 1
– metodo del punto medio: u
n+1= u
n−1+ 2hf
n,
– metodo di Milne: u
n+1= u
n−1+ (h/3)[f
n−1+ 4f
n+ f
n+1].
• Con un approccio diverso si possono ottenere i metodi LM di tipo BDF ove u n+1 = P p
j=0 a j u n−j + hb −1 f n+1 .
• Adams-Bashforth (p=0): u n+1 = u n + hf n , τ n+1 = (h/2)y (2) (ξ n ).
• Adams-Bashforth (p=1): u n+1 = u n + h 2 (3f n − f n−1 ), τ n+1 = (5h 2 /12)y (3) (ξ n ).
• Adams-Bashforth (p=2): u n+1 = u n + 12 h (23f n − 16f n−1 + 5f n−2 ), τ n+1 = (3h 3 /8)y (4) (ξ n ).
• Adams-Bashforth (p=3): u n+1 = u n + 24 h (55f n − 59f n−1 + 37f n−2 − 9f n−3 ), τ n+1 = (251h 4 /720)y (5) (ξ n ).
• Adams-Bashforth (p=4): u n+1 = u n + 720 h (1901f n − 2774f n−1 + 2616f n−2 − 1274f n−3 + 251f n−4 ), τ n+1 = (95h 5 /2888)y (5) (ξ n ).
dove τ n+1 `e l’errore locale di troncamento
N OTA . 6.6. Si noti che sono effettivamente metodi espliciti a p + 1 passi.
• Adams-Moulton (p=0): u n+1 = u n + hf n+1 , τ n+1 = (−h/2)y (2) (ξ n ).
• Adams-Moulton (p=1): u n+1 = u n + h 2 (f n+1 + f n ), τ n+1 = (−h 2 /12)y (3) (ξ n ).
• Adams-Moulton (p=2): u n+1 = u n + 12 h (5f n+1 +8f n −f n−1 ), τ n+1 = (−h 3 /24)y (4) (ξ n ).
• Adams-Moulton (p=3): u n+1 = u n + 24 h (9f n+1 + 19f n − 5f n−1 + f n−2 ), τ n+1 = (−19h 4 /720)y (5) (ξ n ).
• Adams-Moulton (p=4): u n+1 = u n + 720 h (251f n+1 +646f n −264f n−1 +106f n−2 − 19f n−3 ), τ n+1 = (−3h 5 /160)y (6) (ξ n ).
N OTA . 6.7. Si noti che sono effettivamente metodi impliciti a p passi.
T EOREMA 6.1 ([5, p.437]). Un metodo linear multistep
• `e consistente se e solo se
p
X
j=0
a
j= 1, −
p
X
j=0
ja
j+
p
X
j=−1
b
j= 1,
• se y ∈ C q+1 per q ≥ 1, ha ordine di consistenza q se e solo se `e consistente e
17
p
X
j=0
(−j)
ia
j+ i
p
X
j=−1
(−j)
i−1b
j= 1, i = 2, . . . , q.
T EOREMA 6.2 (Convergenza LM (cf.[1, p.116])). Si supponga che
• i dati iniziali siano calcolati in modo che
η(h) = max
i=0,...,p |y(x i ) − u i | → 0, per h → 0;
• il metodo sia consistente;
• a j ≥ 0, j = 0, . . . , p;
• il passo di discretizzazione h sia tale che h ≤ 1/(2c), dove c = L P
pj=−1
|b
j| e L `e la costante di Lipschitz di f .
Allora il metodo LM converge ed inoltre esistono C 1 , C 2 positive tali che per ogni n
|y(x n ) − u n | ≤ C 1 η(h) + C 2 τ (h).
Se la soluzione `e m+1 volte derivabile con continuit`a, il metodo ha ordine di consistenza m e gli errori iniziali soddisfano η(h) = O(h m ) allora il metodo `e di ordine m.
N OTA . 6.8. Nelle ipotesi del teorema precedente, per ricavare la convergenza chiedava- mo:
• i dati iniziali siano calcolati in modo che
η(h) = max
i=0,...,p |y(x i ) − u i | → 0, per h → 0;
• il metodo sia consistente;
• a j ≥ 0, j = 0, . . . , p;
• il passo di discretizzazione h sia tale che h ≤ 1/(2c), dove c = L P
pj=−1