chebyshev_polynomial
chebyshev_polynomial,
a MATLAB code 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 MIT 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 MATLAB code which
evaluates the Bernstein polynomials,
useful for uniform approximation of functions;
chebyshev,
a MATLAB code which
computes the Chebyshev interpolant/approximant to a given function
over an interval.
chebyshev_polynomial_test
chebyshev_series,
a MATLAB code which
can evaluate a chebyshev series approximating a function f(x),
while efficiently computing one, two or three derivatives of the
series, which approximate f'(x), f''(x), and f'''(x),
by manfred zimmer.
chebyshev1_rule,
a MATLAB code which
computes and prints a gauss-chebyshev type 1 quadrature rule.
chebyshev2_rule,
a MATLAB code which
compute and print a gauss-chebyshev type 2 quadrature rule.
gegenbauer_polynomial,
a MATLAB code which
evaluates the gegenbauer polynomial and associated functions.
hermite_polynomial,
a MATLAB code which
evaluates the physicist's hermite polynomial,
the probabilist's hermite polynomial,
the hermite function, and related functions.
jacobi_polynomial,
a MATLAB code which
evaluates the jacobi polynomial and associated functions.
laguerre_polynomial,
a MATLAB code which
evaluates the laguerre polynomial, the generalized laguerre polynomial,
and the laguerre function.
legendre_polynomial,
a MATLAB code which
evaluates the legendre polynomial and associated functions.
lobatto_polynomial,
a MATLAB code which
evaluates lobatto polynomials, similar to legendre polynomials
except that they are zero at both endpoints.
polpak,
a MATLAB code which
evaluates a variety of mathematical functions.
test_values,
a MATLAB code 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_ab.m,
returns a scaled pseudorandom I4.
-
imtqlx.m,
diagonalizes a symmetric tridiagonal matrix;
-
r8_hyper_2f1.m,
evaluates the 2F1 hypergeometric function.
-
r8_mop.m,
returns a power of -1 as an R8;
-
r8_psi.m,
returns the psi() function.
-
r8_sign.m,
returns the sign of an R8.
-
r8_uniform_ab.m,
returns a scaled pseudorandom R8.
-
r8mat_print.m,
prints an R8MAT;
-
r8mat_print_some.m,
prints some of an R8MAT;
-
r8vec_is_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_mass_matrix.m,
computes the mass matrix for the Chebyshev T polynomial.
-
t_moment.m,
integral ( -1 <= x <= +1 ) x^e/sqrt(1-x^2) dx.
-
t_polynomial.m,
evaluates the Chebyshev polynomials T(n,x).
-
t_polynomial_01_values.m,
returns selected values of the shifted Chebyshev polynomials T01(n,x).
-
t_polynomial_ab.m,
evaluates the Chebyshev polynomials TAB(n,x) shifted to [A,B].
-
t_polynomial_ab_value.m,
evaluates a Chebyshev polynomial TAB(n,x) shifted to [A,B].
-
t_polynomial_coefficient_table.m,
evaluates the coefficients of the Chebyshev polynomials T(0:n,x).
-
t_polynomial_coefficients.m,
evaluates the coefficients of the Chebyshev polynomial T(d,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).
-
tt_product.m,
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.m,
integral (-1<=x<=1) T(i,x)*T(j,x)*T(k,x)/sqrt(1-x^2) dx
-
tu_product.m,
evaluate T(i,x)*U(j,x).
-
u_mass_matrix.m,
computes the mass matrix for the Chebyshev U polynomial.
-
u_moment.m,
integral ( -1 <= x <= +1 ) x^e * sqrt(1-x^2) dx.
-
u_polynomial.m,
evaluates the Chebyshev polynomials U(n,x).
-
u_polynomial_01_values.m,
returns selected values of the shifted Chebyshev polynomials U01(n,x).
-
u_polynomial_ab.m,
evaluates the Chebyshev polynomials UAB(n,x) shifted to [A,B].
-
u_polynomial_ab_value.m,
evaluates a Chebyshev polynomial UAB(n,x) shifted to [A,B].
-
u_polynomial_coefficients.m,
evaluates the coefficients of the Chebyshev polynomials U(n,x).
-
u_polynomial_plot.m,
plots selected Chebyshev polynomials U(n,x).
-
u_polynomial_value.m,
evaluates one Chebyshev polynomial U(n,x) at one point.
-
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).
-
uu_product.m,
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.m,
computes the mass matrix for the Chebyshev V polynomial.
-
v_moment.m,
integral ( -1 <= x <= +1 ) x^e * sqrt(1+x) / sqrt(1-x) dx.
-
v_polynomial.m,
evaluates the Chebyshev polynomials V(n,x).
-
v_polynomial_01_values.m,
returns selected values of the shifted Chebyshev polynomials V01(n,x).
-
v_polynomial_ab.m,
evaluates the Chebyshev polynomials VAB(n,x) shifted to [A,B].
-
v_polynomial_ab_value.m,
evaluates a Chebyshev polynomial VAB(n,x) shifted to [A,B].
-
v_polynomial_coefficients.m,
evaluates the coefficients of the Chebyshev polynomials V(n,x).
-
v_polynomial_plot.m,
plots selected Chebyshev polynomials V(n,x).
-
v_polynomial_value.m,
evaluates one Chebyshev polynomial V(n,x) at one point.
-
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).
-
v_quadrature_rule.m,
computes a quadrature rule for f(x)*sqrt(1+x)/sqrt(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.m,
computes the mass matrix for the Chebyshev W polynomial.
-
w_moment.m,
integral ( -1 <= x <= +1 ) x^e * sqrt(1-x) / sqrt(1+x) dx.
-
w_polynomial.m,
evaluates the Chebyshev polynomials W(n,x).
-
w_polynomial_01_values.m,
returns selected values of the shifted Chebyshev polynomials W01(n,x).
-
w_polynomial_ab.m,
evaluates the Chebyshev polynomials WAB(n,x) shifted to [A,B].
-
w_polynomial_ab_value.m,
evaluates a Chebyshev polynomial WAB(n,x) shifted to [A,B].
-
w_polynomial_coefficients.m,
evaluates the coefficients of the Chebyshev polynomials W(n,x).
-
w_polynomial_plot.m,
plots selected Chebyshev polynomials W(n,x).
-
w_polynomial_value.m,
evaluates one Chebyshev polynomial W(n,x) at one point.
-
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).
-
w_quadrature_rule.m,
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.
Last revised on 12 January 2021.