Calcolatore Accuratezza Metodo di Eulero
Calcola l’accuratezza del metodo di Eulero per equazioni differenziali con diversi passi di discretizzazione
Risultati del Calcolo
Accuratezza del Metodo di Eulero: Cos’è e Come si Calcola
Il metodo di Eulero è uno dei più semplici metodi numerici per risolvere equazioni differenziali ordinarie (ODE). Nonostante la sua semplicità, è fondamentale comprendere la sua accuratezza, i suoi limiti e come valutare l’errore che introduce nelle soluzioni approssimate.
1. Cos’è il Metodo di Eulero?
Il metodo di Eulero è un metodo a un passo che approssima la soluzione di un’equazione differenziale del tipo:
dy/dx = f(x, y), y(x₀) = y₀
La formula di Eulero per avanzare dalla soluzione in xₙ a xₙ₊₁ è:
yₙ₊₁ = yₙ + h·f(xₙ, yₙ), xₙ₊₁ = xₙ + h
dove h è la dimensione del passo (step size).
2. Accuratezza del Metodo di Eulero
L’accuratezza del metodo di Eulero dipende principalmente da due fattori:
- Errore di troncamento locale (LTE): L’errore introdotto in un singolo passo. Per il metodo di Eulero, il LTE è proporzionale a h² (ordine 2).
- Errore globale: L’errore accumulato dopo N passi. Per il metodo di Eulero, l’errore globale è proporzionale a h (ordine 1), il che lo rende un metodo del primo ordine.
In termini matematici, se y(x) è la soluzione esatta e yₙ è l’approssimazione in xₙ, allora:
|y(xₙ) – yₙ| ≤ C·h, per qualche costante C > 0
3. Come si Calcola l’Errore?
Per valutare l’accuratezza del metodo di Eulero, possiamo:
- Confrontare con la soluzione esatta: Se l’equazione differenziale ha una soluzione analitica nota, possiamo calcolare l’errore assoluto o relativo in ogni punto.
- Usare un metodo più accurato: Ad esempio, il metodo di Runge-Kutta del 4° ordine (RK4) per ottenere una soluzione di riferimento.
- Ridurre il passo h: Dimezzando h e confrontando i risultati (metodo di Richardson).
4. Esempio Pratico
Consideriamo l’equazione differenziale:
dy/dx = x + y, y(0) = 1
La soluzione esatta è y(x) = 2eˣ – x – 1. Applicando il metodo di Eulero con h = 0.1 per calcolare y(1):
| Passo (n) | xₙ | yₙ (Eulero) | y(xₙ) (Esatto) | Errore Assoluto |
|---|---|---|---|---|
| 0 | 0.0 | 1.0000 | 1.0000 | 0.0000 |
| 1 | 0.1 | 1.1000 | 1.1052 | 0.0052 |
| 2 | 0.2 | 1.2200 | 1.2226 | 0.0026 |
| … | … | … | … | … |
| 10 | 1.0 | 2.5937 | 2.7183 | 0.1246 |
L’errore finale al passo x = 1 è circa 0.1246, che rappresenta un errore relativo del 4.6% rispetto al valore esatto.
5. Confronto con Altri Metodi
La tabella seguente confronta l’accuratezza del metodo di Eulero con altri metodi numerici per la stessa equazione differenziale:
| Metodo | Ordine | Errore a h=0.1 | Errore a h=0.01 | Tempo Computazionale |
|---|---|---|---|---|
| Eulero | 1 | 0.1246 | 0.0130 | Basso |
| Eulero Migliorato (Heun) | 2 | 0.0026 | 0.000026 | Medio |
| Runge-Kutta 4° ordine (RK4) | 4 | 0.0000003 | 3×10⁻¹¹ | Alto |
Come si può vedere, RK4 è significativamente più accurato, soprattutto per passi più grandi, ma richiede più calcoli per passo.
6. Come Migliorare l’Accuratezza?
Per ottenere risultati più accurati con il metodo di Eulero:
- Ridurre il passo h: Dimezzando h si dimezza approssimativamente l’errore globale (poiché l’errore è O(h)).
- Usare metodi di ordine superiore: Come Eulero migliorato (ordine 2) o RK4 (ordine 4).
- Adattare il passo: Usare passi più piccoli dove la funzione cambia rapidamente.
- Controllo dell’errore: Implementare stime dell’errore per adattare dinamicamente h.
7. Applicazioni Pratiche
Nonostante la sua bassa accuratezza, il metodo di Eulero è ancora utilizzato in:
- Introduzione ai metodi numerici: Per la sua semplicità didattica.
- Simulazioni in tempo reale: Dove la velocità è più importante della precisione (es: giochi, animazioni).
- Problemi con soluzioni poco sensibili: Dove errori dell’1-5% sono accettabili.
Tuttavia, per applicazioni ingegneristiche o scientifiche critiche (es: dinamica dei fluidi, astrofisica), si preferiscono metodi come RK4 o metodi adattivi come Dormand-Prince (ODE45 in MATLAB).
8. Implementazione del Metodo di Eulero
Lo pseudocodice per implementare il metodo di Eulero è:
function euler_method(f, x0, y0, h, x_target):
x = x0
y = y0
while x < x_target:
y = y + h * f(x, y)
x = x + h
return y
Dove f(x, y) è la funzione che definisce l'equazione differenziale.
9. Errori e Stabilità
Oltre all'errore di troncamento, il metodo di Eulero può soffrire di:
- Instabilità numerica: Per equazioni stiff (dove la soluzione varia su scale temporali molto diverse).
- Errori di arrotondamento: Dovuti alla precisione finita dei calcolatori.
- Propagazione degli errori: Gli errori in un passo influenzano tutti i passi successivi.
Per equazioni stiff, sono necessari metodi impliciti (es: Eulero all'indietro) o metodi come BDF (Backward Differentiation Formulas).
10. Conclusione
Il metodo di Eulero è un punto di partenza essenziale per comprendere i metodi numerici per ODE, ma la sua accuratezza limitata lo rende inadatto per applicazioni che richiedono alta precisione. Comprendere i suoi errori e i suoi limiti è cruciale per:
- Scegliere il metodo più adatto a un problema specifico.
- Interpretare correttamente i risultati numerici.
- Ottimizzare il compromesso tra accuratezza e costo computazionale.
Per approfondire, si consiglia di studiare metodi di ordine superiore e tecniche di controllo dell'errore, come descritto in risorse accademiche come "Numerical Initial Value Problems in Ordinary Differential Equations" (UCLA).