Méthode d'Euler (ordinaire et modifiée)
Objectifs d'apprentissage
À la fin de cette leçon, vous serez en mesure de :
- Appliquer la méthode d'Euler ordinaire pour résoudre une ÉD
- Comprendre l'interprétation géométrique de la méthode d'Euler
- Analyser l'erreur locale et globale de la méthode
- Appliquer la méthode d'Euler modifiée (prédiction-correction)
- Comparer les performances des deux variantes
Prérequis
- Méthode des séries de Taylor
- Pente d'une tangente
- Notion d'erreur de troncature
Méthode d'Euler ordinaire
Principe
La méthode d'Euler est le cas le plus simple de la méthode de Taylor : on ne garde que le terme d'ordre 1.
En utilisant et en négligeant le terme d'erreur :
Formule d'Euler ordinaire
- Ordre local :
- Ordre global :
Interprétation géométrique
La méthode d'Euler consiste à :
- Calculer la pente au point actuel
- Suivre la tangente sur une distance
- Obtenir le point suivant
C'est une extrapolation linéaire basée sur la pente locale.
Limitation
La tangente ne suit pas la courbe exacte — elle s'en écarte progressivement. C'est pourquoi la méthode d'Euler n'est que d'ordre 1.
Algorithme
def euler(f, t0, y0, h, n_steps):
"""
Méthode d'Euler ordinaire.
Paramètres:
f: fonction f(t, y) = y'
t0, y0: conditions initiales
h: pas de discrétisation
n_steps: nombre de pas
Retourne:
t, y: tableaux des valeurs
"""
t = [t0]
y = [y0]
for j in range(n_steps):
tj, yj = t[-1], y[-1]
y_next = yj + h * f(tj, yj)
t.append(tj + h)
y.append(y_next)
return t, yAnalyse de l'erreur
Erreur locale de troncature
L'erreur commise à un seul pas, en supposant que est exact :
pour un certain .
Erreur globale
L'erreur globale (où est la valeur exacte) se propage selon :
où est la constante de Lipschitz de et .
Borne d'erreur globale
Après pas (soit ), l'erreur globale satisfait :
L'erreur globale est donc proportionnelle à , pas à .
Exemple : Euler ordinaire sur l'ÉD fil rouge
Appliquons Euler à , , avec .
Calculs pas à pas
Pas 0 → 1 : ,
Pas 1 → 2 : ,
Pas 2 → 3 : ,
Tableau comparatif (h = 0.1)
| t | Euler yₙ | Exact y(t) | Erreur |
|---|---|---|---|
| 0.0 | 1.0000 | 1.0000 | 0 |
| 0.1 | 1.0000 | 0.9950 | |
| 0.2 | 0.9900 | 0.9804 | |
| 0.3 | 0.9704 | 0.9569 | |
| 0.4 | 0.9422 | 0.9259 |
Observation
L'erreur croît à chaque pas et atteint environ 1.6% à . C'est caractéristique d'une méthode d'ordre 1.
Méthode d'Euler modifiée (prédiction-correction)
Motivation
La méthode d'Euler utilise la pente au début de l'intervalle. On peut améliorer la précision en utilisant une moyenne des pentes au début et à la fin de l'intervalle.
Algorithme en deux étapes
Formule d'Euler modifiée
1. Prédiction (Euler ordinaire) :
2. Correction (moyenne des pentes) :
- Ordre local :
- Ordre global :
Interprétation géométrique
- On calcule une première estimation avec Euler ordinaire
- On évalue la pente à ce point prédit :
- On utilise la moyenne des deux pentes pour avancer
C'est équivalent à la règle du trapèze appliquée à l'intégration de .
Algorithme
def euler_modified(f, t0, y0, h, n_steps):
"""
Méthode d'Euler modifiée (prédiction-correction).
Paramètres:
f: fonction f(t, y) = y'
t0, y0: conditions initiales
h: pas de discrétisation
n_steps: nombre de pas
Retourne:
t, y: tableaux des valeurs
"""
t = [t0]
y = [y0]
for j in range(n_steps):
tj, yj = t[-1], y[-1]
# Prédiction (Euler ordinaire)
f_j = f(tj, yj)
y_pred = yj + h * f_j
# Correction (moyenne des pentes)
f_pred = f(tj + h, y_pred)
y_next = yj + (h / 2) * (f_j + f_pred)
t.append(tj + h)
y.append(y_next)
return t, yItérations multiples
L'étape de correction peut être répétée 2 à 3 fois en utilisant corrigé pour recalculer . Cela améliore la précision sans changer l'ordre.
Exemple : Euler modifiée sur l'ÉD fil rouge
Reprenons , , avec .
Pas 0 → 1
Prédiction :
Correction :
Valeur exacte : . Erreur :
Pas 1 → 2
Prédiction :
Correction :
Valeur exacte : . Erreur :
Tableau comparatif (h = 0.1)
| t | Prédit | Corrigé | Exact | Erreur |
|---|---|---|---|---|
| 0.0 | — | 1.000000 | 1.000000 | 0 |
| 0.1 | 1.000000 | 0.995000 | 0.995025 | |
| 0.2 | 0.985100 | 0.980346 | 0.980392 | |
| 0.6 | 0.847458 | 0.847458 | 0.847458 |
Comparaison avec un pas plus grand (h = 0.5)
Pour mieux visualiser la différence entre les deux méthodes, utilisons sur l'intervalle .
Euler ordinaire (h = 0.5)
| t | Euler ordinaire | Exact | Erreur relative |
|---|---|---|---|
| 0 | 1.0000 | 1.0000 | 0% |
| 0.5 | 1.0000 | 0.8889 | 12.5% |
| 1.0 | 0.7500 | 0.6667 | 12.5% |
| 2.0 | 0.3814 | 0.3333 | 14.4% |
| 4.0 | 0.0944 | 0.1111 | 15.1% |
Euler modifiée (h = 0.5)
| t | Euler modifiée | Exact | Erreur relative |
|---|---|---|---|
| 0 | 1.0000 | 1.0000 | 0% |
| 0.5 | 0.8750 | 0.8889 | 1.6% |
| 1.0 | 0.6625 | 0.6667 | 0.6% |
| 2.0 | 0.3340 | 0.3333 | 0.2% |
| 4.0 | 0.1165 | 0.1111 | 4.9% |
Amélioration significative
Avec le même pas , Euler modifiée atteint une erreur de 0.2% à contre 14.4% pour Euler ordinaire — une amélioration d'un facteur ~70 !
Comparaison des méthodes
| Critère | Euler ordinaire | Euler modifiée |
|---|---|---|
| Ordre local | ||
| Ordre global | ||
| Évaluations de f par pas | 1 | 2 |
| Complexité | Simple | Modérée |
| Utilisation recommandée | Pédagogique uniquement | Applications simples |
Résumé
- Euler ordinaire : — ordre global
- Euler modifiée : prédiction puis correction avec moyenne des pentes — ordre global
- L'erreur globale croît avec le nombre de pas (accumulation)
- Euler modifiée nécessite 2 évaluations de par pas mais gagne un ordre de précision
Pour aller plus loin
Dans la prochaine leçon, nous verrons les méthodes de Runge-Kutta, qui généralisent l'idée d'Euler modifiée pour atteindre des ordres de précision encore plus élevés.