Méthodes de Runge-Kutta

Objectifs d'apprentissage

À la fin de cette leçon, vous serez en mesure de :

  • Comprendre pourquoi une seule pente (Euler) ne suffit pas
  • Construire l'idée de combiner plusieurs pentes pour mieux approximer
  • Appliquer la méthode RK4 classique pas à pas
  • Comprendre le concept de pas adaptatif avec RK-Fehlberg

Prérequis

  • Méthode d'Euler et Euler modifiée
  • Développement de Taylor
  • Notion d'ordre de précision

Limites d'Euler : une seule évaluation de la pente

La méthode d'Euler évalue la pente au point de départ et la suppose constante sur tout l'intervalle . Or, sur cet intervalle, la pente varie — d'autant plus que est grand.

La méthode de Taylor corrige ce problème en intégrant les dérivées successives , mais cela nécessite de dériver analytiquement, ce qui est souvent coûteux ou impraticable.

Principe des méthodes de Runge-Kutta. Au lieu de calculer des dérivées de , on évalue en plusieurs points de l'intervalle , puis on combine ces évaluations avec des poids appropriés. On obtient ainsi une approximation de la pente moyenne sur l'intervalle, sans jamais avoir à dériver .


Runge-Kutta d'ordre 2 (RK2)

Lien avec Euler modifiée

La méthode d'Euler modifiée de la leçon précédente est le cas le plus simple de Runge-Kutta. Rappelons son principe :

  1. Évaluer la pente au début
  2. Faire un pas d'Euler complet pour prédire
  3. Évaluer la pente à ce point prédit
  4. Prendre la moyenne des deux pentes :

En utilisant deux évaluations de au lieu d'une, on passe de l'ordre à l'ordre .

Formulation générale

On peut écrire cette famille de méthodes sous la forme :

avec et .

En développant par Taylor et en identifiant les termes, on obtient les conditions :

Ce système de 3 équations pour 4 inconnues admet une infinité de solutions. Trois choix classiques :

Varianteabα = βNom
I1/21/21Euler modifiée (Heun)
II011/2Point milieu
III2/31/33/2Ralston

La méthode d'Euler modifiée correspond au Type I. Ces variantes diffèrent par le choix du point intermédiaire où évaluer , mais elles sont toutes d'ordre 2.


Runge-Kutta d'ordre 4 (RK4)

Principe

Avec 2 évaluations, on atteint l'ordre 2. En augmentant le nombre d'évaluations de , on peut atteindre des ordres plus élevés. Avec 4 évaluations bien choisies, on atteint l'ordre 4 — c'est la méthode RK4 classique, la plus utilisée en pratique.

Construction des 4 pentes

On évalue la pente à 4 endroits de l'intervalle : au début, deux fois au milieu (avec des prédictions différentes), et à la fin.

Pente au début :

C'est la pente évaluée au point de départ, identique à celle d'Euler.

Première pente au milieu :

On utilise pour prédire la valeur de au milieu de l'intervalle, puis on évalue à ce point prédit :

Deuxième pente au milieu :

On reprend la même procédure, mais en utilisant comme prédicteur. Puisque est une meilleure estimation de la pente que , le point prédit sera légèrement différent :

Pente à la fin :

On utilise pour prédire la valeur de à la fin de l'intervalle :

Combinaison :

Les quatre pentes sont combinées par une moyenne pondérée. Les pentes au milieu ont un poids double, conformément à la règle de Simpson :

Cette formule est d'ordre 4 : l'erreur locale est en , et l'erreur globale en .

Visualisation : construction des pentes

La visualisation ci-dessous décompose RK4 en 5 étapes. À chaque étape, la flèche pointillée montre la prédiction qui détermine le point d'évaluation suivant, et le trait plein montre la pente évaluée à ce point.

RK4 étape par étape — un pas de t = 0.5 à t = 1

Étape 1 — Évaluation de k₁
On évalue f(tₙ, yₙ) au point de départ. Cette pente est identique à celle utilisée par Euler.
t₀ = 0.5t₀ + h/2t₀ + h0.590.780.97solution exacte(t₀, y₀)k₁ = -0.395

Processus de raffinement

Chaque pente corrige la précédente :

  • : pente au début (identique à Euler)
  • : pente au milieu, estimée à partir de la prédiction de
  • : pente au milieu, estimée à partir de la prédiction (plus précise) de
  • : pente à la fin, estimée à partir de la prédiction de

Ce processus itératif permet à la combinaison pondérée de capturer la courbure de la solution sur l'intervalle.


Exemple : RK4 sur

On applique RK4 à l'équation , , avec .

Calcul du premier pas

,

La valeur exacte est , soit une erreur de l'ordre de .

Résultats sur plusieurs pas

tRK4 yₙExact y(t)Erreur
0.01.00000001.00000000
0.10.99502490.9950249
0.20.98039220.9803922
0.30.95693770.9569378
0.40.92592580.9259259

Avec seulement 4 évaluations de par pas, RK4 atteint une précision de l'ordre de — bien meilleure qu'Euler modifiée ().


Coût et efficacité

MéthodeOrdre globalÉval. de f / pasCommentaire
Euler1Simple mais peu précis
RK2 (Euler modifiée)2Bon compromis pour les cas simples
RK4 classique4Standard en pratique
RK-Fehlberg (RKF45)6Avec estimation d'erreur

Diviser par 2 divise l'erreur par pour RK4, ce qui donne un rapport coût/précision très favorable.

Comparaison visuelle : erreurs Euler vs RK2 vs RK4

Comparaison Euler / RK2 / RK4 — erreur à chaque pas

Euler
1.45e-2
RK2
3.09e-3
RK4
1.24e-5

L'axe vertical est en échelle logarithmique : chaque unité représente un facteur 10 de différence. Avec 10 pas, RK4 est environ 1164× plus précis qu'Euler.


Estimation d'erreur et pas adaptatif

RK4 ne fournit pas d'estimation de l'erreur commise à chaque pas. On ne sait donc pas a priori si le pas choisi est approprié.

Principe du pas adaptatif

Pour estimer l'erreur, on calcule deux approximations d'ordres différents sur le même pas. Si elles sont proches, le pas est suffisant ; sinon, on le réduit.

RK-Fehlberg (RKF45)

La méthode de Fehlberg utilise 6 évaluations de pour obtenir simultanément une approximation d'ordre 4 et une d'ordre 5. La différence entre les deux fournit une estimation de l'erreur .

Le pas est ensuite ajusté selon :

où l'exposant provient de l'ordre 5 de la méthode. Si , on réduit et on refait le pas. Si , on augmente pour les pas suivants.

C'est l'approche implémentée dans les solveurs d'EDO standards, notamment scipy.integrate.solve_ivp en Python.


Algorithme RK4

python
def rk4(f, t0, y0, h, n_steps):
  """
  Méthode de Runge-Kutta d'ordre 4.

  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]

      k1 = h * f(tj, yj)
      k2 = h * f(tj + h/2, yj + k1/2)
      k3 = h * f(tj + h/2, yj + k2/2)
      k4 = h * f(tj + h, yj + k3)

      y_next = yj + (k1 + 2*k2 + 2*k3 + k4) / 6

      t.append(tj + h)
      y.append(y_next)

  return t, y

Résumé

  • Euler utilise 1 pente (au début) → ordre 1
  • RK2 utilise 2 pentes → ordre 2. L'Euler modifiée en est un cas particulier
  • RK4 utilise 4 pentes (début, 2× milieu, fin) → ordre 4. C'est le standard en pratique
  • Les pentes se construisent l'une à partir de l'autre : chaque évaluation utilise la prédiction de la précédente
  • RK-Fehlberg ajoute une estimation d'erreur pour adapter automatiquement le pas

Pour aller plus loin

Dans la prochaine leçon, nous verrons les méthodes à pas multiples (Adams, Adams-Moulton), qui réutilisent les évaluations des pas précédents au lieu de tout recalculer à chaque pas.