Clenshaw algorithm
From Wikipedia, the free encyclopedia
In numerical analysis, the Clenshaw algorithm[1] is a recursive method to evaluate a linear combination of Chebyshev polynomials. In general it applies to any class of functions that can be defined by a three-term recurrence relation.[2]
Contents |
[edit] Clenshaw algorithm
Suppose that
is a sequence of functions that satisfy the linear recurrence relation
where the coefficients αk and βk are known in advance. For any finite sequence
, define the functions bk by the "reverse" recurrence formula:
The linear combination of the φk satisfies:
See Fox and Parker[3] for more information and stability analyses.
[edit] Special case for Chebyshev series
Consider a truncated Chebyshev series
The coefficients in the recursion relation for the Chebyshev polynomials are
Therefore, using the identities
Clenshaw's algorithm reduces to:
[edit] References
- ^ C. W. Clenshaw, A note on the summation of Chebyshev series, Math. Tab. Wash. 9 (1955) pp 118--120.
- ^ Press, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP (2007), "Section 5.4.2. Clenshaw's Recurrence Formula", Numerical Recipes: The Art of Scientific Computing (3rd ed.), New York: Cambridge University Press, ISBN 978-0-521-88068-8, http://apps.nrbook.com/empanel/index.html?pg=222
- ^ L. Fox and I. B. Parker, Chebyshev Polynomials in Numerical Analysis, Oxford University Press (1968).
[edit] See also
- Horner scheme to evaluate polynomials in monomial form
- De Casteljau's algorithm to evaluate polynomials in Bézier form

![\begin{align}
b_{n+1}(x) &= b_{n+2}(x) = 0, \\[.5em]
b_{k}(x) &= c_k -\alpha_k(x)\,b_{k+1}(x) - \beta_{k+1}(x)\,b_{k+2}(x).
\end{align}](http://upload.wikimedia.org/wikipedia/en/math/e/6/f/e6f330087b9beeb953670619db4f79c4.png)
![\sum_{k=0}^n c_k \phi_k(x)
= b_0(x) \phi_0(x) + b_1(x)\left[\phi_1(x) + \alpha_0(x)\phi_0(x)\right].](http://upload.wikimedia.org/wikipedia/en/math/0/3/0/03092473c8e4734b24a07ed639b98ab6.png)


![\begin{align}
T_0(x) &= 1, \quad T_1(x) = xT_0(x),\\[.5em]
b_{0}(x) &= a_0 + 2xb_1(x) - b_2(x),
\end{align}](http://upload.wikimedia.org/wikipedia/en/math/8/1/a/81ad0eca003abea87c7cc43bab965f57.png)
![p_n(x) = \frac{1}{2}\left[a_0 + b_0(x) - b_2(x)\right].](http://upload.wikimedia.org/wikipedia/en/math/3/f/2/3f228e4c58f53a7c38caee632cf829d9.png)