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 (An) dont on cherche à connaitre la limite A. La transformée de Shanks d'ordre k 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 k donne exactement la limite de la suite d'origine An si celle-ci vérifie l'équation aux différences linéaire à coefficients constants d'ordre k du type :
- avec les constantes arbitraires ap telles que
Ce modèle de comportement de convergence possède 2k + 1 inconnues. En évaluant l'équation ci-dessus pour An, An+1, ..., An+2k, on obtient l'expression de la transformée de Shanks ek(An) en résolvant l'inconnue A dans le système obtenu.
En résolvant l'équation aux différences linéaire, on peut expliciter la forme de An pour laquelle la transformée de Shanks d'ordre k fournit la limite exacte :
Les λp étant les m racines du polynôme , Qpkp(n) étant un polynôme arbitraire en n, dont le degré kp est la multiplicité de la racine λp. Les racines pouvant être complexes, le comportement de An 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 (k + n, k) de f(x) (la fraction rationnelle de degré n + k au numérateur et k au dénominateur dont le développement limité coïncide avec celui de f(x) jusqu'au degré 2k + n). 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 (An est totalement monotone si ) et les suites totalement oscillantes (An est totalement oscillante si est totalement monotone).
S'il existe des constantes a et b telles que la suite a An + b 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 k, notamment pour k = 1 où l'on obtient 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 k 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
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 à 1. 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 1. Par exemple, pour x = 2, 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 arctan(2). 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 n négatifs). Dans cet exemple, la meilleure estimation étant obtenue pour ek(A0), correspondant à la diagonale du tableau de Padé. Il est important de calculer la suite An 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 ek(A0) 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 k des transformées. La dernière colonne calculée ek(An) servira alors de suite initiale pour une nouvelle transformation, poussée jusqu'à l'ordre k, et ainsi de suite. On appelle ceci une application itérée de la transformée de Shanks d'ordre k. On prend le plus souvent k = 1, c'est-à-dire que l'on itère le Δ2 d'Aitken.
En reprenant l'exemple de arctan(2), on trouve :
n | An | e1(An) | e12(An) | e13(An) | e14(An) | e15(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 Δ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 [–π, +π], 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 θ, 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
- (en) Daniel Shanks, « Non-linear transformation of divergent and slowly convergent sequences », Journal of Mathematics and Physics, vol. 34, 1955, p. 1-42.
- (en) R. J. Schmidt (Ph.D.), « On the numerical solution of linear simultaneous equations by an iterative method », Philos. Mag., vol. 32, 1941, p. 369-383 DOI 10.1080/14786444108520797.
Référence
Claude Brezinski, Algorithmes d'accélération de la convergence : étude numérique, Technip, (ISBN 978-2-7108-0341-6, lire en ligne)