Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Sia
0
y (x) = f (x, y(x)) x > x0
y(x0 ) = y0
Intervallo di integrazione è [x0 , xN ]. Il metodo dei trapezi prevede di approssimare l’integrale con la
formula dei trapezi: Z xn+1
y(xn+1 ) − y(xn ) = f (x, y(x))dx (1)
xn
Quindi si ha che: Z b
g(a) + g(b)
g(x)dx ≈ (b − a) (2)
a 2
Introducendo la notazione a pedice, possiamo riscriver la (1) come:
h
yn+1 = yn + [f (xn , yn ) + f (xn+1 , yn+1 )] (3)
2
iSi tratta di un metodo numerico ancora ad un passo;
iSi tratta di un metodo implicito, perché la soluzione al passo n + 1 appare implicitamente nella
espressione della funzione f , di conseguenza va adattato ogni volta a seconda delle funzioni.
1
Metodo di Heun e di Runge-Kutten a 4 stadi
2
Implementazione Matlab
Ricordiamo che la nostra funzione modello è la seguente:
( 0
y (x) = y(x) x>0
y(1) = 0
Vediamo da prima l’implementazione del metodo dei trapezi. Ricordiamo la formula risolutiva:
h
yn+1 = yn + [f (xn , yn ) + f (xn+1 , yn+1 )]
2
Integrando la equazione generale con il nostro caso particolare, si ottiene:
h
yn+1 = yn + [yn + yn+1 ]
2
Isolando la yn+1 si perviene a:
1 + h/2
yn+1 = yn
1 − h/2
Andiamo ad implementarla:
3
Velocità di convergenza
Il metodo ad un passo si dice convergente in [a, b] se, qualunque sia il problema di Cauchy con f
dotata di derivate parziali prime continue e limitate nella striscia [a, b] ∈ <, per ogni x ∈ [a, b] e
h = (x − a)/N risulta:
lim kyN − y(x)k = 0 (4)
N →∞
Ove:
Cosa significa? Che per Eulero, l’errore tende a zero linearmente, mentre per Runge-Kutta l’errore
tende a zero molto più velocemente degli altri metodi visti (poiché esponente tende a zero come O(h4 ).
iQuindi l’ordine ci convergenza dipende dal metodo, ma anche dalla funzione.
L’errore decresce al diminuire di h: infatti i nostri codici matlab prevedono che:
N = 2 , 4 , 8 , 16....
I metodi convergono sotto una certa soglia. Ovvero, la convergenza si ha per h → 0, esistono però dei
metodi stiff che se vengono applicati ai problemi cosiddetti stiff, generano un errore che aumenta
col in "raffinare" dell’intervallo! Iniziano a diminuire solamente al di sotto di una certa soglia: tale
soglia dipende dal metodo. Per Eulero esplicito, tale limite è infinitamente grande QUALUNQUE
sia l’equazione differenziale. Quindi i risultati sono accettati solo se h < hlim : per valori di h sotto
questo valore limite, il metodo viene definito metodo stabile. Se invece h è troppo grande, gli errori
si amplificano passo dopo passo, rendendo il metodo un metodo instabile.
I metodi impliciti non hanno vincoli sulla scelta di questo parametro!
iI metodi impliciti sono metodi stabili.
4
iÈ sbagliato scegliere a-priori il metodo di Runge-Kutta, poiché un metodo
esplicito, quindi direttamente influenzato dal valore di h.
Prendiamo il seguente problema modello e facciamo delle considerazioni generali:
( 0
y (x) = λ y(x)
y(0) = 1
y(x) = eλ x
Cosa succede se vado a calcolare limx→∞ y(x)? Esso tende a zero, dato che λ è negativo. Cosa
succede se applichiamo il metodo di Eulero esplicito a questo problema?
lim yn = 0 (8)
n→∞
La mia successione deve tendere a zero per n che va ad infinito. Ma quale è l’espressione di yn ?
Riscriviamo al (6) nel seguente modo:
|1 + h λ| < 1 (10)
Per quali valori di h? Per ogni suo valore, dato che λ è negativo.
Per quali valori di λ? Per :
2
h< (11)
|λ|
Infatti, più λ cresce, maggiore è la sua convergenza a zero.