Articulo de referencia

Algoritmo de Clenshaw

En análisis numérico , el algoritmo de Clenshaw , también llamado suma de Clenshaw , es un método recursivo para evaluar una combinación lineal de polinomios de Chebyshev . [ 1 ...

En análisis numérico , el algoritmo de Clenshaw , también llamado suma de Clenshaw , es un método recursivo para evaluar una combinación lineal de polinomios de Chebyshev . [ 1 ] [ 2 ] El método fue publicado por Charles William Clenshaw en 1955. Es una generalización del método de Horner para evaluar una combinación lineal de monomios .

Se generaliza a más que solo polinomios de Chebyshev; se aplica a cualquier clase de funciones que se puedan definir mediante una relación de recurrencia de tres términos . [ 3 ]

Algoritmo de Clenshaw

En su máxima generalidad, el algoritmo de Clenshaw calcula la suma ponderada de una serie finita de funciones.ϕk(incógnita){\displaystyle \phi _{k}(x)}: S(incógnita)=k=0norteakϕk(incógnita){\displaystyle S(x)=\sum _{k=0}^{n}a_{k}\phi _{k}(x)} dóndeϕk,k=0,1,{\displaystyle \phi _{k},\;k=0,1,\ldots }es una secuencia de funciones que satisfacen la relación de recurrencia lineal ϕk+1(incógnita)=αk(incógnita)ϕk(incógnita)+βk(incógnita)ϕk1(incógnita),{\displaystyle \phi _{k+1}(x)=\alpha _{k}(x)\,\phi _{k}(x)+\beta _{k}(x)\,\phi _{k-1}(x),} donde los coeficientesαk(incógnita){\displaystyle \alpha _{k}(x)}yβk(incógnita){\displaystyle \beta _{k}(x)}se conocen de antemano.

El algoritmo es más útil cuandoϕk(incógnita){\displaystyle \phi _{k}(x)}son funciones que son complicadas de calcular directamente, peroαk(incógnita){\displaystyle \alpha _{k}(x)}yβk(incógnita){\displaystyle \beta _{k}(x)}son particularmente simples. En las aplicaciones más comunes,α(incógnita){\displaystyle \alpha (x)}no depende dek{\displaystyle k}, yβ{\displaystyle \beta }es una constante que no depende de ninguna de las dosincógnita{\displaystyle x}nik{\displaystyle k}.

Para realizar la suma para una serie de coeficientes dadaa0,,anorte{\displaystyle a_{0},\ldots ,a_{n}}, calcular los valoresbk(incógnita){\displaystyle b_{k}(x)}mediante la fórmula de recurrencia "inversa": bnorte+1(incógnita)=bnorte+2(incógnita)=0,bk(incógnita)=ak+αk(incógnita)bk+1(incógnita)+βk+1(incógnita)bk+2(incógnita).{\displaystyle {\begin{aligned}b_{n+1}(x)&=b_{n+2}(x)=0,\\b_{k}(x)&=a_{k}+\alpha _{k}(x)\,b_{k+1}(x)+\beta _{k+1}(x)\,b_{k+2}(x).\end{aligned}}}

Tenga en cuenta que este cálculo no hace referencia directa a las funciones.ϕk(incógnita){\displaystyle \phi _{k}(x)}Después de calcularb2(incógnita){\displaystyle b_{2}(x)}yb1(incógnita){\displaystyle b_{1}(x)}La suma deseada puede expresarse en términos de ellas y de las funciones más simples.ϕ0(incógnita){\displaystyle \phi _{0}(x)}yϕ1(incógnita){\displaystyle \phi _{1}(x)}: S(incógnita)=ϕ0(incógnita)a0+ϕ1(incógnita)b1(incógnita)+β1(incógnita)ϕ0(incógnita)b2(incógnita).{\displaystyle S(x)=\phi _{0}(x)\,a_{0}+\phi _{1}(x)\,b_{1}(x)+\beta _{1}(x)\,\phi _{0}(x)\,b_{2}(x).}

Consulte Fox y Parker [ 4 ] para obtener más información y análisis de estabilidad.

Ejemplos

Horner como un caso especial de Clenshaw

Un caso particularmente sencillo se presenta al evaluar un polinomio de la forma S(incógnita)=k=0norteakincógnitak.{\displaystyle S(x)=\sum _{k=0}^{n}a_{k}x^{k}.} Las funciones son simplemente ϕ0(incógnita)=1,ϕk(incógnita)=incógnitak=incógnitaϕk1(incógnita){\displaystyle {\begin{aligned}\phi _{0}(x)&=1,\\\phi _{k}(x)&=x^{k}=x\phi _{k-1}(x)\end{aligned}}} y son producidos por los coeficientes de recurrenciaα(incógnita)=incógnita{\displaystyle \alpha (x)=x}yβ=0{\displaystyle \beta =0}.

En este caso, la fórmula de recurrencia para calcular la suma es bk(incógnita)=ak+incógnitabk+1(incógnita){\displaystyle b_{k}(x)=a_{k}+xb_{k+1}(x)} y, en este caso, la suma es simplemente S(incógnita)=a0+incógnitab1(incógnita)=b0(incógnita),{\displaystyle S(x)=a_{0}+xb_{1}(x)=b_{0}(x),} que es exactamente el método habitual de Horner .

Caso especial para la serie de Chebyshev

Consideremos una serie de Chebyshev truncada.pagnorte(incógnita)=a0+a1T1(incógnita)+a2T2(incógnita)++anorteTnorte(incógnita).{\displaystyle p_{n}(x)=a_{0}+a_{1}T_{1}(x)+a_{2}T_{2}(x)+\cdots +a_{n}T_{n}(x).}

Los coeficientes en la relación de recurrencia para los polinomios de Chebyshev son α(incógnita)=2incógnita,β=1,{\displaystyle \alpha (x)=2x,\quad \beta =-1,} con las condiciones iniciales T0(incógnita)=1,T1(incógnita)=incógnita.{\displaystyle T_{0}(x)=1,\quad T_{1}(x)=x.}

Por lo tanto, la recurrencia es bk(incógnita)=ak+2incógnitabk+1(incógnita)bk+2(incógnita){\displaystyle b_{k}(x)=a_{k}+2xb_{k+1}(x)-b_{k+2}(x)} y los resultados finales son b0(incógnita)=a0+2incógnitab1(incógnita)b2(incógnita),{\displaystyle b_{0}(x)=a_{0}+2xb_{1}(x)-b_{2}(x),}pagnorte(incógnita)=12[a0+b0(incógnita)b2(incógnita)].{\displaystyle p_{n}(x)={\tfrac {1}{2}}\left[a_{0}+b_{0}(x)-b_{2}(x)\right].}

Una expresión equivalente para la suma viene dada por pagnorte(incógnita)=a0+incógnitab1(incógnita)b2(incógnita).{\displaystyle p_{n}(x)=a_{0}+xb_{1}(x)-b_{2}(x).}

Longitud del arco meridiano en el elipsoide

La suma de Clenshaw se utiliza ampliamente en aplicaciones geodésicas . [ 2 ] Una aplicación simple es sumar las series trigonométricas para calcular la distancia del arco meridiano en la superficie de un elipsoide. Estas tienen la forma metro(θ)=do0θ+do1pecadoθ+do2pecado2θ++donortepecadonorteθ.{\displaystyle m(\theta )=C_{0}\,\theta +C_{1}\sin \theta +C_{2}\sin 2\theta +\cdots +C_{n}\sin n\theta .}

Dejando de lado el inicialdo0θ{\displaystyle C_{0}\,\theta }término, el resto es una suma de la forma apropiada. No hay término principal porqueϕ0(θ)=pecado0θ=pecado0=0{\displaystyle \phi _{0}(\theta )=\sin 0\theta =\sin 0=0}.

La relación de recurrencia parapecadokθ{\displaystyle \sin k\theta }es pecado(k+1)θ=2porqueθpecadokθpecado(k1)θ,{\displaystyle \sin(k+1)\theta =2\cos \theta \sin k\theta -\sin(k-1)\theta ,} haciendo los coeficientes en la relación de recursión αk(θ)=2porqueθ,βk=1.{\displaystyle \alpha _{k}(\theta )=2\cos \theta ,\quad \beta _{k}=-1.} y la evaluación de la serie viene dada por bnorte+1(θ)=bnorte+2(θ)=0,bk(θ)=dok+2porqueθbk+1(θ)bk+2(θ),For nortek1.{\displaystyle {\begin{aligned}b_{n+1}(\theta )&=b_{n+2}(\theta )=0,\\b_{k}(\theta )&=C_{k}+2\cos \theta \,b_{k+1}(\theta )-b_{k+2}(\theta ),\quad \mathrm {for\ } n\geq k\geq 1.\end{aligned}}} El paso final se simplifica particularmente porqueϕ0(θ)=pecado0=0{\displaystyle \phi _{0}(\theta )=\sin 0=0}, por lo que el final de la recurrencia es simplementeb1(θ)pecado(θ){\displaystyle b_{1}(\theta )\sin(\theta )}; eldo0θ{\displaystyle C_{0}\,\theta }El término se añade por separado: metro(θ)=do0θ+b1(θ)pecadoθ.{\displaystyle m(\theta )=C_{0}\,\theta +b_{1}(\theta )\sin \theta .}

Nótese que el algoritmo solo requiere la evaluación de dos cantidades trigonométricas.porqueθ{\displaystyle \cos \theta }ypecadoθ{\displaystyle \sin \theta }.

Diferencia en las longitudes de los arcos meridianos

A veces es necesario calcular la diferencia de dos arcos meridianos de forma que se mantenga una alta precisión relativa. Esto se logra utilizando identidades trigonométricas para escribir metro(θ1)metro(θ2)=do0(θ1θ2)+k=1norte2dokpecado(12k(θ1θ2))porque(12k(θ1+θ2)).{\displaystyle m(\theta _{1})-m(\theta _{2})=C_{0}(\theta _{1}-\theta _{2})+\sum _{k=1}^{n}2C_{k}\sin {\bigl (}{\textstyle {\frac {1}{2}}}k(\theta _{1}-\theta _{2}){\bigr )}\cos {\bigl (}{\textstyle {\frac {1}{2}}}k(\theta _{1}+\theta _{2}){\bigr )}.} La suma de Clenshaw se puede aplicar en este caso [ 5 ] siempre que calculemos simultáneamentemetro(θ1)+metro(θ2){\displaystyle m(\theta _{1})+m(\theta _{2})} y realizar una suma de matrices, METRO(θ1,θ2)=[(metro(θ1)+metro(θ2))/2(metro(θ1)metro(θ2))/(θ1θ2)]=do0[μ1]+k=1nortedokFk(θ1,θ2),{\displaystyle {\mathsf {M}}(\theta _{1},\theta _{2})={\begin{bmatrix}(m(\theta _{1})+m(\theta _{2}))/2\\(m(\theta _{1})-m(\theta _{2}))/(\theta _{1}-\theta _{2})\end{bmatrix}}=C_{0}{\begin{bmatrix}\mu \\1\end{bmatrix}}+\sum _{k=1}^{n}C_{k}{\mathsf {F}}_{k}(\theta _{1},\theta _{2}),} dónde δ=12(θ1θ2),μ=12(θ1+θ2),Fk(θ1,θ2)=[porquekδpecadokμpecadokδδporquekμ].{\displaystyle {\begin{aligned}\delta &={\tfrac {1}{2}}(\theta _{1}-\theta _{2}),\\[1ex]\mu &={\tfrac {1}{2}}(\theta _{1}+\theta _{2}),\\[1ex]{\mathsf {F}}_{k}(\theta _{1},\theta _{2})&={\begin{bmatrix}\cos k\delta \sin k\mu \\{\dfrac {\sin k\delta }{\delta }}\cos k\mu \end{bmatrix}}.\end{aligned}}} El primer elemento deMETRO(θ1,θ2){\displaystyle {\mathsf {M}}(\theta _{1},\theta _{2})}es el valor promedio demetro{\displaystyle m}y el segundo elemento es la pendiente media. Fk(θ1,θ2){\displaystyle {\mathsf {F}}_{k}(\theta _{1},\theta _{2})}satisface la relación de recurrencia Fk+1(θ1,θ2)=A(θ1,θ2)Fk(θ1,θ2)Fk1(θ1,θ2),{\displaystyle {\mathsf {F}}_{k+1}(\theta _{1},\theta _{2})={\mathsf {A}}(\theta _{1},\theta _{2}){\mathsf {F}}_{k}(\theta _{1},\theta _{2})-{\mathsf {F}}_{k-1}(\theta _{1},\theta _{2}),} dónde A(θ1,θ2)=2[porqueδporqueμδpecadoδpecadoμpecadoδδpecadoμporqueδporqueμ]{\displaystyle {\mathsf {A}}(\theta _{1},\theta _{2})=2{\begin{bmatrix}\cos \delta \cos \mu &-\delta \sin \delta \sin \mu \\-\displaystyle {\frac {\sin \delta }{\delta }}\sin \mu &\cos \delta \cos \mu \end{bmatrix}}} toma el lugar deα{\displaystyle \alpha }en la relación de recurrencia, yβ=1{\displaystyle \beta =-1}. El algoritmo estándar de Clenshaw ahora se puede aplicar para producir Bnorte+1=Bnorte+2=0,Bk=dokI+ABk+1Bk+2,For nortek1,METRO(θ1,θ2)=do0[μ1]+B1F1(θ1,θ2),{\displaystyle {\begin{aligned}{\mathsf {B}}_{n+1}&={\mathsf {B}}_{n+2}={\mathsf {0}},\\[1ex]{\mathsf {B}}_{k}&=C_{k}{\mathsf {I}}+{\mathsf {A}}{\mathsf {B}}_{k+1}-{\mathsf {B}}_{k+2},\qquad \mathrm {for\ } n\geq k\geq 1,\\[1ex]{\mathsf {M}}(\theta _{1},\theta _{2})&=C_{0}{\begin{bmatrix}\mu \\1\end{bmatrix}}+{\mathsf {B}}_{1}{\mathsf {F}}_{1}(\theta _{1},\theta _{2}),\end{aligned}}} dóndeBk{\displaystyle {\mathsf {B}}_{k}}son matrices de 2×2. Finalmente tenemos metro(θ1)metro(θ2)θ1θ2=METRO2(θ1,θ2).{\displaystyle {\frac {m(\theta _{1})-m(\theta _{2})}{\theta _{1}-\theta _{2}}}={\mathsf {M}}_{2}(\theta _{1},\theta _{2}).} Esta técnica puede utilizarse en el límiteθ2=θ1=μ{\displaystyle \theta _{2}=\theta _{1}=\mu }yδ=0{\displaystyle \delta =0}calcular simultáneamente metro(μ){\displaystyle m(\mu )}y el derivadodmetro(μ)/dμ{\displaystyle dm(\mu )/d\mu }, siempre que, al evaluarF1{\displaystyle {\mathsf {F}}_{1}}yA{\displaystyle {\mathsf {A}}}, tomamoslímiteδ0(pecadokδ)/δ=k{\displaystyle \lim _{\delta \to 0}(\sin k\delta )/\delta =k}.

Véase también

Referencias

  1. Clenshaw, CW (julio de 1955). "Una nota sobre la suma de series de Chebyshev" . Tablas matemáticas y otras ayudas para el cálculo . 9 (51): 118. doi : 10.1090/S0025-5718-1955-0071856-0 . ISSN 0025-5718 .  Nótese que este artículo está escrito en términos de los polinomios de Chebyshev desplazados de primera clase.Tnorte(incógnita)=Tnorte(2incógnita1){\displaystyle T_{n}^{*}(x)=T_{n}(2x-1)}.
  2. 1 2 Tscherning, CC; Poder, K. (1982), "Algunas aplicaciones geodésicas de la suma de Clenshaw" (PDF) , Bolletino di Geodesia e Scienze Affini , 41 (4): 349–375 , archivado del original (PDF) el 12 de junio de 2007 , recuperado el 2 de agosto de 2012
  3. Press, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP (2007), "Sección 5.4.2. Fórmula de recurrencia de Clenshaw" , Numerical Recipes: The Art of Scientific Computing (3.ª ed.), Nueva York: Cambridge University Press, ISBN  978-0-521-88068-8
  4. Fox, Leslie; Parker, Ian B. (1968), Polinomios de Chebyshev en análisis numérico , Oxford University Press, ISBN 0-19-859614-6
  5. Karney, CFF (2024). "El área de polígonos de rumbo" . Stud. Geophys. Geod . 68 ( 3–4 ): 99–120 . arXiv : 2303.03219 . doi : 10.1007/s11200-024-0709-z Apéndice B{{cite journal}}: CS1 mantenimiento: postscript ( enlace )