Extrapolation de Richardson

En analyse numérique, le procédé d'extrapolation de Richardson est une technique d'accélération de la convergence. Il est ainsi dénommé en l'honneur de Lewis Fry Richardson[1],[2], qui l'a popularisé au début du XXe siècle. Les premières utilisations remontent à Huygens en 1654 et Takebe Kenkō en 1723[3], pour l'évaluation numérique de π.

Ce procédé est notamment utilisé pour définir une méthode numérique d'intégration : la méthode de Romberg, accélération de la méthode des trapèzes.

Présentation du principe

On suppose que la quantité inconnue A peut être approchée par une fonction A(h) avec une convergence d'ordre n en h

A A ( h ) = a n h n + O ( h m ) ,   a n 0 ,   m > n , {\displaystyle A-A(h)=a_{n}h^{n}+O(h^{m}),~a_{n}\neq 0,~m>n,}

expression dans laquelle le coefficient an n'est pas connu. Le principe d'extrapolation consiste à supprimer le terme en hn par combinaison linéaire de deux valeurs de A(h), calculés avec des h différents : par exemple A(h) et A(h/2). On obtient :

R ( h ) = A ( h / 2 ) + A ( h / 2 ) A ( h ) 2 n 1 = 2 n A ( h / 2 ) A ( h ) 2 n 1 {\displaystyle R(h)=A(h/2)+{\frac {A(h/2)-A(h)}{2^{n}-1}}={\frac {2^{n}\,A(h/2)-A(h)}{2^{n}-1}}}

R(h) est l'extrapolé de Richardson qui approche A à l'ordre m>n en h. Le facteur 2 peut être remplacé par n'importe quel autre facteur. L'intérêt de la méthode est qu'il sera fréquemment plus aisé d'obtenir une précision donnée en calculant R(h) que A(h') avec un h' beaucoup plus petit (risque d'erreur d'arrondi, grande quantité de calcul …).

Formule générale

On suppose que l'on dispose d'une approximation de A avec une formule d'erreur de cette forme

A = A ( h ) + a 0 h k 0 + a 1 h k 1 + a 2 h k 2 + a z h k z + O ( h k z + 1 ) , {\displaystyle A=A(h)+a_{0}h^{k_{0}}+a_{1}h^{k_{1}}+a_{2}h^{k_{2}}+\cdots a_{z}h^{k_{z}}+O(h^{k_{z+1}}),}

les coefficients étant inconnus. On se fixe un paramètre réel r>1 et on forme une combinaison entre la relation précédente et cette même relation prise au point h / r {\displaystyle h/r}

( r k 0 1 ) A = r k 0 A ( h r ) A ( h ) + 0 + a 1 ( r k 0 r k 1 1 ) h k 1 + + a z ( r k 0 r k z 1 ) h k z + O ( h k z + 1 ) . {\displaystyle {(r^{k_{0}}-1)A=r^{k_{0}}A\left({\frac {h}{r}}\right)-A(h)+0+a_{1}\left({\frac {r^{k_{0}}}{r^{k_{1}}}}-1\right)h^{k_{1}}+\dots +a_{z}\left({\frac {r^{k_{0}}}{r^{k_{z}}}}-1\right)h^{k_{z}}+O(h^{k_{z+1}}).}}

Le terme en hk0 a disparu. Cette formule peut être itérée pour augmenter l'ordre, en évaluant A(h) successivement aux points h n = h 0 r n {\displaystyle h_{n}={\frac {h_{0}}{r^{n}}}} .

Pour les formules d'erreur pouvant être exprimé sous la forme

A = A ( h ) + a 1 ϕ ( h ) + a 2 ϕ ( h ) 2 + a 3 ϕ ( h ) 3 + a z ϕ ( h ) z + O ( ϕ ( h ) z + 1 ) , {\displaystyle A=A(h)+a_{1}{\phi (h)}+a_{2}{\phi (h)}^{2}+a_{3}{\phi (h)}^{3}+\cdots a_{z}{\phi (h)}^{z}+O({\phi (h)}^{z+1}),}

avec une fonction Φ ( x ) {\displaystyle \Phi (x)} connue telle que lim x 0 ϕ ( x ) = 0 {\displaystyle \lim _{x\to 0}\phi (x)=0} , un algorithme d'interpolation polynomial (par exemple l'algorithme d'Aitken-Neville) peut être utilisé. Dans ce cas, la suite des subdivisions hn n'a pas nécessité d'être en progression géométrique.

Dans ce cas, le résultat de l'extrapolation de Richardson s'obtient en calculant la valeur en zéro du polynôme d'interpolation passant par les points ( Φ ( h i ) , A ( h i ) ) {\displaystyle (\Phi (h_{i}),A(h_{i}))} , où les hi forment une suite décroissant vers 0. Une variante consiste à utiliser une interpolation par fraction rationnelle au lieu d'une interpolation polynomiale (Bulirsch et Stoer (en)[4] ou le ρ-algorithme de P. Wynn).

Pour le cas encore plus général, où la formule d'erreur est de la forme :

A = A ( h ) + a 1 ϕ 1 ( h ) + a 2 ϕ 2 ( h ) + a 3 ϕ 3 ( h ) + {\displaystyle A=A(h)+a_{1}\phi _{1}(h)+a_{2}\phi _{2}(h)+a_{3}\phi _{3}(h)+\cdots }

avec les fonctions Φ n ( x ) {\displaystyle \Phi _{n}(x)} connues et telles que lim x 0 ϕ n ( x ) = 0 {\displaystyle \lim _{x\to 0}\phi _{n}(x)=0} , l'algorithme d'interpolation linéaire généralisé de Mühlbach[5] peut être utilisé : On obtient dans ce cas un algorithme d'accélération de la convergence appelé E-algorithme, de Håvie[6] et Brezinski[7] (à ne pas confondre avec l'ε-algorithme de P. Wynn).

Algorithme

L'algorithme présenté est celui associé à la méthode d'Aitken Neville, lorsque la formule d'erreur est de la forme :

A = A ( h ) + a 1 ϕ ( h ) + a 2 ϕ ( h ) 2 + a 3 ϕ ( h ) 3 + a z ϕ ( h ) z + O ( ϕ ( h ) z + 1 ) , {\displaystyle A=A(h)+a_{1}{\phi (h)}+a_{2}{\phi (h)}^{2}+a_{3}{\phi (h)}^{3}+\cdots a_{z}{\phi (h)}^{z}+O({\phi (h)}^{z+1}),}

Pour N valeurs différentes calculés de An, avec la suite auxiliaire hn correspondante, on initialise le tableau suivant :

R 0 ( n ) = A n n = 0 , 1 , , N 1 {\displaystyle R_{0}^{(n)}=A_{n}\quad n=0,1,\dots ,N-1}

Puis le reste du tableau (seulement une partie triangulaire) est calculé par les relations :

R k + 1 ( n ) = R k ( n + 1 ) + R k ( n + 1 ) R k ( n ) ϕ ( h n ) ϕ ( h n + k + 1 ) 1 pour n < N 1 k {\displaystyle R_{k+1}^{(n)}=R_{k}^{(n+1)}+{\frac {R_{k}^{(n+1)}-R_{k}^{(n)}}{{\frac {\phi (h_{n})}{\phi (h_{n+k+1})}}-1}}\quad {\textrm {pour}}\quad n<N-1-k}

Le résultat de l'extrapolation de Richardson est R N 1 ( 0 ) {\displaystyle R_{N-1}^{(0)}} (la pointe du triangle)

Le choix de la suite auxiliaire hn est un compromis entre une suite décroissant suffisamment rapidement pour obtenir un algorithme numériquement stable, et une suite décroissant lentement évitant les difficultés de calcul des An. Pour des raisons de risque de divergence, on évitera d'utiliser une suite auxiliaire décroissant plus lentement que la suite harmonique (critère de Laurent).

D'autres algorithmes d'interpolation polynomiales peuvent être utilisés à la place de la méthode d'Aitken Neville, notamment la méthode de Lagrange (en particulier sa variante dite barycentrique). Dans ce cas précis, les polynômes formant la base de Lagrange peuvent être calculés une fois pour toutes (ceux-ci ne dépendant que de la suite hn choisie), ce qui rend l'algorithme compétitif. Ceci est d'autant plus vrai s'il y a à extrapoler à plusieurs reprises, par exemple pour la résolution des équations différentielles, ou l'extrapolation d'une suite vectorielle.

Les suites classiquement utilisés sont :

  • la suite de Romberg h n = h 0 2 n {\displaystyle h_{n}={\frac {h_{0}}{2^{n}}}}
  • les suites de Bulirsch h 1 = h 0 / 2 ; h 2 = h 0 / 3 ; h n + 2 = h n 2 {\displaystyle h_{1}=h_{0}/2;h_{2}=h_{0}/3;h_{n+2}={\frac {h_{n}}{2}}} ou bien h 1 = h 0 / 2 ; h 2 = h 0 / 4 ; h 3 = h 0 / 6 ; h n + 2 = h n 2 {\displaystyle h_{1}=h_{0}/2;h_{2}=h_{0}/4;h_{3}=h_{0}/6;h_{n+2}={\frac {h_{n}}{2}}}
  • la suite de Deuflhard h n = h 0 2 n {\displaystyle h_{n}={\frac {h_{0}}{2n}}}

Lorsque les exposants de la formule d'erreur de A(h) ne suivent pas une progression arithmétique, les algorithmes précédents doivent être adaptés, avec la contrainte d'utiliser une suite hn géométrique, du type hn=h0/rn (par exemple, celle de Romberg, de raison 2). D'autre part, les différents exposants de la formule d'erreur doivent être connus, car ils rentre dans la formule de calcul du tableau.

Exemples d'application

Approximation numérique de la dérivée d'une fonction

Le point de départ est le développement de Taylor de la fonction à dériver :

f ( x + h ) = f ( x ) + f ( x ) h + f ( x ) 2 ! h 2 + f ( x ) 3 ! h 3 + f ( x ) 4 ! h 4 + {\displaystyle f(x+h)=f(x)+f'(x)h+{\frac {f''(x)}{2!}}h^{2}+{\frac {f'''(x)}{3!}}h^{3}+{\frac {f''''(x)}{4!}}h^{4}+\cdots }

la dérivée de f(x) est déduite

f ( x ) = f ( x + h ) f ( x ) h f ( x ) 2 ! h f ( x ) 3 ! h 2 f ( x ) 4 ! h 3 + . {\displaystyle f'(x)={\frac {f(x+h)-f(x)}{h}}-{\frac {f''(x)}{2!}}h-{\frac {f'''(x)}{3!}}h^{2}-{\frac {f''''(x)}{4!}}h^{3}+\cdots .}

en appelant A ( h ) = f ( x + h ) f ( x ) h {\displaystyle A(h)={\frac {f(x+h)-f(x)}{h}}} , le terme d'erreur se présente sous une forme :

A ( h ) = f ( x ) + a 1 h + a 2 h 2 + a 3 h 3 + {\displaystyle A(h)=f'(x)+a_{1}h+a_{2}h^{2}+a_{3}h^{3}+\cdots }

forme convenable pour être accélérée à l'aide de l'extrapolation de Richardson. Il suffira de calculer A(h) pour différentes valeur de h (par exemple la suite de Romberg), et de s'en servir pour éliminer les termes en h, h2etc.

En soustrayant le développement de Taylor de f (x+h) à celui de f(xh), on obtient :

f ( x + h ) f ( x h ) = 2 f ( x ) h + 2 f ( x ) 3 ! h 3 + 2 f ( 5 ) ( x ) 5 ! h 5 + {\displaystyle f(x+h)-f(x-h)=2f'(x)h+2{\frac {f'''(x)}{3!}}h^{3}+2{\frac {f^{(5)}(x)}{5!}}h^{5}+\cdots }

on en tire une autre approximation de la dérivée :

A ( h ) = f ( x + h ) f ( x h ) 2 h = f ( x ) + a 2 h 2 + a 4 h 4 + a 6 h 6 + . {\displaystyle A(h)={\frac {f(x+h)-f(x-h)}{2h}}=f'(x)+a_{2}h^{2}+a_{4}h^{4}+a_{6}h^{6}+\cdots .}

qui ne contient que des termes d'erreur de degré pair. L'utilisation de l'extrapolation de Richardson est dans ce cas beaucoup plus efficace, car à chaque étape, le degré d'approximation est augmenté de 2.

De la même manière, cette fois-ci en additionnant les développements de f (x+h) et f(xh), on en tire une formule du même type servant à calculer la dérivée seconde :

A ( h ) = f ( x + h ) 2 f ( x ) + f ( x h ) h 2 = f ( x ) + a 2 h 2 + a 4 h 4 + a 6 h 6 + . {\displaystyle A(h)={\frac {f(x+h)-2f(x)+f(x-h)}{h^{2}}}=f''(x)+a_{2}h^{2}+a_{4}h^{4}+a_{6}h^{6}+\cdots .}

Dans les deux cas précédents, on pourra utiliser la méthode de Aitken-Neville pour le calcul de l'extrapolation de Richardson, avec la fonction Φ ( h ) = h 2 {\displaystyle \Phi (h)=h^{2}} .

Intégration numérique

La méthode des trapèzes possède un terme d'erreur n'ayant que des puissances paires de h, d'après la formule d'Euler-Maclaurin. Elle est donc très bien adaptée à l'utilisation de l'extrapolation de Richardson. La méthode résultante est appelée méthode de Romberg.

La méthode du point médian possède aussi ce type de développement, et peut donc fournir une variante de la méthode de Romberg. Les deux méthodes peuvent être utilisées de concert pour fournir une estimation de l'erreur de l'intégrale résultante.

Intégration numérique des équations différentielles

La méthode d'intégration de base qui se prête le mieux à l'extrapolation de Richardson est la méthode du point milieu (où du point milieu modifié) de Gragg. Elle possède aussi un terme d'erreur où n'apparait que les puissances paires de h (lorsque les subdivisions sont paires). La méthode résultante est connue sous le nom de Gragg-Bulirsch-Stoer (GBS) (en). Il existe plusieurs variantes, dépendant du choix de la séquence des hi, du type d'extrapolation (polynomiale ou rationnelle), et du calcul de la taille du pas global.

Notes

  1. (en) L. F. Richardson, « The approximate arithmetical solution by finite differences of physical problems including differential equations, with an application to the stresses in a masonry dam », Philosophical Transactions of the Royal Society of London, Series A, vol. 210,‎ , p. 307–357 (DOI 10.1098/rsta.1911.0009)
  2. (en) L. F. Richardson, « The deferred approach to the limit », Philosophical Transactions of the Royal Society of London, Series A, vol. 226,‎ , p. 299–349 (DOI 10.1098/rsta.1927.0008)
  3. (en) Guido Walz, « The History of Extrapolation Methods in Numerical Analysis », Mannheimer Manuskripte, vol. 130,‎ , p. 1–11
  4. (en) R. Bulirsch et J. Stoer, §2.2 in Introduction to Numerical Analysis, New York, Springer-Verlag, 1991.
  5. Mühlbach, G., The general Neville-Aitken algorithm and some applications. Numer. Math. v31. 97-110
  6. Håvie, T., Generalized Neville type extrapolation schemes. BIT. v19. 204-213
  7. Brezinski, C., « A general extrapolation algorithm ». Numer. Math. v25. 175-187

Voir aussi

Bibliographie

Claude Brezinski, Algorithmes d'accélération de la convergence : étude numérique, Paris, éditions Technip, , 392 p. (ISBN 2-7108-0341-0, lire en ligne)

Article connexe

Delta-2

  • icône décorative Portail de l'analyse