Appunti sul corso di Complementi di Matematica ( modulo Analisi)- prof. B.Bacchelli
02- Equazioni differenziali del primo ordine: Metodi Numerici Riferimenti: R.Adams, Calcolo Differenziale 2. Casa Editrica Ambrosiana
1. Lo studio delle equazioni differenziali viene affrontato in tre ambiti:
· Analitico, esatto, metodi simbolici
· Metodi quantitativi (campo di direzioni, isocline...)
· Metodi numerici
Anche se risolviamo simbolicamente, rimane sempre la questione del cal- colo dei valori.
Il numero e `e il valore y(1) della soluzione della y0 = y con y(0) = 1.
Ma COME troviamo che e = 2.718282828459045... ? La risposta `e: con metodi numerici.
Come primo esempio prendiamo l’EDO del primo ordine y0 = x2− y2 = f (x, y), con condizione iniziale y(0) = 1. La domanda `e: quanto vale y(1) ? Questa equazione non si risolve in termini esatti, ma solo numericamente.
2. Primo approccio: usiamo le linee tangenti del campo per approssimare la soluzione con una spezzata poligonale, in cui ogni segmento ha lunghezza orizzontale h , e ha pendenza f (x, y) dove (x,y) `e il punto finale del segmento precedente.
Questo `e il metodo di Eulero, che `e un metodo generale per calcolare (approssimare, in realt`a) il valore y(x1) da y(x0) e utilizzando il campo di direzioni. In effetti, il metodo approssima y(x) per tutti gli x tra x0 e x1.
Scegliamo il passo h per andare da x0 a x1 = x0 + Kh; indichiamo con (xn, yn) il generico vertice di un segmento della poligonale.
Nota: se h `e piccolo, il numero di passi K per raggiungere x1 `e grande.
Metodo di Eulero: Dati: h, x0, y0, f (x, y), K, for n = 0, K − 1
An = f (xn, yn) xn+1 = xn+ h yn+1= yn+ hAn
end
1
3. y0 = x2 − y2 = f (x, y). Organizziamo in una tabella i valori trovati con h = 0.1
n xn yn An hAn
0 0 1 -1 -0.1
1 0.1 0.9 -0.8 -0.08
2 0.2 0.82 -0.1404 -0.01404
...
...
Il metodo di Eulero `e difficilmente esatto. In ogni caso il poligono di Eulero non `e una soluzione esatta, e il campo di direzioni nel suoi vertici differisce sempre pi`u dal campo di direzioni della soluzione vera, soprattutto se il campo cambia rapidamente.
Proviamo a individuare alcune fonti di errore.
(1) Errori di arrotondamento accumulati. Ogni computazione comporta un piccolo errore, dovuto all’arrotondamento, e questi errori si sommano.
Quindi vorremmo usare il minor numero di passi possibile (⇒ K piccolo
⇒ h grande)
(2) Se h `e grande, `e probabile che la soluzione approssimata si discosti molto dalla vera (⇒ h piccolo)
C’`e una contraddizione tra (1) e (2).
L’errore dipende dalla grandezza del passo h
Si dimostra che l’errore col metodo di Eulero diminuisce proporzional- mente al passo h :
err(E) ∼ c1h
Cio`e il metodo di Eulero `e un metodo del primo ordine ( h1).
Per intervalli piccoli, possiamo predirre , almeno, se il metodo di Eulero produrr`a una risposta troppo alta, oppure troppo bassa.
Se la curva integrale `e convessa ( y00 > 0), l’approssimazione di Eulero `e troppo bassa.
Se `e concava ( y00 < 0), l’approssimazione di Eulero `e troppo alta.
2
4. Un modo per affrontare il problema `e scegliere una pendenza ”migliore”, per esempio prendere la media delle pendenze dei due vertici del segmento del metodo di Eulero.
Metodo di Eulero migliorato: Dati: h, x0, y0, f (x, y), K, for n = 0, K − 1
xn+1 = xn+ h An= f (xn, yn) un+1 = yn+ hAn
Bn= f (xn+1, un+1) yn+1 = yn+ h An+ Bn
end 2
Si dimostra che l’errore col metodo di Eulero migliorato, detto anche di Heun, diminuisce proporzionalmente al quadrato del passo h :
err(H) ∼ c2h2
Cio`e `e un metodo del secondo ordine ( h2).
Se valutiamo OPPORTUNAMENTE quattro pendenze successive otte- niamo ”RK4”, cio`e il metodo di
Runge-Kutta di quarto ordine: Dati: h, x0, y0, f (x, y), K, for n = 0, K − 1
xn+1 = xn+ h An= f (xn, yn) Bn= f (xn+h
2, yn+ hAn 2 ) Cn= f (xn+h
2, yn+ hBn 2 ) Dn= f (xn+ h, yn+ hCn)
yn+1 = yn+ h An+ 2Bn+ 2Cn+ Dn
end 6
L’errore in questo caso `e proporzionale alla potenza quarta di h : err(RK4) ∼ c4h4
3
E’ interessante confrontare questi metodi. Qui di seguito c’`e un confronto che usa l’EDO y0 = y, y(0) = 1; la soluzione `e y(x) = ex, e noi studiamo y(1) = e.
A uguali costi:
Metodo Passi Valutazioni Errore
RK1 = Eulero 1000 1000 1.35 × 10−3
RK2 = Heun 500 1000 1.81 × 10−6
RK4 250 1000 7.99 × 10−15
Ogni valutazione del campo di direzioni ha un costo (in termini di tempo e di soldi!).
Heun fa due valutazioni per passo, RK4 ne fa quattro, quindi il costo di Eulero con 1000 passi `e all’incirca uguale al costo di Heun con 500 passi o di RK4 con 250 passi.
L’errore di Eulero `e circa 1/1000, anche usando 1000 passi di ampiezza 1/1000. Questo riflette la teoria generale per cui l’errore `e proporzionale all’ampiezza del passo, il metodo `e del primo ordine.
Per Heun la previsione teorica `e che l’errore `e proporzionale a h2. h = 2 × 10−3 qui, quindi h2 = 4 × 10−6; nell’esperimento `e anche meglio.
RK4 prevede un errore proporzionale a h4, che nel nostro caso `e 16×1012; nel nostro esperimento risulta anche pi`u accurato.
Morale: Se si vuole buona accuratezza il metodo di Eulero `e essenzial- mente inutile, e RK4 sar`a vincente.
Ci sono anche metodi di ordine maggiore, assai pi`u complessi, e l’esperienza mostra che RK4 `e un buon compromesso.
5. Vedere Esempio 4 del testo.
Sono valutati i valori in x = 0.4, x = 0.8, e x = 1.0 della soluzione ai valori iniziali y0 = y2, con y(0) = 1 , mediante i tre metodi descritti e usando passi di lunghezza h = 0.2, h = 0.1, e h = 0.05 . La soluzione esatta `e y(x) = 1/(1 − x) , sull’intervallo (−∞, 1).
4