- Epsilon algorithme
-
Pour les articles homonymes, voir Epsilon (homonymie).
En analyse numérique, l'ε-algorithme est un algorithme non linéaire d'accélération de la convergence de suites numériques. Cette algorithme a été proposé par Peter Wynn[1] en 1956 pour calculer la transformation de Shanks. C'est l'un des algorithmes d'accélération de la convergence les mieux connus et des plus utilisés. C'est une généralisation de l'algorithme Delta-2 d'Aitken.
Sommaire
Présentation
Soit une suite numérique Sn dont on cherche à connaitre la limite S. l'ε-algorithme consiste à calculer un tableau en initialisant la première colonne par la suite Sn, et en calculant les autres cases à l'aide des relations suivantes :
Les différentes colonnes d'indice k paires du tableau fournissent d'autres suites convergeant en général plus vite que la suite Sn d'origine. Les colonnes d'indice impaires peuvent êtres considérés comme des intermédiaires de calcul.
On présente traditionnellement les résultats de l'ε-algorithme sous forme d'un tableau aux lignes décalés: la formule de calcul de l'ε-algorithme relie ainsi les termes formant un losange dans le tableau.
Propriétés
Le tableau obtenu par l'ε-algorithme est une des méthodes utilisées pour calculer la transformation de Shanks d'une suite. En effet:
où ek(Sn) est la transformée de Shanks d'ordre k de la suite Sn. L'ε-algorithme partage donc toutes les propriétés de la transformée de Shanks. Notamment, l'ε-algorithme est un moyen pour calculer la table de Padé d'une série entière. De même, la suite ε(n)2 correspond au Delta-2 d'Aitken. Les approximants de Padé à plusieurs variables peuvent aussi très simplement être calculés à l'aide de l'ε-algorithme. Par exemple, pour une fonction à 2 variables, dont le développement de Taylor est:
Sa table de Padé peut être obtenue à l'aide de l'ε-algorithme, en initialisant la première colonne par:
Variantes
ε-algorithme vectoriel
Il existe plusieurs variantes de l'ε-algorithme pouvant êtres utiliser avec des suites vectorielles (ε-algorithme vectoriel, topologique ou scalaire appliqué à chacune des composantes du vecteur). L'ε-algorithme vectoriel est analogue dans sa forme à l'ε-algorithme classique:
où les suites Sn et les 0 sont des vecteurs.
Reste à définir ce qu'est l'inverse d'un vecteur! On pourra prendre par exemple comme inverse d'un vecteur U:
où la norme du vecteur est la norme euclidienne. L'ε-algorithme vectoriel a de nombreuses applications pratiques mais est très sensible aux erreurs d'arrondi. Il permet notamment de généraliser la méthode de Aitken-Steffensen à des systèmes d'équations non linéaires, fournissant ainsi un algorithme à convergence quadratique, ne nécessitant pas de calcul du Jacobien, à l'inverse de la méthode de Newton.
L'ε-algorithme matriciel existe pour les matrices carrés, dans ce cas l'inverse apparaissant dans l'algorithme est tout simplement celui d'une matrice carré classique.
ε-algorithme confluent
L'ε-algorithme classique accélère une suite numérique, c'est-à-dire une fonction d'une variable discrète 'n'. La version confluente de cet algorithme accélère la convergence d'une fonction d'une variable continue 't'. On l'obtient en faisant un changement de variable x=t+n*h à l'algorithme d'origine, et en faisant tendre h vers 0. on obtient:
Cet algorithme est utilisé par exemple pour l'évaluation des intégrales impropres lorsque les dérivées de la fonction sont accessibles, ou à l'élaboration de séries asymptotiques pour certaines fonctions.
La dérivée des termes apparaissant dans la formule peuvent se ramener aux dérivées de la fonction de base f(t) par calcul formel, où en utilisant les relations des déterminants de Henkel:
avec
et
On trouve, en explicitant les premières expressions:
ε-algorithme dépendant d'une suite auxiliaire
Il arrive fréquemment que la suite à accélérer Sn dépende d'une suite auxiliaire xn, celle-ci tendant vers l'infini (par exemple des approximations par discrétisation avec un maillage de plus en plus fin). Il est possible d'utiliser l'ε-algorithme de base dans ces cas mais la façon dont évolue la suite xn associée (par exemple l'évolution du nombre de mailles entre chaque Sn) est un renseignement précieux qui pourrait aider l'accélération de la convergence. Deux variantes de l'ε-algorithme utilise cet information supplémentaire et donne souvent de meilleurs résultats.
Et la deuxième variante:
Ces algorithmes s'apparentent aux méthodes par extrapolation (extrapolation de Richardson ou ρ-algorithme). Ils peuvent accélérer des suites particulièrement récalcitrantes avec d'autres algorithmes.
ε-algorithme d'interpolation
L'ε-algorithme classique permet de calculer la table de Padé d'une fonction lorsque les termes de la suite Sn sont les sommes partielles du développement limité de cette fonction. Par analogie, il est possible aussi de construire la table des fractions rationnelles d'interpolation d'une fonction en partant de la suite des polynômes d'interpolation.
Pn(x) étant le polynôme d'interpolation passant par les points (x0,y0),(x1,y1),...,(xn,yn), que l'on pourra calculer par la méthode de Lagrange, de de Newton où de Neville, par exemple. Rn,k(x)est la fraction rationnelle de degré n au numérateur et k au dénominateur passant par les points (x0,y0),(x1,y1),...,(xn+k,yn+k)
Cet algorithme peut se présenter comme un complément aux méthodes de Thiele ou Bulirsch-Stoer, avec la particularité que l'ε-algorithme permet de calculer tout le tableau des fractions rationnelles d'interpolation au lieu d'une seule diagonale, ou un escalier. De plus, si le polynôme utilisé est un polynôme d'interpolation d'Hermite (imposant d'interpoler la fonction, mais aussi sa ou ses dérivées), l'ε-algorithme d'interpolation fournira les fraction rationnelle d'interpolation vérifiant les mêmes critères que le polynôme d'Hermite. La méthode d'interpolation de Newton avec confluence des abscisses (pour les points où les dérivées sont à renseigner) est toute indiquée pour calculer le polynôme d'Hermite, d'autant que la suite des abscisses utilisée (avec les confluences) sera nécessaire pour l'ε-algorithme d'interpolation.
Règles particulières
Il peut arriver lors du calcul du tableau de l'ε-algorithme, qu'à certains endroits se produisent des divisions par 0 où presque. Ceci peut générer des dégradations de précision pour le calcul des zones du tableau dépendant de la case suspecte, voir des plantage de programme. Plusieurs auteurs ont développés des algorithmes spéciaux[2] pour contourner les cases problématiques en cas de détection de risque de division par 0. Ces algorithmes ne fonctionnent que si les cases singulières ne sont pas trop proches les unes des autres.
Exemples
Voir aussi les exemples de la transformée de Shanks.
- accélération de la convergence d'une suite
La méthode de Bernoulli permet, sous certaines conditions, d'évaluer la plus grande (ou la plus petite) racine d'un polynôme donné. Mais la suite générée par la méthode peut converger lentement vers la valeur de la racine: l'ε-algorithme permet d'accélérer cette convergence. Par exemple, avec le polynôme x²-x-1 dont les racines sont le nombre d'or φ et 1/φ, la suite générée par la méthode de Bernoulli donne la suite de Fibonacci Fn dont le ratio des termes successifs converge vers φ=1,6180339887499...
Dans cet exemple, seuls les termes d'indice haut positif ont été calculés.
Nous constatons dans cette exemple qu'effectivement seules les colonnes paires convergent vers la suite d'origine, et ceci plus rapidement (12 chiffres exacts au lieu de 3 dans la suite initiale).
Il est à noter que l'ε-algorithme possède une propriété particulière vis-à-vis de la méthode de Bernoulli qui permet de l'utiliser aussi dans un autre but que l'accélération de la convergence: le calcul simultané de toutes les racines du polynôme au lieu d'une seule à la fois.
Soit le polynôme:
P(x) = a0 + a1.x + a2.x2 + ... + ap.xp
dont les racines λk sont réelles, telles que |λ1|> |λ2|>...>|λp|
la méthode de Bernoulli génère la suite yn définie par:
dont le rapport des termes consécutifs yn+1/yn converge vers λ1.
La suite est initialisée avec y0, y1...yp-1 arbitraires, non tous nuls.
en appliquant l'ε-algorithme , non pas sur le ratio yn+1/yn, mais directement sur la suite des yn, on a:
et
On constate dans ce cas que les colonnes impaires s'avèrent aussi intéressantes.
la vitesse de convergence, pour k fixé est:
On peut donc utiliser à nouveau l'ε-algorithme, mais cette fois pour accélérer la convergence de chacun de ces ratio, comme on l'a fait pour la suite yn+1/yn.
- Résolution d'un système d'équation non linaire
L'une des utilisation de l'ε-algorithme est de fournir une généralisation de la méthode d'Aitken-Steffensen pour des systèmes d'équations non linéaires.
La méthode consiste à réécrire le système d'équation F(X)=0 en un système de la forme X=G(X) (X, F et G étant des vecteurs représentant les inconnues ou le système d'équations). En partant d'un vecteur X0 arbitraire (de préférence proche de la solution du système) générer la suite de vecteurs Xk de la manière suivante:
- U0 = Xk k = 0,1...
- Un + 1 = G(Un) n = 0,1...2p
- calculer l'ε-algorithme de cette suite de vecteurs Un
-
p étant le nombre d'équations du système.
La suite des Xk générés par cette méthode est à convergence quadratique.
Plusieurs choix pour G étant possibles, il est préférable, bien que non nécessaire, de choisir G de telle sorte que la suite généré Un+1=G(Un) converge vers la solution du système.
L'ε-algorithme vectoriel parait le plus adapté à cet algorithme, mais l'ε-algorithme scalaire appliqué à chacune des composantes du vecteur fonctionne aussi.
- Fraction rationnelle d'interpolation
- Variante des méthodes utilisant l'extrapolation de Richardson
Plusieurs méthodes numériques utilisent l'extrapolation de Richardson pour accélérer la convergence de méthodes d'ordre peu élevé. On trouve par exemple son utilisation dans:
- l'évaluation de la dérivée d'une fonction, par accélération de la convergence de la méthode des différences centrales
- l'intégration numérique, en accélérant la méthode des trapèzes (méthode de Romberg) ou la méthode du point médian
- l'intégration des équation différentielles, en accélérant la méthode du point milieu (méthode de Gragg-Bulirsch-Stoer)
Dans chacune de ces applications, il est possible de remplacer l'extrapolation de Richardson par l'ε-algorithme ou ses généralisations. La suite associée xn devant tendre vers l'infini dans le cas des généralisation de l'ε-algorithme, on prendra l'inverse de la suite associée à l'extrapolation de Richardson. Cependant l'extrapolation de Richardson étant particulièrement bien adaptée à accélérer les suites générées par ces méthodes, l'ε-algorithme en général est moins performant. Dans certains cas, par exemple le calcul numérique d'une intégrale impropre, l'extrapolation de Richardson échoue à accélérer la convergence, et l'ε-algorithme devient alors la méthode de choix.
Notes
- P. Wynn, On a device for computing the em(Sn) transformation, MTAC, 10(1956), p91-96
- Wynn Peter, « Singular rules for certain non-linear algorithms », dans BIT, vol. 3, 1963, p. 175–195 [texte intégral, lien DOI]
Références
- Claude Brezinski, Algorithmes d'accélération de la convergence: étude numérique, éditions Technip, 1978, (ISBN 2-7108-0341-0)
Voir aussi
Articles connexes
Wikimedia Foundation. 2010.