CHEBYSHEV_POLYNOMIAL
Chebyshev Polynomials
CHEBYSHEV_POLYNOMIAL
is a Python 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 C++ version and
a FORTRAN90 version and
a MATLAB version and
a Python version.
Related Data and Programs:
BERNSTEIN_POLYNOMIAL,
a Python library which
evaluates the Bernstein polynomials,
useful for uniform approximation of functions;
CLAUSEN,
a Python library which
evaluates a Chebyshev interpolant to the Clausen function Cl2(x).
GEGENBAUER_POLYNOMIAL,
a Python library which
evaluates the Gegenbauer polynomial and associated functions.
LEGENDRE_POLYNOMIAL,
a Python library which
evaluates the Legendre polynomial and associated functions.
LEGENDRE_SHIFTED_POLYNOMIAL,
a Python library which
evaluates the shifted Legendre polynomial, with domain [0,1].
POLPAK,
a Python library which
evaluates a variety of mathematical functions.
TEST_VALUES,
a Python 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:
-
gamma_values.py,
returns selected values of the gamma function.
-
hyper_2f1_values.py,
returns selected values of the hypergeometric 2F1 function.
-
i4_uniform_ab.py,
returns a scaled pseudorandom I4.
-
imtqlx.py,
diagonalizes a symmetric tridiagonal matrix;
-
psi_values.py,
returns selected values of the psi function.
-
r8_choose.py,
returns the combinatorial coefficient C(N,K).
-
r8_epsilon.py,
returns the R8 roundoff unit.
-
r8_factorial.py,
evaluates the factorial function.
-
r8_factorial_values.py,
returns selected values of the factorial function.
-
r8_gamma.py,
returns the gamma function of an R8.
-
r8_gamma_log.py,
returns the logarithm of the gamma function of an R8.
-
r8_hyper_2f1.py,
evaluates the hypergeometric function 2F1.
-
r8_mop.py,
returns a power of -1 as an R8;
-
r8_psi.py,
returns the Psi function;
-
r8_uniform_ab.py,
returns a scaled pseudorandom R8.
-
r8mat_print.py,
prints an R8MAT.
-
r8mat_print_some.py,
prints some of an R8MAT.
-
r8poly_print.py,
prints an R8POLY.
-
r8vec_print.py,
prints an R8VEC;
-
r8vec2_print.py,
prints a pair of R8VEC's;
-
t_mass_matrix.m,
computes the mass matrix for the Chebyshev T polynomial.
-
t_moment.py,
integral ( -1 <= x <= +1 ) x^e/sqrt(1-x^2) dx.
-
t_polynomial.py,
evaluates the Chebyshev polynomials T(n,x).
-
t_polynomial_01_values.py,
returns selected values of the shifted Chebyshev polynomials T01(n,x).
-
t_polynomial_ab.py,
evaluates the shifted Chebyshev polynomials TAB(n,x) in [A,B].
-
t_polynomial_ab_value.py,
evaluates a shifted Chebyshev polynomial TAB(n,x) in [A,B].
-
t_polynomial_coefficients.py,
evaluates the coefficients of the Chebyshev polynomials T(n,x).
-
t_polynomial_plot.py,
plots selected Chebyshev polynomials T(n,x).
-
t_polynomial_plot.png
-
t_polynomial_value.py,
evaluates the Chebyshev polynomials T(n,x).
-
t_polynomial_values.py,
returns selected values of the Chebyshev polynomials T(n,x).
-
t_polynomial_zeros.py,
returns the zeros of the Chebyshev polynomials T(n,x).
-
t_quadrature_rule.py,
computes a quadrature rule for f(x)/sqrt(1-x^2) based on T(n,x).
-
timestamp.py,
prints the current YMDHMS date as a time stamp.
-
tt_product.py,
evaluate T(i,x)*T(j,x).
-
tt_product_integral.m,
integral ( -1 <= x <= +1 ) T(i,x)*T(j,x)/sqrt(1-x^2) dx.
-
ttt_product_integral.py,
integral (-1<=x<=1) T(i,x)*T(j,x)*T(k,x)/sqrt(1-x^2) dx
-
tu_product.py,
evaluate T(i,x)*U(j,x).
-
u_mass_matrix.py,
computes the mass matrix for the Chebyshev U polynomial.
-
u_moment.py,
integral ( -1 <= x <= +1 ) x^e * sqrt(1-x^2) dx.
-
u_polynomial.py,
evaluates the Chebyshev polynomials U(n,x).
-
u_polynomial_01_values.py,
returns selected values of the shifted Chebyshev polynomials T01(n,x).
-
u_polynomial_ab.py,
evaluates the shifted Chebyshev polynomials UAB(n,x) in [A,B].
-
u_polynomial_ab_value.py,
evaluates a shifted Chebyshev polynomial UAB(n,x) in [A,B].
-
u_polynomial_coefficients.py,
evaluates the coefficients of the Chebyshev polynomials U(n,x).
-
u_polynomial_plot.py,
plots selected Chebyshev polynomials U(n,x).
-
u_polynomial_plot.png
-
u_polynomial_value.py,
evaluates the Chebyshev polynomials U(n,x).
-
u_polynomial_values.py,
returns selected values of the Chebyshev polynomials U(n,x).
-
u_polynomial_zeros.py,
returns the zeros of the Chebyshev polynomials U(n,x).
-
u_quadrature_rule.py,
computes a quadrature rule for f(x)*sqrt(1-x^2) based on U(n,x).
-
uu_product.py,
evaluate U(i,x)*U(j,x).
-
uu_product_integral.m,
integral ( -1 <= x <= +1 ) U(i,x)*U(j,x)*sqrt(1-x^2) dx.
-
v_mass_matrix.py,
computes the mass matrix for the Chebyshev V polynomial.
-
v_moment.py,
integral ( -1 <= x <= +1 ) x^e * sqrt(1+x)/sqrt(1-x) dx.
-
v_polynomial.py,
evaluates the Chebyshev polynomials V(n,x).
-
v_polynomial_01_values.py,
returns selected values of the shifted Chebyshev polynomials V01(n,x).
-
v_polynomial_ab.py,
evaluates the shifted Chebyshev polynomials VAB(n,x) in [A,B].
-
v_polynomial_ab_value.py,
evaluates a shifted Chebyshev polynomial VAB(n,x) in [A,B].
-
v_polynomial_coefficients.py,
evaluates the coefficients of the Chebyshev polynomials V(n,x).
-
v_polynomial_plot.py,
plots selected Chebyshev polynomials V(n,x).
-
v_polynomial_plot.png
-
v_polynomial_value.py,
evaluates the Chebyshev polynomials V(n,x).
-
v_polynomial_values.py,
returns selected values of the Chebyshev polynomials V(n,x).
-
v_polynomial_zeros.py,
returns the zeros of the Chebyshev polynomials V(n,x).
-
v_quadrature_rule.py,
computes a quadrature rule for f(x)*sqrt(1+x)/(1-x) based on V(n,x).
-
vv_product_integral.m,
integral ( -1 <= x <= +1 ) V(i,x)*V(j,x)*sqrt(1+x)/sqrt(1-x) dx.
-
w_mass_matrix.py,
computes the mass matrix for the Chebyshev W polynomial.
-
w_moment.py,
integral ( -1 <= x <= +1 ) x^e * sqrt(1-x)/sqrt(1+x) dx.
-
w_polynomial.py,
evaluates the Chebyshev polynomials W(n,x).
-
w_polynomial_01_values.py,
returns selected values of the shifted Chebyshev polynomials W01(n,x).
-
w_polynomial_ab.py,
evaluates the shifted Chebyshev polynomials WAB(n,x) in [A,B].
-
w_polynomial_ab_value.py,
evaluates a shifted Chebyshev polynomial WAB(n,x) in [A,B].
-
w_polynomial_coefficients.py,
evaluates the coefficients of the Chebyshev polynomials W(n,x).
-
w_polynomial_plot.py,
plots selected Chebyshev polynomials W(n,x).
-
w_polynomial_plot.png
-
w_polynomial_value.py,
evaluates the Chebyshev polynomials W(n,x).
-
w_polynomial_values.py,
returns selected values of the Chebyshev polynomials W(n,x).
-
w_polynomial_zeros.py,
returns the zeros of the Chebyshev polynomials W(n,x).
-
w_quadrature_rule.py,
computes a quadrature rule for f(x)*sqrt(1-x)/sqrt(1+x) based on W(n,x).
-
ww_product_integral.m,
integral ( -1 <= x <= +1 ) W(i,x)*W(j,x)*sqrt(1-x)/sqrt(1+x) dx.
Source Code Not Converted Yet:
-
t_project_coefficients.py,
given a function in [-1,1], estimates the coefficients of a corresponding
Chebyshev expansion of degree N.
-
t_project_coefficients_ab.py,
given a function in [A,B], estimates the coefficients of a corresponding
Chebyshev expansion of degree N.
-
t_project_coefficients_data.py,
given N arbitrary data values in [A,B], estimates the coefficients of a corresponding
Chebyshev expansion of degree N.
-
t_project_value.py,
evaluates an expansion of degree N in Chebyshev polynomials T(n,x) over [-1,+1].
-
t_project_value_ab.py,
evaluates an expansion of degree N in Chebyshev polynomials T(n,x) over [A,B].
Examples and Tests:
You can go up one level to
the Python source codes.
Last revised on 21 July 2015.