Metodi numerici per ODE
Problema di Cauchy
Consideriamo un’equazione differenziale (sistema di equazioni) del primo ordine in forma normale con condizioni iniziali
assegnate.
y 0 (x ) = f (x , y (x )) x ∈ [x 0 , x F ] y (x 0 ) = y 0
y 1 0 (x ) = f 1 (x , y 1 (x ), . . . , y n (x )) y 2 0 (x ) = f 2 (x , y 1 (x ), . . . , y n (x ))
. . . x ∈ [x 0 , x F ]
y n 0 (x ) = f n (x , y 1 (x ), . . . , y n (x ))
y 1 (x 0 ) = y 0 (1) , y 2 (x 0 ) = y 0 (2) , . . . , y n (x 0 ) = y 0 (n)
Si ricordi che un’equazione differenziale di ordine n esprimibile
in forma normale, pu `o essere sempre ricondotta a un sistema
di n equazioni differenziali di ordine uno.
Questioni teoriche: esistenza e unicit `a della soluzione
Teorema Sia f(x, y) una funzione definita nella striscia
S = {(x , y )| x ∈ [x 0 , x F ]; y ∈ R n }, ivi continua rispetto a x e a y e che gode di una condizione di Lipschitz rispetto a y in S, ossia esiste L > 0 (costante di Lipschitz) tale che
kf (x, y 1 ) − f (x , y 2 )k ≤ Lky 1 − y 2 k per ogni y 1 , y 2 ∈ R n e per ogni x ∈ [x 0 , x F ].
Allora per ogni ¯ x ∈ [x 0 , x F ] e per ogni ¯ y ∈ R n esiste una e una
sola funzione y (x ) continua e differenziabile con continuit `a in
[x 0 , x F ] tale che y (x ) soddisfa y 0 (x ) = f (x , y (x )) in [x 0 , x F ] e
y (¯ x ) = ¯ y .
Questioni teoriche
Dipendenza continua dai dati: si studia il comportamento della soluzione quando la pertubazione sul dato iniziale tende a zero.
Condizionamento: perturbazione sul dato iniziale fissata.
Infatti non possiamo farla tendere a zero!
Il condizionamento `e legato a ∂f /∂y .
Se ∂f /∂y < 0, le soluzioni ottenute a partire da differenti valori iniziali tendono a diminuire la loro distanza per x crescente.
Il problema `e ben condizionato (stabile).
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35
0 0.2 0.4 0.6 0.8 1 1.2 1.4
dato iniziale dato perturbato soluzione sol. prob. perturbato
Questioni teoriche
Se ∂f /∂y > 0, segue che la distanza tra due soluzioni ottenute a partire da valori iniziali di poco diversi, aumenta al crescere di x. Il problema `e mal condizionato (instabile).
0 0.005 0.01 0.015 0.02 0.025 0.03
0 5 10 15 20 25
dato iniziale dato perturbato soluzione sol. prob. perturbato
Metodi numerici
Nelle applicazioni, si richiede che f (x , y ) sia sufficientemente regolare, ossia che ammetta derivate parziali continue e limitate fino all’ordine p, con p > 1, in S.
La risoluzione numerica del problema di Cauchy si basa su una discretizzazione del dominio I = [x 0 , x F ] che pu `o essere fatta a passo costante o a passo variabile.
Si decompone I in µ sottointervalli di ampiezza h n , con i nodi dati da
x n = x 0 +
n
X
j=1
h j .
Se h n = h, allora x n = x 0 + nh. In tal caso la discretizzazione `e a passo costante. Ci `o capita raramente nelle applicazioni.
I metodi numerici risolutivi si propongono di determinare una
successione di valori y n , n = 1 . . . , µ, ove y n rappresenta una
approssimazione della soluzione analitica incognita in x n , ossia
y n `e una approssimazione di y (x n ).
Metodi numerici
Il valore di y n si ottiene mediante approssimazioni calcolate in k passi precedenti.
Se k = 1, si parla di metodi ad un passo.
In questo caso y n viene calcolato a partire dall’approssimazione y n−1 .
Se k > 1, si parla di metodi multipasso.
Metodo di Eulero
Metodo semplice da illustrare ma non efficiente nella maggior parte delle applicazioni.
x i+1 = x i + h, y i+1 = y i + hf (x i , y i ), i = 0, . . . , µ − 1
E un metodo di ordine 1. `
Metodi Runge Kutta
Formula generale
y i+1 = y i + h
s
X
j=1
b j f j dove
f 1 = f (x i , y i ), f j = f (x i + c i h, y i + h
j−1
X
l=1
a jl f l ), j = 2, . . . , s
Il numero s indica il numero di stadi ovvero il numero di
valutazioni della funzione f .
Esempi di metodi Runge Kutta
Il metodo di Heun
Utilizza due valutazioni funzionali (due stadi).
E’ un metodo di ordine 2.
x i+1 = x i + h, y i+1 = y i + h
2 (f 1 + f 2 ) dove
f 1 = f (x i , y i ), f 2 = f (x i + h, y i + hf 1 )
Esempi di metodi Runge Kutta
Il metodo a tre stadi di ordine 3 y i+1 = y i + h
6 (f 1 + 4f 2 + f 3 ) dove
f 1 = f (x i , y i ) f 2 = f (x i + h
2 , y i + h
2 f 1 )
f 3 = f (x i + h, y i + h(2f 2 − f 1 ))
Attenzione: il numero di stadi NON `e pari all’ ordine del metodo!
Butcher ha provato una relazione tra il numero s degli stadi di una formula Runge Kutta esplicita e il suo ordine k .
s 1 2 3 4 5 6 7 8 9
k 1 2 3 4 4 5 6 6 7
Considerazioni pratiche: scelta del metodo
Metodo accurato: richiede pi `u valutazioni funzionali ad ogni passo, ma generalmente l’accuratezza richiesta `e raggiunta con h ”non troppo piccolo” ⇒ maggiore efficienza.
0 1 2 3 4 5 6
0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2 2.4
soluzione esatta eulero passo h=0.3 heun passo h=0.3
1 1.5 2
soluzione esatta eulero passo h=0.1 heun passo h=0.1