7
$\begingroup$

I have been reading Numerical recipes about how to create a power series approximation to a function once you have a Chebyshev approximation to the function. However it is still very unclear to me how one can go from the coefficients $c_k$ in $\Sigma c_k T_k - c_0/2 $ to the $d_k$ in $\Sigma d_k x_k$.

I understand just how one can get the $c_k$'s and I am very confident that I can get those correctly, but I'm getting confused about how to implement this so called Clenshaw recurrence.

Any help is greatly appreciated.

Thanks.

$\endgroup$
6
$\begingroup$

One way to get the $d_k$ is to expand each Chebyshev polynomial in powers, and then take linear combinations.

However, using the Chebyshev representation itself (as detailed below) is numerically far more stable than using the power series expansion.

You can evaluate a Chebyshev sum at any pareticular $x$ in a Horner-like fashion by using the 3-term recurrence to eliminate recursively the highest term until you end up with a linear function. By differentiating the resulting recurrence you also get the values of the first derivative.

$\endgroup$
  • 1
    $\begingroup$ Thanks for the response. I have read that Chebshev polynomials are the best basis to use. But I am trying to reproduce some eles's work and they use power series. Therefore I want to see how they did their numerics. Maybe this is my misunderstanding of the topic, but I thought this "Clenshaw recurrence" was more of a plug and chug, that does not actually require expanding the Chebyshev polynomials. $\endgroup$ – tau1777 Sep 26 '12 at 21:21
  • 1
    $\begingroup$ @AshikIdrisy: The Clenshaw recurrence is just the recurrence whose derivation I indicated. It gives function values, not a power series expansion. See en.wikipedia.org/wiki/Clenshaw_algorithm $\endgroup$ – Arnold Neumaier Sep 27 '12 at 10:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.