CHEBYSHEV_POLYNOMIAL
Chebyshev Polynomials
CHEBYSHEV_POLYNOMIAL
is a MATLAB library which
considers the Chebyshev polynomials T(i,x), U(i,x), V(i,x) and W(i,x).
Functions are provided to evaluate the polynomials, determine their zeros,
produce their polynomial coefficients, produce related quadrature rules,
project other functions onto these polynomial bases, and integrate
double and triple products of the polynomials.
The Chebyshev polynomial T(n,x), or Chebyshev polynomial of the first kind,
may be defined, for 0 <= n, and -1 <= x <= +1 by:
cos ( t ) = x
T(n,x) = cos ( n * t )
For any value of x, T(n,x) may be evaluated by a three
term recurrence:
T(0,x) = 1
T(1,x) = x
T(n+1,x) = 2x T(n,x) - T(n-1,x)
The Chebyshev polynomial U(n,x), or Chebyshev polynomial of the second kind,
may be defined, for 0 <= n, and -1 <= x <= +1 by:
cos ( t ) = x
U(n,x) = sin ( ( n + 1 ) t ) / sin ( t )
For any value of x, U(n,x) may be evaluated by a three
term recurrence:
U(0,x) = 1
U(1,x) = 2x
U(n+1,x) = 2x U(n,x) - U(n-1,x)
The Chebyshev polynomial V(n,x), or Chebyshev polynomial of the third kind,
may be defined, for 0 <= n, and -1 <= x <= +1 by:
cos ( t ) = x
V(n,x) = cos ( (2n+1)*t/2) / cos ( t/2)
For any value of x, V(n,x) may be evaluated by a three
term recurrence:
V(0,x) = 1
V(1,x) = 2x-1
V(n+1,x) = 2x V(n,x) - V(n-1,x)
The Chebyshev polynomial W(n,x), or Chebyshev polynomial of the fourth kind,
may be defined, for 0 <= n, and -1 <= x <= +1 by:
cos ( t ) = x
W(n,x) = sin((2*n+1)*t/2)/sin(t/2)
For any value of x, W(n,x) may be evaluated by a three
term recurrence:
W(0,x) = 1
W(1,x) = 2x+1
W(n+1,x) = 2x W(n,x) - W(n-1,x)
Licensing:
The computer code and data files described and made available on this
web page are distributed under
the GNU LGPL license.
Languages:
CHEBYSHEV_POLYNOMIAL is available in
a C++ version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
CHEBYSHEV,
a MATLAB library which
computes the Chebyshev interpolant/approximant to a given function
over an interval.
CHEBYSHEV1_RULE,
a MATLAB program which
computes and prints a Gauss-Chebyshev type 1 quadrature rule.
CHEBYSHEV2_RULE,
a MATLAB program which
compute and print a Gauss-Chebyshev type 2 quadrature rule.
HERMITE_POLYNOMIAL,
a MATLAB library which
evaluates the physicist's Hermite polynomial, the probabilist's Hermite polynomial,
the Hermite function, and related functions.
INT_EXACTNESS_CHEBYSHEV1,
a MATLAB program which
tests the polynomial exactness of Gauss-Chebyshev type 1 quadrature rules.
INT_EXACTNESS_CHEBYSHEV2,
a MATLAB program which
tests the polynomial exactness of Gauss-Chebyshev type 2 quadrature rules.
JACOBI_POLYNOMIAL,
a MATLAB library which
evaluates the Jacobi polynomial and associated functions.
LAGUERRE_POLYNOMIAL,
a MATLAB library which
evaluates the Laguerre polynomial, the generalized Laguerre polynomial,
and the Laguerre function.
LEGENDRE_POLYNOMIAL,
a MATLAB library which
evaluates the Legendre polynomial and associated functions.
POLPAK,
a MATLAB library which
evaluates a variety of mathematical functions.
TEST_VALUES,
a MATLAB library which
supplies test values of various mathematical functions.
Reference:
-
Theodore Chihara,
An Introduction to Orthogonal Polynomials,
Gordon and Breach, 1978,
ISBN: 0677041500,
LC: QA404.5 C44.
-
Walter Gautschi,
Orthogonal Polynomials: Computation and Approximation,
Oxford, 2004,
ISBN: 0-19-850672-4,
LC: QA404.5 G3555.
-
John Mason, David Handscomb,
Chebyshev Polynomials,
CRC Press, 2002,
ISBN: 0-8493-035509,
LC: QA404.5.M37.
-
Frank Olver, Daniel Lozier, Ronald Boisvert, Charles Clark,
NIST Handbook of Mathematical Functions,
Cambridge University Press, 2010,
ISBN: 978-0521192255,
LC: QA331.N57.
-
Gabor Szego,
Orthogonal Polynomials,
American Mathematical Society, 1992,
ISBN: 0821810235,
LC: QA3.A5.v23.
Source Code:
-
i4_uniform.m,
returns a scaled pseudorandom I4.
-
imtqlx.m,
diagonalizes a symmetric tridiagonal matrix;
-
r8_sign.m,
returns the sign of an R8.
-
r8vec_in_ab.m,
is TRUE if all elements of an R8VEC lie in [A,B].
-
r8vec_print.m,
prints an R8VEC;
-
r8vec_uniform_01.m,
returns a uniform pseudorandom R8VEC in [0,1].
-
r8vec2_print.m,
prints a pair of R8VEC's;
-
t_double_product_integral.m,
integral ( -1 <= x <= +1 ) T(i,x)*T(j,x)/sqrt(1-x^2) dx.
-
t_integral.m,
integral ( -1 <= x <= +1 ) x^e/sqrt(1-x^2) dx.
-
t_polynomial.m,
evaluates the Chebyshev polynomials T(n,x).
-
t_polynomial_ab.m,
evaluates the Chebyshev polynomials T(n,x) in [A,B].
-
t_polynomial_coefficients.m,
evaluates the coefficients of the Chebyshev polynomials T(n,x).
-
t_polynomial_plot.m,
plots selected Chebyshev polynomials T(n,x).
-
t_polynomial_value.m,
evaluates one Chebyshev polynomial T(n,x) at one point.
-
t_polynomial_values.m,
returns selected values of the Chebyshev polynomials T(n,x).
-
t_polynomial_zeros.m,
returns the zeros of the Chebyshev polynomials T(n,x).
-
t_project_coefficients.m,
given a function in [-1,1], estimates the coefficients of a corresponding
Chebyshev expansion of degree N.
-
t_project_coefficients_ab.m,
given a function in [A,B], estimates the coefficients of a corresponding
Chebyshev expansion of degree N.
-
t_project_coefficients_data.m,
given N arbitrary data values in [A,B], estimates the coefficients of a corresponding
Chebyshev expansion of degree N.
-
t_project_value.m,
evaluates an expansion of degree N in Chebyshev polynomials T(n,x) over [-1,+1].
-
t_project_value_ab.m,
evaluates an expansion of degree N in Chebyshev polynomials T(n,x) over [A,B].
-
t_quadrature_rule.m,
computes a quadrature rule for f(x)/sqrt(1-x^2) based on T(n,x).
-
t_triple_product_integral.m,
integral (-1<=x<=1) T(i,x)*T(j,x)*T(k,x)/sqrt(1-x^2) dx
-
timestamp.m,
prints the current YMDHMS date as a time stamp.
-
u_double_product_integral.m,
integral ( -1 <= x <= +1 ) U(i,x)*U(j,x)*sqrt(1-x^2) dx.
-
u_integral.m,
integral ( -1 <= x <= +1 ) x^e * sqrt(1-x^2) dx.
-
u_polynomial.m,
evaluates the Chebyshev polynomials U(n,x).
-
u_polynomial_coefficients.m,
evaluates the coefficients of the Chebyshev polynomials U(n,x).
-
u_polynomial_values.m,
returns selected values of the Chebyshev polynomials U(n,x).
-
u_polynomial_zeros.m,
returns the zeros of the Chebyshev polynomials U(n,x).
-
u_quadrature_rule.m,
computes a quadrature rule for f(x)*sqrt(1-x^2) based on U(n,x).
-
v_double_product_integral.m,
integral ( -1 <= x <= +1 ) V(i,x)*V(j,x)*sqrt(1+x)/sqrt(1-x) dx.
-
v_polynomial.m,
evaluates the Chebyshev polynomials V(n,x).
-
v_polynomial_values.m,
returns selected values of the Chebyshev polynomials V(n,x).
-
v_polynomial_zeros.m,
returns the zeros of the Chebyshev polynomials V(n,x).
-
w_double_product_integral.m,
integral ( -1 <= x <= +1 ) W(i,x)*W(j,x)*sqrt(1-x)/sqrt(1+x) dx.
-
w_polynomial.m,
evaluates the Chebyshev polynomials W(n,x).
-
w_polynomial_values.m,
returns selected values of the Chebyshev polynomials W(n,x).
-
w_polynomial_zeros.m,
returns the zeros of the Chebyshev polynomials W(n,x).
Examples and Tests:
-
chebyshev_polynomial_test.m,
calls all the tests.
-
chebyshev_polynomial_test_output.txt,
the output file.
-
t_polynomial_plot.png,
a plot of Chebyshev polynomials T(0,x) through T(5,x).
-
chebyshev_polynomial_test01.m,
tests t_polynomial_project_data.
-
chebyshev_polynomial_test02.m,
tests t_polynomial_coefficients.
-
chebyshev_polynomial_test03.m,
tests t_polynomial.
-
chebyshev_polynomial_test04.m,
tests t_polynomial_zeros.
-
chebyshev_polynomial_test05.m,
tests t_quadrature_rule.
-
chebyshev_polynomial_test06.m,
tests that T(i,x) and T(j,x) are orthogonal.
-
chebyshev_polynomial_test07.m,
tests t_project_coefficients.
-
chebyshev_polynomial_test08.m,
tests t_project_coefficients_data.
-
chebyshev_polynomial_test09.m,
tests t_project_coefficients and t_project_value.
-
chebyshev_polynomial_test10.m,
tests t_project_coefficients_ab and t_project_value_ab.
-
chebyshev_polynomial_test11.m,
tests u_polynomial_coefficients.
-
chebyshev_polynomial_test12.m,
tests u_polynomial.
-
chebyshev_polynomial_test13.m,
tests u_polynomial_zeros.
-
chebyshev_polynomial_test14.m,
tests u_quadrature_rule.
-
chebyshev_polynomial_test15.m,
tests v_polynomial.
-
chebyshev_polynomial_test16.m,
tests w_polynomial.
-
chebyshev_polynomial_test17.m,
tests t_triple_product_integral.
You can go up one level to
the MATLAB source codes.
Last revised on 26 April 2012.