title: Extrapolation de Richardson
text: # 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^,,$ qui l'a popularisé au début du XXe siècle. Les premières utilisations remontent à Huygens en 1654 et Takebe Kenkō en 1723, 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}\neq 0,~m>n,$
  
  expression dans laquelle le coefficient $a_n$ n'est pas connu. Le principe d'extrapolation consiste à supprimer le terme en $h^n$ 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)+{\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}}+\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$
  
      ${(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 $h^{k0}$ a disparu. Cette formule peut être itérée pour augmenter l'ordre, en évaluant A(h) successivement aux points $h_{n}={\frac {h_{0}}{r^{n}}}$.
  
  Pour les formules d'erreur pouvant être exprimé sous la forme
  
      $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 $\Phi (x)$ connue telle que $\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 $h_n$ 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 $(\Phi (h_{i}),A(h_{i}))$, où les $h_i$ 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) 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}\phi _{1}(h)+a_{2}\phi _{2}(h)+a_{3}\phi _{3}(h)+\cdots$
  
  avec les fonctions $\Phi _{n}(x)$ connues et telles que $\lim _{x\to 0}\phi _{n}(x)=0$, l'algorithme d'interpolation linéaire généralisé de Mühlbach peut être utilisé : On obtient dans ce cas un algorithme d'accélération de la convergence appelé E-algorithme, de Håvie et Brezinski (à 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}{\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 $A_n,$ avec la suite auxiliaire $h_n$ correspondante, on initialise le tableau suivant :
  
      $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)}+{\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)}$ (la pointe du triangle)
  
  Le choix de la suite auxiliaire $h_n$ 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 $A_n.$ 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 $h_n$ 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}={\frac {h_{0}}{2^{n}}}$
  * les suites de Bulirsch $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}={\frac {h_{n}}{2}}$
  * la suite de Deuflhard $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 $h_n$ géométrique, du type $h_n=h_0/r^n$ (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+{\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)={\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)={\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}+\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, $h^2,$ etc.
  
  En soustrayant le développement de Taylor de f (x+h) à celui de f(x–h), on obtient :
  
      $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)={\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(x–h), on en tire une formule du même type servant à calculer la dérivée seconde :
  
      $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 $\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 $h_i,$ du type d'extrapolation (polynomiale ou rationnelle), et du calcul de la taille du pas global.
  
  