AccueilđŸ‡«đŸ‡·Chercher

Epsilon algorithme

En analyse numérique, l'Δ-algorithme est un algorithme non linéaire d'accélération de la convergence de suites numériques. Cet 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 les plus utilisés. C'est une généralisation de l'algorithme Delta-2 d'Aitken.

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 pair du tableau fournissent d'autres suites convergeant en gĂ©nĂ©ral plus vite que la suite Sn d'origine. Les colonnes d'indice impair peuvent ĂȘtre considĂ©rĂ©es 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ées : 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 transformée 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 Ă  deux 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 ĂȘtre utilisĂ©es 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. Il 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ées, dans ce cas l'inverse apparaissant dans l'algorithme est tout simplement celui d'une matrice carrée 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+nh à 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 utilisent cette information supplémentaire et donnent 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 Ă  convergence logarithmique, que l'Δ-algorithme classique n'accĂ©lĂšre pas.

Δ-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. Un variante[2] permet de construire la table des fractions rationnelles d'interpolation d'une fonction en partant de la suite des polynÎmes d'interpolation.

Le polynĂŽme Pn(x) Ă©tant la valeur en x du 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 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 ou 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 plantages de programme. Plusieurs auteurs ont développé des algorithmes spéciaux[3] 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 x2 – 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 cet 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 :

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 :

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 ratios, comme on l'a fait pour la suite yn+1/yn.

Résolution d'un systÚme d'équation non linéaire

L'une des utilisations 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), on génÚre la suite de vecteurs Xk de la maniÚre suivante :

  • calculer l'Δ-algorithme de cette suite de vecteurs Un

avec 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ée 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

Exemple: interpolation polynomiale de la fonction logarithme népérien et calcul des fraction rationnelles correspondantes à l'aide de l'Δ-algorithme d'interpolation

La fonction logarithme sera interpolĂ©e en trois points: 1/2, 1 et e. Pour tester la mise en Ɠuvre de l'algorithme dans le cas d'une interpolation d'Hermite, l'interpolation en 1/2 sera double (interpolation du logarithme et de sa dĂ©rivĂ©e), et triple en 1 (interpolation du logarithme, et de ses dĂ©rivĂ©es premiĂšres et secondes). Il s'agit d'un polynĂŽme de degrĂ© 5 qui doit donc vĂ©rifier :

Tableau des différences divisées pour l'interpolation polynomiale de ln(x) en 3 points
i xi yi / d0 d1 d2 d3 d4 d5
0 2,71828182845904 1 0,581976706869326 -0,243279819530861 0,149405165216329 -0,178413885100506 0,24817470934455
1 1 0 1 -0,5 0,545177444479562 -0,728935333122626
2 1 0 1 -0,772588722239781 0,909645111040875
3 1 0 1,38629436111989 -1,22741127776022
4 0.5 -0,693147180559945 2
5 0.5 -0,693147180559945

Les cases en italiques correspondent à des indéterminées des différences divisées (du fait des points doubles ou triples), et sont remplacés par les valeurs de la dérivée en ce point (ou de f"(x)/2! pour la différence seconde). Les cases en gras dans le tableau sont celles utiles au calcul de la forme de Newton du polynÎme d'interpolation. Le polynÎme s'écrit, à l'aide de la formule de Newton :

.
  • Calcul de P5(2), et application de l'Δ-algorithme d'interpolation.

La suite des Pi(2) servant à initialiser le tableau de l'Δ-algorithme d'interpolation, est la suite de polynÎmes de degré 0, 1, 2... obtenue en retenant 1,2,3... termes du polynÎme P5(2) écrit sous la forme de Newton ci dessus. Cette suite de polynÎme passent respectivement par les points d'abscisse (x0,y0); (x0,y0),(x1,y1); (x0,y0),(x1,y1),(x2,y2); ...

Comparaison de l'interpolation polynomiale et rationnelle par l'Δ-algorithme d'interpolation
Interpolation polynomiale de ln(2)=0,693147180559945..., et calcul de l'Δ-algorithme d'interpolation
i xi Δ(i)-1 Pi(x)= Δ(i)0 Δ(i)1 Δ(i)2 Δ(i)3 Δ(i)4
0 2,71828182845904 0 1 -2,39221119117733 0,705207033512282 -61,0702755830021 0,693879569827545
1 1 0 0,581976706869326 5,72267438319407 0,69023539353372 121,870014050176 0,692833802968095
2 1 0 0,756720180469139 -9,31836050756016 0,695317144633344 -146,585461084686
3 1 0 0,649405165216329 5,20217803449192 0,690925043467957
4 0.5 0 0,777556616828803 -2,49324571003365
5 0.5 0 0,51016754082086


La valeur de P5(2), pourtant situĂ©e dans l'intervalle d'interpolation, est assez Ă©loignĂ©e de ln(2), valeur de la fonction Ă  interpoler. Sur le graphique, on note une forte dĂ©gradation des qualitĂ©s d'interpolation du polynĂŽme entre 1.5 et e. La prĂ©sence d'un pĂŽle Ă  proximitĂ© de l'intervalle d'interpolation, ainsi que la croissance logarithmique de la courbe se prĂȘte mal Ă  l'interpolation par polynĂŽmes. Ceci se prĂȘte davantage Ă  l'interpolation rationnelle. L'application de l'Δ-algorithme d'interpolation Ă  ce polynĂŽme amĂ©liore significativement les qualitĂ©s d'interpolation sur cet exemple. Sur le graphique, certaines fractions rationnelles obtenues sont presque indiscernable de la fonction Ă  interpoler, dans l'intervalle d'interpolation, et au delĂ . Les nombres en gras dans la table de l'Δ-algorithme reprĂ©sente les fraction rationnelles d'interpolation de degrĂ© 5/0, 4/1 et 3/2. Elle peut ĂȘtre continuĂ©e pour intĂ©grer celles de degrĂ© 2/3, 1/4 et 0/5.

Accélération de la convergence des série de Fourier et de Tchebychev

Les sommes partielles des sĂ©ries de Fourier ou de Tchebychev peuvent fournir une suite qui peut ĂȘtre accĂ©lĂ©rĂ©e par l'Δ-algorithme. Cependant, une maniĂšre plus efficace de procĂ©der est de transformer, par un changement de variable, ces sĂ©ries en une sĂ©rie entiĂšre. Les sommes partielles de ces sĂ©ries entiĂšres seront les donnĂ©s d'entrĂ©e pour l'Δ-algorithme.

La série de Fourier :

ou celle de Tchebychev:

se transforment chacune en une série entiÚre (d'une variable complexe)

ou

dont la partie réelle est la série d'origine. Les Tn(x) représentent les polynÎmes de Tchebychev de 1Úre espÚce.

Ces sĂ©ries se prĂȘtent idĂ©alement Ă  l'accĂ©lĂ©ration de la convergence par l'Δ-algorithme (avec des nombres complexes) sur leurs sommes partielles. La partie rĂ©elle du rĂ©sultat sera la valeur accĂ©lĂ©rĂ©e de la sĂ©rie de Fourier ou de Tchebychev d'origine.

Par exemple, la fonction Logarithme sur [1, 9], dont la série de Tchebychev vaut[4] :

devient aprÚs changement de variable la série entiÚre :

Le graphique ci contre compare la fonction Logarithme avec sa série de Tchebychev en retenant les termes jusqu'au degré 6, ainsi que la valeur accélérée de cette série partielle par l'Δ-algorithme. On note une nette amélioration de la convergence (erreur divisée par 80 ou plus). Le résultat accéléré conserve les caractéristiques typiques des approximations de Tchebychev: les oscillations d'amplitudes approximativement égales de l'erreur sur l'intervalle concerné (à peine perceptible sur le graphique).

Accélération de la convergence de série de Tchebychev de ln(x) par l Δ-algorithme

Formellement, l'Δ-algorithme transforme la série auxiliaire en approximant de Padé. En explicitant les calculs, l'approximant de Padé ici vaut:

dont la partie réelle, en revenant à la variable d'origine, vaut:

Cette fraction a les caractéristiques proches de la fraction min-max, optimale pour l'approximation: elle peut fournir un bon point de départ pour initialiser l'algorithme de Remez rationnel.


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 Ă©quations 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éralisations 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[5].

Par exemple, l'intégrale

possÚde une singularité algébrique en zéro, qui ralentit la convergence de la méthode de Romberg. L'utilisation de l'Δ-algorithme à la place de l'extrapolation de Richardson dans cette méthode donne de meilleurs résultats :

Méthode de Romberg et l'Δ-algorithme avec une intégrale impropre
subdivisions TrapÚzes Romberg Δ-algorithme
1 0,5 0,5 0,5
2 0,603553390593274 0,638071187457699 0,603553390593274
4 0,643283046242747 0,657756603281563 0,668014371343285
8 0,658130221624454 0,663607569112292 0,666989411481855
13 0,663581196877228 0,665592865129466 0,666661304912164
32 0,665558936278942 0,666287699033842 0,666666280204189
64 0,666270811378507 0,666532741199894 0,666666671581115

Notes et références

  1. (en) P. Wynn, « On a device for computing the em(Sn) transformation Â», MTAC, 10 (1956), p. 91-96.
  2. (en) Guido Claessens, Some aspects of the rational Hermite interpolation table and its applications : Ph. D. thesis, Université d'Anvers, .
  3. (en) Peter Wynn, « Singular rules for certain non-linear algorithms », BIT, vol. 3,‎ , p. 175–195 (DOI 10.1007/BF01939985, lire en ligne).
  4. Yudell Luke, « On the computation of Log Z and Arc tan Z », Mathematical Tables and Other Aids to Computation, vol. 11,‎ , p. 16-18
  5. David K. Kahaner, « An Numerical quadrature by the Δ-algorithm », Mathematics of computation, vol. 36,‎ , p. 689-693

Voir aussi

Bibliographie

Claude Brezinski, Algorithmes d'accélération de la convergence : étude numérique, éditions Technip, 1978, (ISBN 2-7108-0341-0)

Articles connexes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.