Toutes les méthodes numériques (Euler, RK, Adams-Moulton) s'appliquent composante par composante — il suffit de remplacer les scalaires par des vecteurs.
Exemple : système 2×2
Considérons le système :
{x′(t)=xy+ty′(t)=ty+xavec x(0)=1,y(0)=−1
Résolution par Euler modifiée (h = 0.1)
Pas 0 → 1 : t0=0, x0=1, y0=−1
Calcul des dérivées ent0 :
x0′=x0y0+t0=1×(−1)+0=−1
y0′=t0y0+x0=0×(−1)+1=1
Prédiction :
x~1=x0+h⋅x0′=1+0.1×(−1)=0.9
y~1=y0+h⋅y0′=−1+0.1×1=−0.9
Calcul des dérivées au point prédit (t1=0.1) :
x~1′=x~1y~1+t1=0.9×(−0.9)+0.1=−0.71
y~1′=t1y~1+x~1=0.1×(−0.9)+0.9=0.81
Correction :
x1=x0+2h(x0′+x~1′)=1+20.1(−1−0.71)=0.9145
y1=y0+2h(y0′+y~1′)=−1+20.1(1+0.81)=−0.9095
Résolution par Taylor d'ordre 4
Pour Taylor, on doit calculer x′′,x′′′,y′′,y′′′ à partir du système.
Calcul dex′′ :
x′′=dtd(xy+t)=x′y+xy′+1
Calcul dey′′ :
y′′=dtd(ty+x)=y+ty′+x′
Ces expressions nécessitent les valeurs de x′ et y′, donc tout se calcule itérativement.
Transformation d'une ÉD d'ordre supérieur
Principe général
Toute ÉD d'ordre n peut être transformée en un système de n ÉD d'ordre 1.
Pour θ≪1, sin(θ)≈θ, et la solution analytique est :
θ(t)=θ0cos(Lgt)+θ0′gLsin(Lgt)
Oscillateur de Van der Pol
Un exemple classique d'ÉD non linéaire d'ordre 2 :
x′′(t)−(1−x2(t))x′(t)+x(t)=0
avec x(0)=0.5, x′(0)=0.
Transformation en système
On pose x1=x, x2=x′ :
{x1′=x2x2′=(1−x12)x2−x1
Résolution par Euler (h = 0.1)
Pas initial : t0=0, x1=0.5, x2=0
x1,0′=x2=0
x2,0′=(1−0.25)×0−0.5=−0.5
Après un pas :
x1,1=0.5+0.1×0=0.5
x2,1=0+0.1×(−0.5)=−0.05
L'oscillateur de Van der Pol exhibe un cycle limite — une solution périodique vers laquelle toutes les trajectoires convergent.
Adams-Moulton pour systèmes
Le schéma prédicteur-correcteur s'applique directement :
Prédicteur (Adams-Bashforth)
X~n+1=Xn+24h(55Fn−59Fn−1+37Fn−2−9Fn−3)
Correcteur (Adams-Moulton)
Xn+1=Xn+24h(9F~n+1+19Fn−5Fn−1+Fn−2)
Exemple numérique
Pour le système x′=xy+t, y′=ty+x avec h=0.025 :
t
x(t)
y(t)
0.000
1.0000
−1.0000
0.025
0.9759
−0.9756
0.050
0.9536
−0.9524
0.075
0.9330
−0.9303
0.100 (prédit)
0.91396
−0.90923
0.100 (corrigé)
0.91396
−0.90923
Algorithme RK4 pour systèmes
python
import numpy as npdef rk4_system(F, t0, X0, h, n_steps): """ Méthode RK4 pour un système d'ÉD. Paramètres: F: fonction F(t, X) retournant un vecteur t0: temps initial X0: vecteur des conditions initiales h: pas de discrétisation n_steps: nombre de pas Retourne: t, X: temps et matrice des solutions """ X0 = np.array(X0) t = [t0] X = [X0] for j in range(n_steps): tj = t[-1] Xj = X[-1] k1 = h * F(tj, Xj) k2 = h * F(tj + h/2, Xj + k1/2) k3 = h * F(tj + h/2, Xj + k2/2) k4 = h * F(tj + h, Xj + k3) X_next = Xj + (k1 + 2*k2 + 2*k3 + k4) / 6 t.append(tj + h) X.append(X_next) return np.array(t), np.array(X)# Exemple : penduledef pendule(t, X): g, L = 9.81, 1.0 theta, omega = X return np.array([omega, -g/L * np.sin(theta)])t, X = rk4_system(pendule, 0, [0.3, 0], 0.01, 1000)# X[:, 0] = theta(t), X[:, 1] = omega(t)
Tableau comparatif final des méthodes
Critère
Euler modifiée
RK4
Adams-Moulton
Type
Pas unique
Pas unique
Pas multiple
Erreur locale
O(h3)
O(h5)
O(h5)
Erreur globale
O(h2)
O(h4)
O(h4)
Évaluations de f/pas
2
4
2
Stabilité
Bonne
Bonne
Bonne
Changement de pas
Facile
Facile
Difficile
Recommandée
Non
Oui
Oui
✅
Recommandations pratiques
RK4 : méthode par défaut, flexible, précise
Adams-Moulton : longues intégrations à pas constant, f coûteux
Euler modifiée : à éviter sauf pour l'enseignement
Résumé
Les systèmes d'ÉD se traitent composante par composante avec les mêmes méthodes
Toute ÉD d'ordre n se transforme en système de n ÉD d'ordre 1
RK4 et Adams-Moulton sont les méthodes recommandées (ordre global 4)
Le choix dépend du contexte : pas adaptatif vs pas fixe, coût de f
Pour aller plus loin
La Partie A (conditions initiales) est terminée. Dans les prochaines leçons, nous aborderons la Partie B : les problèmes à conditions aux limites, en commençant par la méthode de tir.