Transformation de Shanks
En analyse numérique, la transformation de Shanks est une méthode non linéaire d'accélération de la convergence de suites numériques. Cette méthode est nommée d'après Daniel Shanks, qui l'exposa en 1955[1], bien qu'elle ait été étudiée et publiée par R. J. Schmidt dès 1941[2]. C'est une généralisation de l'algorithme Delta-2 d'Aitken.
Présentation
Soit une suite numérique (Modèle:Mvar) dont on cherche à connaitre la limite Modèle:Mvar. La transformée de Shanks d'ordre Modèle:Mvar de cette suite est donnée par le rapport de deux déterminants :
avec et
Propriétés
Modèle de convergence
La transformée de Shanks d'ordre Modèle:Mvar donne exactement la limite de la suite d'origine Modèle:Mvar si celle-ci vérifie l'équation aux différences linéaire à coefficients constants d'ordre Modèle:Mvar du type :
- avec les constantes arbitraires Modèle:Mvar telles que
Ce modèle de comportement de convergence possède Modèle:Math inconnues. En évaluant l'équation ci-dessus pour Modèle:Math, on obtient l'expression de la transformée de Shanks Modèle:Math en résolvant l'inconnue Modèle:Mvar dans le système obtenu.
En résolvant l'équation aux différences linéaire, on peut expliciter la forme de Modèle:Mvar pour laquelle la transformée de Shanks d'ordre Modèle:Mvar fournit la limite exacte :
Les Modèle:Math étant les Modèle:Mvar racines du polynôme , Modèle:Math étant un polynôme arbitraire en Modèle:Mvar, dont le degré Modèle:Mvar est la multiplicité de la racine Modèle:Math. Les racines pouvant être complexes, le comportement de Modèle:Mvar englobe de nombreuses formes : combinaisons linéaires d'exponentielles décroissantes ou croissantes avec des sinusoïdes amorties ou amplifiées.
Lien avec la table de Padé
Lorsque la suite à accélérer est la somme partielle d'un développement en série entière d'une fonction :
alors, les différentes transformées de Shanks de la suite constituent le tableau de Padé de la série :
avec l'approximant de Padé d'indice Modèle:Math de Modèle:Math (la fraction rationnelle de degré Modèle:Mvar au numérateur et Modèle:Mvar au dénominateur dont le développement limité coïncide avec celui de Modèle:Math jusqu'au degré Modèle:Math). La transformation de Shanks fournit donc un moyen de calculer les différents approximants de Padé d'une fonction dont on connait le développement limité.
Cas de convergence démontrée
L'accélération de la convergence de la transformation de Shanks a été démontrée pour certains types de suite, notamment les suites totalement monotones (Modèle:Mvar est totalement monotone si ) et les suites totalement oscillantes (Modèle:Mvar est totalement oscillante si est totalement monotone).
S'il existe des constantes Modèle:Mvar et Modèle:Mvar telles que la suite Modèle:Mvar soit totalement monotone ou oscillante, et si
(la convergence n'est pas de type logarithmique) alors les lignes, colonnes et diagonales du tableau des transformées de Shanks convergent vers la limite de la suite d'origine, et cela plus vite que, respectivement, les lignes, colonnes et diagonales précédentes.
Algorithmes de calcul
En pratique, le calcul des déterminants étant assez gourmand, la transformée de Shanks n'est effectivement calculée de cette manière que pour de faibles valeurs de Modèle:Mvar, notamment pour Modèle:Math où l'on obtient le [[Delta-2|ΔModèle:2]] d'Aitken. En effet :
La deuxième expression donnée plus haut de la transformée est un rapport de deux déterminants possédant une structure particulière, et qui entrent dans la catégorie des déterminants de Hankel. Il existe une relation de récurrence entre les déterminants de Hankel qui permet ainsi de calculer la transformée de Shanks plus économiquement.
Mais surtout, la méthode la plus utilisée pour calculer la transformée de Shanks est l'ε-algorithme de Peter Wynn :
L'ε-algorithme se prête particulièrement bien au calcul dans un tableur. Dans l'ε-algorithme, seuls les indices Modèle:Mvar pairs fournissent des résultats intéressants, les autres servant d'intermédiaires de calcul.
Plusieurs autres algorithmes peuvent servir à calculer les transformées de Shanks (q-d algorithme de Rutishauser, η-algorithme de Bauer...). La règle de la croix peut être aussi utilisée :
- .
Exemples
Accélération de la convergence d'une suite
Extension du domaine de convergence d'un développement en série entière
Le développement en série entière de la fonction arc tangente
a un rayon de convergence égal à Modèle:Math. Le calcul des transformées de Shanks de ce développement va fournir le tableau de Padé de la fonction arc tangente, dont certains éléments peuvent converger au-delà de Modèle:Math. Par exemple, pour Modèle:Math, on a :
| n | An | e1(An) | e2(An) | e3(An) | e4(An) | e5(An) |
|---|---|---|---|---|---|---|
| 0 | 2,000000 | 1,215686 | 1,122699 | 1,109420 | 1,107481 | 1,107197 |
| 1 | –0,666667 | 0,992593 | 1,095083 | 1,105663 | 1,106953 | |
| 2 | 5,733333 | 1,285457 | 1,120862 | 1,108523 | 1,107305 | |
| 3 | –12,552381 | 0,762040 | 1,087293 | 1,105534 | ||
| 4 | 44,336508 | 1,873988 | 1,141097 | 1,109410 | ||
| 5 | –141,845310 | –0,766091 | 1,041663 | |||
| 6 | 488,308536 | 6,008969 | 1,245533 | |||
| 7 | –1696,224797 | –12,406001 | ||||
| 8 | 6013,892850 | 39,911298 | ||||
| 9 | –21580,212414 | |||||
| 10 | 78284,168539 |
Malgré la divergence manifeste de la série à accélérer, on constate que sa transformée de Shanks converge vers la valeur de Modèle:Math. On obtient ainsi une partie de la table de Padé de la fonction arc tangente (l'autre partie peut être calculée en continuant l'ε-algorithme pour les Modèle:Mvar négatifs). Dans cet exemple, la meilleure estimation étant obtenue pour Modèle:Math, correspondant à la diagonale du tableau de Padé. Il est important de calculer la suite Modèle:Mvar ainsi que les transformées successives en double précision (ou plus) afin de minimiser les propagations d'erreur d'arrondi dont l'algorithme a tendance à amplifier.
Application répétée et itérée
La transformation de Shanks est une transformation de suite à suite : le résultat est donc une suite (qui contient moins de terme que la suite originale). Il peut venir à l'idée de refaire subir à la suite résultante une nouvelle transformation de Shanks : on appelle ceci une application répétée de la transformation de Shanks.
En reprenant la première ligne Modèle:Math du tableau précédent comme nouvelle suite initiale, on obtient :
| ek(A0) | e1(ek(A0)) | e2(ek(A0)) |
|---|---|---|
| 2,000000 | 1,11019129 | 1,10714844 |
| 1,215686 | 1,10720759 | 1,10714867 |
| 1,122699 | 1,10714937 | |
| 1,109420 | 1,10714868 | |
| 1,107481 | ||
| 1,107197 |
On constate une amélioration du résultat, ceci sans calculer de nouveaux termes de la série d'arc tangente (les calculs ont été effectués avec plus de chiffres significatifs que ceux affichés).
Une autre possibilité consiste à limiter l'ordre Modèle:Mvar des transformées. La dernière colonne calculée Modèle:Math servira alors de suite initiale pour une nouvelle transformation, poussée jusqu'à l'ordre Modèle:Mvar, et ainsi de suite. On appelle ceci une application itérée de la transformée de Shanks d'ordre Modèle:Mvar. On prend le plus souvent Modèle:Math, c'est-à-dire que l'on itère le ΔModèle:2 d'Aitken.
En reprenant l'exemple de Modèle:Math, on trouve :
| n | An | e1(An) | e1Modèle:Exp(An) | e1Modèle:Exp(An) | e1Modèle:Exp(An) | e1Modèle:Exp(An) |
|---|---|---|---|---|---|---|
| 0 | 2,000000 | 1,215686 | 1,119223 | 1,108112 | 1,107203 | 1,107151 |
| 1 | –0,666667 | 0,992593 | 1,097666 | 1,106475 | 1,107111 | |
| 2 | 5,733333 | 1,285457 | 1,117931 | 1,107786 | 1,107181 | |
| 3 | –12,552381 | 0,762040 | 1,091576 | 1,106394 | ||
| 4 | 44,336508 | 1,873988 | 1,133689 | 1,108205 | ||
| 5 | –141,845310 | –0,766091 | 1,056116 | |||
| 6 | 488,308536 | 6,008969 | 1,214677 | |||
| 7 | –1696,224797 | –12,406001 | ||||
| 8 | 6013,892850 | 39,911298 | ||||
| 9 | –21580,212414 | |||||
| 10 | 78284,168539 |
Dans ce cas précis, l'application itérée du ΔModèle:2 d'Aitken donne de meilleurs résultats que la transformée de Shanks équivalente. Les applications répétées et itérées sont particulièrement sensibles à la propagation d'erreurs d'arrondi.
Accélération de la convergence d'une série de Fourier
Les sommes partielles d'une série de Fourier peuvent fournir une suite qui peut être accélérée par la transformée de Shanks. Cependant, une manière plus logique de procéder est de transformer, par un changement de variable, la série de Fourier en une série entière. Les transformées de Shanks de cette série entière en fourniront sa table de Padé.
La série de Fourier :
se transforme en une série entière
dont la partie réelle est la valeur cherchée.
Par exemple, la fonction en dents de scie sur Modèle:Math, dont la série de Fourier vaut :
devient après changement de variable la série entière :
dont on pourra accélérer la convergence en utilisant la transformation de Shanks (avec des nombres complexes).

Avec les six premiers termes de la série de Fourier :
on trouve, en explicitant la transformée de Shanks :
dont la partie réelle, en revenant à la variable Modèle:Mvar, forme une fraction rationnelle trigonométrique :
- .
On constate sur le graphique ci-contre une nette accélération de la convergence de la transformée de Shanks par rapport à la série initiale.
Notes
Référence
Articles connexes
- ↑ Modèle:En Daniel Shanks, « Non-linear transformation of divergent and slowly convergent sequences », Journal of Mathematics and Physics, vol. 34, 1955, Modèle:P..
- ↑ Modèle:En R. J. Schmidt (Ph.D.), « On the numerical solution of linear simultaneous equations by an iterative method », Philos. Mag., vol. 32, 1941, Modèle:P. Modèle:DOI.