In
applied mathematics, the discrete Chebyshev transform (DCT), named after
Pafnuty Chebyshev, is either of two main varieties of DCTs: the discrete Chebyshev transform on the 'roots' grid of the
Chebyshev polynomials
The Chebyshev polynomials are two sequences of polynomials related to the cosine and sine functions, notated as T_n(x) and U_n(x). They can be defined in several equivalent ways, one of which starts with trigonometric functions:
The Chebyshe ...
of the first kind
and the discrete Chebyshev transform on the 'extrema' grid of the Chebyshev polynomials of the first kind.
Discrete Chebyshev transform on the roots grid
The discrete chebyshev transform of u(x) at the points
is given by:
:
where:
:
:
where
and
otherwise.
Using the definition of
,
:
:
and its inverse transform:
:
(This so happens to 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:
function a=fct(f,l)
% x =-cos(pi/N*((0:N-1)'+1/2));
f = f(end:-1:1,:);
A = size(f); N = A(1);
if exist('A(3)','var') && A(3)~=1
for i=1:A(3)
a(:,:,i) = sqrt(2/N) * dct(f(:,:,i));
a(1,:,i) = a(1,:,i) / sqrt(2);
end
else
a = sqrt(2/N) * dct(f(:,:,i));
a(1,:)=a(1,:) / sqrt(2);
end
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:
function f=ifct(a,l)
% x = -cos(pi/N*((0:N-1)'+1/2))
k = size(a); N=k(1);
a = idct(sqrt(N/2) * (1,:) * sqrt(2); a(2:end,:);
end
Discrete Chebyshev transform on the extrema grid
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.
There is a discrete (and in fact fast because it performs the dct by using a fast Fourier transform) available at the MATLAB file exchange that was created by Greg von Winckel. So it is omitted here.
In this case the transform and its inverse are
:
:
where
and
otherwise.
Usage and implementations
The primary uses of the discrete Chebyshev transform are numerical integration, interpolation, and stable numerical differentiation.
An implementation which provides these features is given in the
C++ library Boost
See also
*
Chebyshev polynomials
The Chebyshev polynomials are two sequences of polynomials related to the cosine and sine functions, notated as T_n(x) and U_n(x). They can be defined in several equivalent ways, one of which starts with trigonometric functions:
The Chebyshe ...
*
Discrete cosine transform
*
Discrete Fourier transform
*
List of Fourier-related transforms
This is a list of linear transformations of function (mathematics), functions related to Fourier analysis. Such transformations Map (mathematics), map a function to a set of coefficients of basis functions, where the basis functions are trigonomet ...
References
{{reflist
Transforms
Articles with example MATLAB/Octave code