The discrete Chebyshev transform of u ( x ) {\displaystyle {u(x)}} at the points x n {\displaystyle {x_{n}}} is given by:
where:
where p m = 1 ⇔ m = 0 {\displaystyle p_{m}=1\Leftrightarrow m=0} and p m = 2 {\displaystyle p_{m}=2} otherwise.
Using the definition of x n {\displaystyle x_{n}} ,
and its inverse transform:
(This so happens to be the standard Chebyshev series evaluated on the roots grid.)
This can readily be obtained by manipulating the input arguments to a discrete cosine transform.
This can be demonstrated using the following MATLAB code:
The discrete cosine transform (dct) is in fact computed using a fast Fourier transform algorithm in MATLAB.
And the inverse transform is given by the MATLAB code:
This transform uses the grid:
This transform is more difficult to implement by use of a Fast Fourier Transform (FFT). However it is more widely used because it is on the extrema grid which tends to be most useful for boundary value problems. Mostly because it is easier to apply boundary conditions on this grid.
In this case the transform and its inverse are
where p m = 1 ⇔ m = 0 , N {\displaystyle p_{m}=1\Leftrightarrow m=0,N} and p m = 2 {\displaystyle p_{m}=2} otherwise.
The primary uses of the discrete Chebyshev transform are numerical integration, interpolation, and stable numerical differentiation.1 An implementation which provides these features is given in the C++ library Boost.2
Trefethen, Lloyd (2013). Approximation Theory and Approximation Practice. ↩
Thompson, Nick; Maddock, John. "Chebyshev Polynomials". boost.org. http://www.boost.org/doc/libs/release/libs/math/doc/html/math_toolkit/sf_poly/chebyshev.html ↩