Méthodes à pas multiples (Adams et Adams-Moulton)

Objectifs d'apprentissage

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

  • Distinguer les méthodes à pas unique des méthodes à pas multiples
  • Appliquer les formules d'Adams-Bashforth (ouvertes)
  • Appliquer les formules d'Adams-Moulton (prédiction-correction)
  • Comparer l'efficacité des différentes méthodes numériques

Prérequis

  • Méthodes de Runge-Kutta
  • Interpolation polynomiale (Chapitre 4)
  • Polynôme de Newton-Gregory

Discrétisation temporelle : les méthodes à pas multiples réutilisent les valeurs aux instants précédents

Classification des méthodes

Pas unique vs pas multiples

TypeUtiliseExemples
Pas uniqueSeulement (tn,yn)(t_n, y_n) pour calculer yn+1y_{n+1}Euler, Taylor, Runge-Kutta
Pas multiples(tn,yn),(tn1,yn1),(t_n, y_n), (t_{n-1}, y_{n-1}), \ldotsAdams, Adams-Moulton

Méthodes ouvertes vs fermées

TypeCaractéristiqueExemple
Ouverte (explicite)yn+1y_{n+1} calculé directementAdams-Bashforth
Fermée (implicite)yn+1y_{n+1} apparaît des deux côtésAdams-Moulton (correcteur)
💡

Observation

Euler modifiée et Runge-Kutta utilisent des évaluations intermédiaires de ff, mais restent des méthodes à pas unique car seul (tn,yn)(t_n, y_n) est connu au départ de chaque itération.


Principe des méthodes d'Adams

L'idée est de construire un polynôme d'interpolation passant par les points (tn,fn),(tn1,fn1),(t_n, f_n), (t_{n-1}, f_{n-1}), \ldots et de l'intégrer pour approximer :

y(tn+1)y(tn)=tntn+1f(t,y(t))dttntn+1P(t)dty(t_{n+1}) - y(t_n) = \int_{t_n}^{t_{n+1}} f(t, y(t))\,dt \approx \int_{t_n}^{t_{n+1}} P(t)\,dt

P(t)P(t) est le polynôme de Newton-Gregory descendant.


Formules d'Adams-Bashforth (ouvertes)

Ces formules utilisent l'extrapolation — le polynôme est construit sur des points à gauche de tn+1t_{n+1}.

Adams-Bashforth d'ordre 2

Utilise fnf_n et fn1f_{n-1} :

💡

Adams-Bashforth ordre 2

yn+1=yn+h2(3fnfn1)y_{n+1} = y_n + \frac{h}{2}(3f_n - f_{n-1})
  • Ordre local : O(h3)O(h^3)
  • Ordre global : O(h2)O(h^2)

Adams-Bashforth d'ordre 3

Utilise fnf_n, fn1f_{n-1} et fn2f_{n-2} :

💡

Adams-Bashforth ordre 3

yn+1=yn+h12(23fn16fn1+5fn2)y_{n+1} = y_n + \frac{h}{12}(23f_n - 16f_{n-1} + 5f_{n-2})
  • Ordre local : O(h4)O(h^4)
  • Ordre global : O(h3)O(h^3)

Adams-Bashforth d'ordre 4

Utilise fnf_n, fn1f_{n-1}, fn2f_{n-2} et fn3f_{n-3} :

💡

Adams-Bashforth ordre 4

yn+1=yn+h24(55fn59fn1+37fn29fn3)y_{n+1} = y_n + \frac{h}{24}(55f_n - 59f_{n-1} + 37f_{n-2} - 9f_{n-3})
  • Ordre local : O(h5)O(h^5)
  • Ordre global : O(h4)O(h^4)
⚠️

Problème d'amorçage

Les méthodes à pas multiples nécessitent plusieurs valeurs initiales (y0,y1,y2,y_0, y_1, y_2, \ldots). On les obtient généralement en démarrant avec une méthode de Runge-Kutta pour les premiers pas.


Formules d'Adams-Moulton (fermées)

Ces formules utilisent l'interpolation — le polynôme inclut le point (tn+1,fn+1)(t_{n+1}, f_{n+1}).

Adams-Moulton d'ordre 3

yn+1=yn+h12(5fn+1+8fnfn1)y_{n+1} = y_n + \frac{h}{12}(5f_{n+1} + 8f_n - f_{n-1})

Adams-Moulton d'ordre 4

yn+1=yn+h24(9fn+1+19fn5fn1+fn2)y_{n+1} = y_n + \frac{h}{24}(9f_{n+1} + 19f_n - 5f_{n-1} + f_{n-2})

Remarque

Ces formules sont implicites : fn+1=f(tn+1,yn+1)f_{n+1} = f(t_{n+1}, y_{n+1}) dépend de yn+1y_{n+1}, qui est l'inconnue ! On les utilise donc en prédiction-correction.


Schéma prédiction-correction (Adams-Moulton)

Principe

  1. Prédicteur (Adams-Bashforth) : estimer y~n+1\tilde{y}_{n+1}
  2. Correcteur (Adams-Moulton) : affiner avec f~n+1=f(tn+1,y~n+1)\tilde{f}_{n+1} = f(t_{n+1}, \tilde{y}_{n+1})

Adams-Moulton d'ordre local h5h^5

💡

Prédicteur-Correcteur ordre 4

Prédicteur (Adams-Bashforth) :

y~n+1=yn+h24(55fn59fn1+37fn29fn3)\tilde{y}_{n+1} = y_n + \frac{h}{24}(55f_n - 59f_{n-1} + 37f_{n-2} - 9f_{n-3})

Correcteur (Adams-Moulton) :

yn+1=yn+h24(9f~n+1+19fn5fn1+fn2)y_{n+1} = y_n + \frac{h}{24}(9\tilde{f}_{n+1} + 19f_n - 5f_{n-1} + f_{n-2})

f~n+1=f(tn+1,y~n+1)\tilde{f}_{n+1} = f(t_{n+1}, \tilde{y}_{n+1}).

  • Ordre local : O(h5)O(h^5)
  • Ordre global : O(h4)O(h^4)
  • Évaluations de f : 2 par pas (après amorçage)

Mesure de la précision

On peut estimer l'erreur en comparant la valeur prédite et la valeur corrigée :

yexactycorrigeˊ19270(ycorrigeˊypreˊdit)y_{\text{exact}} \approx y_{\text{corrigé}} - \frac{19}{270}(y_{\text{corrigé}} - y_{\text{prédit}})

Règle pratique

On a environ NN décimales exactes lorsque :

ycorrigeˊypreˊdit14.2×10N|y_{\text{corrigé}} - y_{\text{prédit}}| \leq 14.2 \times 10^{-N}

Algorithme

python
def adams_moulton(f, t0, y0, h, n_steps):
  """
  Méthode d'Adams-Moulton (prédicteur-correcteur) d'ordre 4.

  Nécessite un amorçage par RK4 pour les 4 premières valeurs.
  """
  # Amorçage avec RK4
  t = [t0]
  y = [y0]

  for j in range(3):  # 3 pas RK4 pour obtenir y0, y1, y2, y3
      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)

  # Calcul des f initiaux
  F = [f(t[i], y[i]) for i in range(4)]

  # Adams-Moulton pour les pas suivants
  for n in range(3, n_steps):
      tn = t[-1]
      yn = y[-1]

      # Prédicteur (Adams-Bashforth ordre 4)
      y_pred = yn + (h/24) * (55*F[-1] - 59*F[-2] + 37*F[-3] - 9*F[-4])

      # Correcteur (Adams-Moulton ordre 4)
      f_pred = f(tn + h, y_pred)
      y_corr = yn + (h/24) * (9*f_pred + 19*F[-1] - 5*F[-2] + F[-3])

      t.append(tn + h)
      y.append(y_corr)
      F.append(f(t[-1], y[-1]))
      F.pop(0)  # Garder seulement les 4 derniers

  return t, y

Tableau comparatif de TOUTES les méthodes

Voici une comparaison complète sur y=ty2y' = -ty^2, y(0)=1y(0) = 1, avec h=0.1h = 0.1 :

Méthodet = 0.1t = 0.2
Solution analytique0.9950250.980392
Euler ordinaire O(h)O(h)1.0000000.990000
Taylor O(h2)O(h^2)0.9950000.980248
Taylor O(h3)O(h^3)0.9950000.980346
Euler modifiée O(h2)O(h^2)0.9950000.980346
RK Type II O(h2)O(h^2)0.9950000.980297
RK Type III O(h2)O(h^2)0.9950000.980394
RK4 O(h4)O(h^4)0.9950250.980392
Adams-Moulton O(h4)O(h^4)0.9950250.980392

Observation clé

RK4 et Adams-Moulton atteignent tous deux l'ordre global O(h4)O(h^4) et donnent des résultats quasi identiques. Mais Adams-Moulton n'utilise que 2 évaluations de ff par pas (après amorçage), contre 4 pour RK4.


Avantages et inconvénients

CritèreRunge-KuttaAdams-Moulton
Évaluations de f par pas4 (RK4)2 (après amorçage)
Changement de pasFacileDifficile (recalcul des f)
Amorçage requisNonOui (par RK)
Estimation d'erreurAvec RKFIntégrée (prédit-corrigé)
MémoireFaibleStocke plusieurs f
💡

Quand choisir Adams-Moulton ?

  • Longues intégrations avec pas constant
  • Quand ff est coûteux à évaluer
  • Quand l'estimation d'erreur intégrée est utile

Pour les problèmes avec pas adaptatif ou comportement variable, RK4/RKF est souvent préféré.


Résumé

  • Les méthodes à pas multiples réutilisent les valeurs fn1,fn2,f_{n-1}, f_{n-2}, \ldots des pas précédents
  • Adams-Bashforth (ouvertes) : extrapolation, utilisées comme prédicteur
  • Adams-Moulton (fermées) : interpolation, utilisées comme correcteur
  • Le schéma prédicteur-correcteur combine les deux pour l'ordre global O(h4)O(h^4) avec seulement 2 évaluations de ff
  • L'amorçage se fait par Runge-Kutta

Pour aller plus loin

Dans la prochaine leçon, nous verrons comment adapter ces méthodes aux systèmes d'ÉD et aux ÉD d'ordre supérieur.