Méthodes prédicteur-correcteur

Cet article est une ébauche concernant l’analyse.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

Les méthodes prédicteur-correcteur sont des méthodes d'analyse numérique d'approximation de solutions d'équations différentielles.

Ces méthodes reposent sur le principe de l'itération, c'est-à-dire qu'une première estimation de la solution est utilisée pour calculer une seconde estimation, qui sera retenue pour l'itération suivante.

Principe général

On considère la résolution du problème :

d y d t = f ( t , y ) , y ( t 0 ) = y 0 {\displaystyle {\mathrm {d} y \over \mathrm {d} t}=f(t,y),\quad y(t_{0})=y_{0}}

que l'on va chercher à résoudre en un ensemble discret t0 < t1 < ... < tN. Comme une solution explicite n'est pas toujours disponible, les méthodes prédicteur-correcteur permettent de déterminer une solution approchée aux points ( t i ) 0 i N {\displaystyle (t_{i})_{0\leq i\leq N}} . Dans la suite, on notera y i {\displaystyle y_{i}} la solution approchée au temps t i {\displaystyle t_{i}} et y ( t i ) {\displaystyle y(t_{i})} la valeur exacte.

Ainsi, pour une solution exacte t y ( t ) {\displaystyle t\mapsto y(t)} du problème, on a

y ( t n + 1 ) = y ( t n ) + t n t n + 1 f ( t , y ( t ) ) d t . {\displaystyle y(t_{n+1})=y(t_{n})+\int _{t_{n}}^{t_{n+1}}f(t,y(t))\mathrm {d} t.}

Le principe d'une méthode prédicteur-correcteur consiste à faire une première approximation explicite de l'intégrale :

t n t n + 1 f ( t , y ( t ) ) d t ( t n + 1 t n ) F p ( t n , y n ) , {\displaystyle \int _{t_{n}}^{t_{n+1}}f(t,y(t))\mathrm {d} t\approx (t_{n+1}-t_{n})F_{p}(t_{n},y_{n}),}

d'où l'étape de prédiction :

y ~ n + 1 = y n + ( t n + 1 t n ) F p ( t n , y n ) , {\displaystyle {\tilde {y}}_{n+1}=y_{n}+(t_{n+1}-t_{n})F_{p}(t_{n},y_{n}),}

puis une deuxième approximation implicite de l'intégrale :

t n t n + 1 f ( t , y ( t ) ) d t ( t n + 1 t n ) F i ( t n , y n , t n + 1 , y n + 1 ) . {\displaystyle \int _{t_{n}}^{t_{n+1}}f(t,y(t))\mathrm {d} t\approx (t_{n+1}-t_{n})F_{i}(t_{n},y_{n},t_{n+1},y_{n+1}).}

d'où l'étape de correction, qui utilisera le prédicteur :

y n + 1 = y n + ( t n + 1 t n ) F i ( t n , y n , t n + 1 , y ~ n + 1 ) . {\displaystyle y_{n+1}=y_{n}+(t_{n+1}-t_{n})F_{i}(t_{n},y_{n},t_{n+1},{\tilde {y}}_{n+1}).}

Exemples

Dans la suite, on notera :

f i = f ( t i , y i ) , f ~ n = f ( t n , y ~ n ) {\displaystyle f_{i}=f(t_{i},y_{i}),{\tilde {f}}_{n}=f(t_{n},{\tilde {y}}_{n})}

Schémas à un pas

Méthode prédicteur-correcteur d'Euler-Heun

On utilise le schéma d'Euler explicite pour la prédiction :

y ~ n + 1 = y n + ( t n + 1 t n ) f n , {\displaystyle {\tilde {y}}_{n+1}=y_{n}+(t_{n+1}-t_{n})f_{n},}

puis la méthode du point milieu pour la correction :

y n + 1 = y n + ( t n + 1 t n ) 2 [ f n + f ~ n + 1 ] . {\displaystyle y_{n+1}=y_{n}+{\frac {(t_{n+1}-t_{n})}{2}}\left[f_{n}+{\tilde {f}}_{n+1}\right].}
Méthode RK2

On utilise le schéma d'Euler explicite pour la prédiction :

y ~ n + 1 = y n + ( t n + 1 t n ) f n , {\displaystyle {\tilde {y}}_{n+1}=y_{n}+(t_{n+1}-t_{n})f_{n},}

puis la méthode des trapèzes pour la correction :

y n + 1 = y n + ( t n + 1 t n ) 2 [ f ( t n , y ~ n + 1 ) + f ~ n + 1 ] . {\displaystyle y_{n+1}=y_{n}+{\frac {(t_{n+1}-t_{n})}{2}}\left[f(t_{n},{\tilde {y}}_{n+1})+{\tilde {f}}_{n+1}\right].}

On reconnait alors la méthode de Runge-Kutta d'ordre 2.

Schémas multi-pas

Méthode prédicteur-correcteur de Milne

En 1970, pour éviter des problèmes d'instabilité, William Edmund Milne utilise le schéma prédicteur-correcteur suivant [1],[2]:

  • Prédiction
    y ~ n + 1 = y n 4 + 4 ( t n + 1 t n ) 3 ( 2 f n 3 f n 2 + 2 f n 1 ) ,   n 4 {\displaystyle {\tilde {y}}_{n+1}=y_{n-4}+{\frac {4(t_{n+1}-t_{n})}{3}}(2f_{n-3}-f_{n-2}+2f_{n-1}),\ \forall n\geqslant 4}
  • Correction (basée sur la méthode de Simpson) :
    y n + 1 = y i 2 + ( t n + 1 t n ) 3 ( f ~ n + 4 f ~ n 1 + f ~ n 2 ) ,   n 4 {\displaystyle y_{n+1}=y_{i-2}+{\frac {(t_{n+1}-t_{n})}{3}}({\tilde {f}}_{n}+4{\tilde {f}}_{n-1}+{\tilde {f}}_{n-2}),\ \forall n\geqslant 4}

Les premiers pas sont calculés par des méthodes plus simples mais d'ordre élevé, comme une méthode RK4[3].

Méthode d'Adams–Bashford–Moulton
Article détaillé : Méthodes d'Adams-Bashforth.

Le schéma de prédiction repose sur une méthode d'Adams-Bashforth (explicite) et la correction, sur une méthode d'Adams-Moulton (implicite).

  • Prédiction
    y ~ n + 1 = y n + ( t n + 1 t n ) i = 0 r f n i b i , r {\displaystyle {\tilde {y}}_{n+1}=y_{n}+(t_{n+1}-t_{n})\sum _{i=0}^{r}f_{n-i}b_{i,r}}
  • Correction :
    y n + 1 = y n + ( t n + 1 t n ) i = 0 r f n + 1 i m i + 1 , r {\displaystyle y_{n+1}=y_{n}+(t_{n+1}-t_{n})\sum _{i=0}^{r}f_{n+1-i}m_{i+1,r}}
r {\displaystyle r} b 0 , r {\displaystyle b_{0,r}} b 1 , r {\displaystyle b_{1,r}} b 2 , r {\displaystyle b_{2,r}} b 3 , r {\displaystyle b_{3,r}}
0 1
1 3 2 {\displaystyle {\tfrac {3}{2}}} 1 2 {\displaystyle -{\tfrac {1}{2}}}
2 23 12 {\displaystyle {\tfrac {23}{12}}} 16 12 {\displaystyle -{\tfrac {16}{12}}} 5 12 {\displaystyle {\tfrac {5}{12}}}
3 55 24 {\displaystyle {\tfrac {55}{24}}} 59 24 {\displaystyle -{\tfrac {59}{24}}} 37 24 {\displaystyle {\tfrac {37}{24}}} 9 24 {\displaystyle -{\tfrac {9}{24}}}
r {\displaystyle r} m 0 , r {\displaystyle m_{0,r}} m 1 , r {\displaystyle m_{1,r}} m 2 , r {\displaystyle m_{2,r}} m 3 , r {\displaystyle m_{3,r}}
0 1
1 1 2 {\displaystyle {\tfrac {1}{2}}} 1 2 {\displaystyle {\tfrac {1}{2}}}
2 5 12 {\displaystyle {\tfrac {5}{12}}} 8 12 {\displaystyle {\tfrac {8}{12}}} 1 12 {\displaystyle -{\tfrac {1}{12}}}
3 9 24 {\displaystyle {\tfrac {9}{24}}} 19 24 {\displaystyle {\tfrac {19}{24}}} 5 24 {\displaystyle -{\tfrac {5}{24}}} 1 24 {\displaystyle {\tfrac {1}{24}}}
Coefficients des schémas d'Adams-Bashford Coefficients des schémas d'Adams-Moulton
Méthode de Hamming

Ce schéma est dérivé de celui de Milne, mais Hamming, en 1959, a remplacé le correcteur par une règle stable[4].

  • Prédiction
    y ~ n = y n 4 + 4 ( t n + 1 t n ) 3 ( 2 f n 3 f n 2 + 2 f n 1 ) ,   n 4 {\displaystyle {\tilde {y}}_{n}=y_{n-4}+{\frac {4(t_{n+1}-t_{n})}{3}}(2f_{n-3}-f_{n-2}+2f_{n-1}),\ \forall n\geqslant 4}
  • Correction :
    y n + 1 = 1 8 ( 9 y n y n 2 ) + 3 ( t n + 1 t n ) 8 ( f ~ n 1 + 2 f ~ n f ~ n + 1 ) ,   n 4 {\displaystyle y_{n+1}={\frac {1}{8}}(9y_{n}-y_{n-2})+{\frac {3(t_{n+1}-t_{n})}{8}}(-{\tilde {f}}_{n-1}+2{\tilde {f}}_{n}-{\tilde {f}}_{n+1}),\ \forall n\geqslant 4}

Intérêts

Chase a mis en évidence que le choix du correcteur est peut-être plus impactant sur la stabilité de la méthode que celui du prédicteur[5], du moins dans la limite d'un pas d'intégration petit. Dans le cas général, les choix du prédicteur et du correcteur ont tous les deux une influence notable sur la stabilité de la méthode.

Dans le cas général, les méthodes de Runge-Kutta sont préférées aux schémas prédicteur-correcteur pour leur adaptabilité et leur mise en œuvre plus simple car totalement explicite. Cependant, pour des méthodes du même ordre de consistance, les méthodes de Runge-Kutta exigent plus d'évaluations de fonctions. Ainsi, dans les cas où on sait que la solution de l'équation n'est pas sujette à de brusques variations de la dérivée, on prendra une méthode de type prédicteur-correcteur mais, si le pas doit être adapté plus précisément, on préfèrera une méthode de Runge-Kutta.

Références

  1. (en) William Edmund Milne, Numerical solution of differential equations,
  2. (en) W. E. Milne et R. R. Reynolds, « Stability of a Numerical Solution of Differential Equations », Journal of the ACM, vol. 6,‎ , p. 196-203 (lire en ligne)
  3. (en) « Milne method », dans Michiel Hazewinkel, Encyclopædia of Mathematics, Springer, (ISBN 978-1556080104, lire en ligne)
  4. (en) Richard Wesley Hamming, « Stable Predictor-Corrector Methods for Ordinary Differential Equations », Journal of the ACM, vol. 6, no 1,‎ , p. 37-47 (DOI 10.1145/320954.320958, lire en ligne)
  5. (en) P. E. Chase, « Stability Properties of Predictor-Corrector Methods for Ordinary Differential Equations », Journal of the ACM,‎ (DOI 10.1145/321138.321143)

Articles connexes

Liens externes

  • (en) Eric W. Weisstein, « Runge-Kutta Method », sur MathWorld
  • (en) Eric W. Weisstein, « Milne's Method », sur MathWorld
  • (en) Eric W. Weisstein, « Predictor-Corrector Methods », sur MathWorld
v · m
Recherche de zéro
Transformations de matrice
Résolutions de systèmes
Intégration numérique
Équations différentielles
Interpolation numérique
  • icône décorative Portail de l'analyse