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 :
- Évaluer la pente au début
- Faire un pas d'Euler complet pour prédire
- Évaluer la pente à ce point prédit
- 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 :
| Variante | a | b | α = β | Nom |
|---|---|---|---|---|
| I | 1/2 | 1/2 | 1 | Euler modifiée (Heun) |
| II | 0 | 1 | 1/2 | Point milieu |
| III | 2/3 | 1/3 | 3/2 | Ralston |
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
On évalue f(tₙ, yₙ) au point de départ. Cette pente est identique à celle utilisée par Euler.
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
| t | RK4 yₙ | Exact y(t) | Erreur |
|---|---|---|---|
| 0.0 | 1.0000000 | 1.0000000 | 0 |
| 0.1 | 0.9950249 | 0.9950249 | |
| 0.2 | 0.9803922 | 0.9803922 | |
| 0.3 | 0.9569377 | 0.9569378 | |
| 0.4 | 0.9259258 | 0.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éthode | Ordre global | Éval. de f / pas | Commentaire |
|---|---|---|---|
| Euler | 1 | Simple mais peu précis | |
| RK2 (Euler modifiée) | 2 | Bon compromis pour les cas simples | |
| RK4 classique | 4 | Standard en pratique | |
| RK-Fehlberg (RKF45) | 6 | Avec 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
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
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, yRé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.