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 à :

  1. Calculer la pente au point actuel
  2. Suivre la tangente sur une distance
  3. 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

python
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, y

Analyse 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 :

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)

tEuler yₙExact y(t)Erreur
0.01.00001.00000
0.11.00000.9950
0.20.99000.9804
0.30.97040.9569
0.40.94220.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

  1. On calcule une première estimation avec Euler ordinaire
  2. On évalue la pente à ce point prédit :
  3. 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

python
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, y

Ité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)

tPréditCorrigéExactErreur
0.01.0000001.0000000
0.11.0000000.9950000.995025
0.20.9851000.9803460.980392
0.60.8474580.8474580.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)

tEuler ordinaireExactErreur relative
01.00001.00000%
0.51.00000.888912.5%
1.00.75000.666712.5%
2.00.38140.333314.4%
4.00.09440.111115.1%

Euler modifiée (h = 0.5)

tEuler modifiéeExactErreur relative
01.00001.00000%
0.50.87500.88891.6%
1.00.66250.66670.6%
2.00.33400.33330.2%
4.00.11650.11114.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èreEuler ordinaireEuler modifiée
Ordre local
Ordre global
Évaluations de f par pas12
ComplexitéSimpleModérée
Utilisation recommandéePédagogique uniquementApplications 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.