Algorithme de Clenshaw

En analyse numérique, l’algorithme de Clenshaw[1] est une méthode récursive permettant d'évaluer un polynôme comme combinaision linéaire des polynômes de Tchebychev. Elle peut se voir comme une généralisation de la méthode de Horner qui évalue une combinaison linéaire de monômes.

Cette méthode peut être étendue aux classes de fonctions définies par une relation de récurrence d'ordre 2[2].

Algorithme

Soit ϕ k , k = 0 , 1 , {\displaystyle \phi _{k},\;k=0,1,\ldots } une suite de fonctions vérifiant la relation de récurrence d'ordre 2

ϕ k + 1 ( x ) = α k ( x ) ϕ k ( x ) + β k ( x ) ϕ k 1 ( x ) , {\displaystyle \phi _{k+1}(x)=\alpha _{k}(x)\,\phi _{k}(x)+\beta _{k}(x)\,\phi _{k-1}(x),}

où les coefficients α k {\displaystyle \alpha _{k}} et β k {\displaystyle \beta _{k}} sont connus. On remarquera que dans la plupart des cas, α ( x ) {\displaystyle \alpha (x)} est indépendant de k, et β {\displaystyle \beta } est une constante ne dépendant ni de x ni de k.

L'objectif est donc de calculer la somme

S ( x ) = k = 0 n a k ϕ k ( x ) {\displaystyle S(x)=\sum _{k=0}^{n}a_{k}\phi _{k}(x)}

À partir des coefficients a 0 , , a n {\displaystyle a_{0},\ldots ,a_{n}} , on calcule les valeurs b k ( x ) {\displaystyle b_{k}(x)} par la formule de récurrence inverse :

b n + 1 ( x ) = b n + 2 ( x ) = 0 , b k ( x ) = a k + α k ( x ) b k + 1 ( x ) + β k + 1 ( x ) b k + 2 ( x ) . {\displaystyle {\begin{aligned}b_{n+1}(x)&=b_{n+2}(x)=0,\\[.5em]b_{k}(x)&=a_{k}+\alpha _{k}(x)\,b_{k+1}(x)+\beta _{k+1}(x)\,b_{k+2}(x).\end{aligned}}}

La combinaision linéaire des ϕ k {\displaystyle \phi _{k}} vérifie :

S ( x ) = ϕ 0 ( x ) a 0 + ϕ 1 ( x ) b 1 ( x ) + β 1 ( x ) ϕ 0 ( x ) b 2 ( x ) . {\displaystyle S(x)=\phi _{0}(x)a_{0}+\phi _{1}(x)b_{1}(x)+\beta _{1}(x)\phi _{0}(x)b_{2}(x).}

Fox et Parker ont étudié le comportement et la stabilité de ce type d'algorithme[3].

La méthode de Horner vue comme celle de Clenshaw

Un cas simple de l'algorithme apparait en considérant un polynôme de la forme

S ( x ) = k = 0 n a k x k {\displaystyle S(x)=\sum _{k=0}^{n}a_{k}x^{k}} .

On obtient alors

ϕ 0 ( x ) = 1 , ϕ k ( x ) = x k = x ϕ k 1 ( x ) {\displaystyle {\begin{aligned}\phi _{0}(x)&=1,\\\phi _{k}(x)&=x^{k}=x\phi _{k-1}(x)\end{aligned}}}

et les coefficients deviennent alors α ( x ) = x {\displaystyle \alpha (x)=x} et β = 0 {\displaystyle \beta =0} .

Ainsi, la formule de récurrence pour calculer la somme est

b k ( x ) = a k + x b k + 1 ( x ) {\displaystyle b_{k}(x)=a_{k}+xb_{k+1}(x)}

et ici, le résultat est

S ( x ) = a 0 + x b 1 ( x ) = b 0 ( x ) {\displaystyle S(x)=a_{0}+xb_{1}(x)=b_{0}(x)} ,

ce qui permet de retrouver le résultat de la méthode de Horner.

Cas particulier des séries de Tchebychev

Soit une série de Tchebychev tronquée

p n ( x ) = a 0 + a 1 T 1 ( x ) + a 2 T 2 ( x ) + + a n T n ( x ) . {\displaystyle p_{n}(x)=a_{0}+a_{1}T_{1}(x)+a_{2}T_{2}(x)+\cdots +a_{n}T_{n}(x).}

Les coefficients de la relation de récurrence dans les polynômes de Tchebychev sont

α ( x ) = 2 x , β = 1 , {\displaystyle \alpha (x)=2x,\quad \beta =-1,}

avec les conditions initiales

T 0 ( x ) = 1 , T 1 ( x ) = x . {\displaystyle T_{0}(x)=1,\quad T_{1}(x)=x.}

La formule de récurrence devient alors

b k ( x ) = a k + 2 x b k + 1 ( x ) b k + 2 ( x ) {\displaystyle b_{k}(x)=a_{k}+2xb_{k+1}(x)-b_{k+2}(x)}

et la somme finale devient

p n ( x ) = a 0 + x b 1 ( x ) b 2 ( x ) . {\displaystyle p_{n}(x)=a_{0}+xb_{1}(x)-b_{2}(x).}

Un moyen d'évaluer ce polynôme est de calculer la récurrence à un pas supplémentaire, en posant

b 0 ( x ) = 2 a 0 + 2 x b 1 ( x ) b 2 ( x ) , {\displaystyle b_{0}(x)=2a_{0}+2xb_{1}(x)-b_{2}(x),}

(avec un coefficient a0 double) puis

p n ( x ) = b 0 ( x ) x b 1 ( x ) a 0 = 1 2 [ b 0 ( x ) b 2 ( x ) ] . {\displaystyle p_{n}(x)=b_{0}(x)-xb_{1}(x)-a_{0}={\frac {1}{2}}\left[b_{0}(x)-b_{2}(x)\right].}

Applications géodésiques

L'algorithme de Clenshaw est beaucoup utilisé dans les applications géodésiques, où on parle plutôt de sommation de Clenshaw[4]. Une simple application est de sommer les séries trigonométriques pour calculer un arc de méridien. Ces sommes s'écrivent sous la forme

m ( θ ) = C 0 θ + C 1 sin θ + C 2 sin 2 θ + + C n sin n θ . {\displaystyle m(\theta )=C_{0}\,\theta +C_{1}\sin \theta +C_{2}\sin 2\theta +\cdots +C_{n}\sin n\theta .}

Mis à part le premier terme C 0 θ {\displaystyle C_{0}\,\theta } , le reste peut se voir comme une somme de la forme voulue. Le terme initial dans une telle somme disparait car ϕ 0 ( θ ) = sin 0 θ = sin 0 = 0 {\displaystyle \phi _{0}(\theta )=\sin 0\theta =\sin 0=0} .

En utilisant les relations de trigonométrie, on trouve la relation de récurrence nécessaire :

sin k θ = 2 cos θ sin ( k 1 ) θ sin ( k 2 ) θ , {\displaystyle \sin k\theta =2\cos \theta \sin(k-1)\theta -\sin(k-2)\theta ,}

avec les coefficients correspondants

α k ( θ ) = 2 cos θ , β k = 1. {\displaystyle \alpha _{k}(\theta )=2\cos \theta ,\quad \beta _{k}=-1.}

et l'évaluation de la série est donnée par

b n + 1 ( θ ) = b n + 2 ( θ ) = 0 , b k ( θ ) = C k + 2 b k + 1 ( θ ) cos θ b k + 2 ( θ ) ( n k 1 ) . {\displaystyle {\begin{aligned}b_{n+1}(\theta )&=b_{n+2}(\theta )=0,\\[.3em]b_{k}(\theta )&=C_{k}+2b_{k+1}(\theta )\cos \theta -b_{k+2}(\theta )\quad (n\geq k\geq 1).\end{aligned}}}

La dernière étape est simplifiée du fait que ϕ 0 ( θ ) = sin 0 = 0 {\displaystyle \phi _{0}(\theta )=\sin 0=0} , ce qui donne b 1 ( θ ) sin ( θ ) {\displaystyle b_{1}(\theta )\sin(\theta )}  ; reste le terme C 0 θ {\displaystyle C_{0}\,\theta } traité séparément :

m ( θ ) = C 0 θ + b 1 ( θ ) sin θ . {\displaystyle m(\theta )=C_{0}\,\theta +b_{1}(\theta )\sin \theta .}

L'algorithme ne nécessite ainsi que le calcul de cos θ {\displaystyle \cos \theta } et sin θ {\displaystyle \sin \theta } .

Voir aussi

Références

  • (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Clenshaw algorithm » (voir la liste des auteurs).
  1. DOI 10.1090/S0025-5718-1955-0071856-0 Dans ce papier, on utilise la forme étendue des polynômes de Tchebychev de première espèce T n ( x ) = T n ( 2 x 1 ) {\displaystyle T_{n}^{*}(x)=T_{n}(2x-1)} .
  2. (en) WH Press, SA Teukolsky, WT Vetterling et BP Flannery, Numerical Recipes : The Art of Scientific Computing, New York, Cambridge University Press, , 3e éd., 1235 p. (ISBN 978-0-521-88068-8, lire en ligne), chap. 5.4.2 (« Clenshaw's Recurrence Formula »)
  3. L. Fox et I. B. Parker, « Chebyshev Polynomials in Numerical Analysis », Oxford mathematical handbooks, Oxford University Press,‎ (ISBN 0-19-859614-6)
  4. C. C. Tscherning et K. Poder, « Some Geodetic applications of Clenshaw Summation », Bolletino di Geodesia e Scienze Affini, vol. 41, no 4,‎ , p. 349–375 (lire en ligne)
  • icône décorative Portail de l'analyse