Mathematics Source Library
C & ASM


Gauss-Chebyshev Quadrature

Gauss-Chebyshev Quadrature

Gauss-Chebyshev quadrature formulas are used to integrate functions f(x) / sqrt( 1 - x² ) from -1 to 1.

With respect to the inner product < f,g > = -11 (f(x) g(x) w(x)), the Chebyshev polynomials
T n(x) = cos( n arccos( x ) ) for n > 0, and T0(x) = 1 form an orthogonal family of polynomials with weight function w(x) = 1 / sqrt( 1 - x² ) on [-1,1].

The n-point Gauss-Chebyshev quadrature formula, GCn ( f(x) ), for approximating the integral of f(x) / sqrt( 1 - x² ) over [-1,1], is given by
GCn ( f(x) ) = A1 f(x1) + ··· + An f(xn),
where xi , i = 1,...,n, are the zeros of Tn and Ai = π / n, i = 1,...,n.

The truncation error is
-11 ( f(x) ) - GCn ( f(x) ) = 2 π f (2n)( c ) / (22n 2n! ),
where c is some unknown number -1 < c < 1.

Function List

For n = 2,3,4,5,6,7,8,9,10,12,14,16,20,24,28,32,40,48,56,64,82,96, and 100
  • double Gauss_Chebyshev_Integration_n pts( double (*f)(double) )

    Integrate (*f)(x) / sqrt( 1 - x² ) from -1 to 1 where (*f)(x) is the user supplied function.

  • void Gauss_Chebyshev_Zeros_n pts( double nodes[ ])

    Returns the zeros of the Chebyshev polynomial Tn(x) in the user allocated array nodes of dimension n.

  • void Gauss_Chebyshev_Coefs_n pts( double wght[ ] )

    Returns the weight of the Gauss-Chebyshev formula in the user allocated array wght of dimension 1.

C Source Code

  • The file, gauss_chebyshev_2pts.c, contains the versions of Gauss_Chebyshev_Integration_2pts( ), Gauss_Chebyshev_Zeros_2pts and Gauss_Chebyshev_Coefs_2pts( ) written in C.

  • The file, gauss_chebyshev_3pts.c, contains the versions of Gauss_Chebyshev_Integration_3pts( ), Gauss_Chebyshev_Zeros_3pts and Gauss_Chebyshev_Coefs_3pts( ) written in C.

  • The file, gauss_chebyshev_4pts.c, contains the versions of Gauss_Chebyshev_Integration_4pts( ), Gauss_Chebyshev_Zeros_4pts and Gauss_Chebyshev_Coefs_4pts( ) written in C.

  • The file, gauss_chebyshev_5pts.c, contains the versions of Gauss_Chebyshev_Integration_5pts( ), Gauss_Chebyshev_Zeros_5pts and Gauss_Chebyshev_Coefs_5pts( ) written in C.

  • The file, gauss_chebyshev_6pts.c, contains the versions of Gauss_Chebyshev_Integration_6pts( ), Gauss_Chebyshev_Zeros_6pts and Gauss_Chebyshev_Coefs_6pts( ) written in C.

  • The file, gauss_chebyshev_7pts.c, contains the versions of Gauss_Chebyshev_Integration_7pts( ), Gauss_Chebyshev_Zeros_7pts and Gauss_Chebyshev_Coefs_7pts( ) written in C.

  • The file, gauss_chebyshev_8pts.c, contains the versions of Gauss_Chebyshev_Integration_8pts( ), Gauss_Chebyshev_Zeros_8pts and Gauss_Chebyshev_Coefs_8pts( ) written in C.

  • The file, gauss_chebyshev_9pts.c, contains the versions of Gauss_Chebyshev_Integration_9pts( ), Gauss_Chebyshev_Zeros_9pts and Gauss_Chebyshev_Coefs_9pts( ) written in C.

  • The file, gauss_chebyshev_10pts.c, contains the versions of Gauss_Chebyshev_Integration_10pts( ), Gauss_Chebyshev_Zeros_10pts and Gauss_Chebyshev_Coefs_10pts( ) written in C.

  • The file, gauss_chebyshev_12pts.c, contains the versions of Gauss_Chebyshev_Integration_12pts( ), Gauss_Chebyshev_Zeros_12pts and Gauss_Chebyshev_Coefs_12pts( ) written in C.

  • The file, gauss_chebyshev_14pts.c, contains the versions of Gauss_Chebyshev_Integration_14pts( ), Gauss_Chebyshev_Zeros_14pts and Gauss_Chebyshev_Coefs_14pts( ) written in C.

  • The file, gauss_chebyshev_16pts.c, contains the versions of Gauss_Chebyshev_Integration_16pts( ), Gauss_Chebyshev_Zeros_16pts and Gauss_Chebyshev_Coefs_16pts( ) written in C.

  • The file, gauss_chebyshev_20pts.c, contains the versions of Gauss_Chebyshev_Integration_20pts( ), Gauss_Chebyshev_Zeros_20pts and Gauss_Chebyshev_Coefs_20pts( ) written in C.

  • The file, gauss_chebyshev_24pts.c, contains the versions of Gauss_Chebyshev_Integration_24pts( ), Gauss_Chebyshev_Zeros_24pts and Gauss_Chebyshev_Coefs_24pts( ) written in C.

  • The file, gauss_chebyshev_28pts.c, contains the versions of Gauss_Chebyshev_Integration_28pts( ), Gauss_Chebyshev_Zeros_28pts and Gauss_Chebyshev_Coefs_28pts( ) written in C.

  • The file, gauss_chebyshev_32pts.c, contains the versions of Gauss_Chebyshev_Integration_32pts( ), Gauss_Chebyshev_Zeros_32pts and Gauss_Chebyshev_Coefs_32pts( ) written in C.

  • The file, gauss_chebyshev_40pts.c, contains the versions of Gauss_Chebyshev_Integration_40pts( ), Gauss_Chebyshev_Zeros_40pts and Gauss_Chebyshev_Coefs_40pts( ) written in C.

  • The file, gauss_chebyshev_48pts.c, contains the versions of Gauss_Chebyshev_Integration_48pts( ), Gauss_Chebyshev_Zeros_48pts and Gauss_Chebyshev_Coefs_48pts( ) written in C.

  • The file, gauss_chebyshev_56pts.c, contains the versions of Gauss_Chebyshev_Integration_56pts( ), Gauss_Chebyshev_Zeros_56pts and Gauss_Chebyshev_Coefs_56pts( ) written in C.

  • The file, gauss_chebyshev_64pts.c, contains the versions of Gauss_Chebyshev_Integration_64pts( ), Gauss_Chebyshev_Zeros_64pts and Gauss_Chebyshev_Coefs_64pts( ) written in C.

  • The file, gauss_chebyshev_82pts.c, contains the versions of Gauss_Chebyshev_Integration_82pts( ), Gauss_Chebyshev_Zeros_82pts and Gauss_Chebyshev_Coefs_82pts( ) written in C.

  • The file, gauss_chebyshev_96pts.c, contains the versions of Gauss_Chebyshev_Integration_96pts( ), Gauss_Chebyshev_Zeros_96pts and Gauss_Chebyshev_Coefs_96pts( ) written in C.

  • The file, gauss_chebyshev_100pts.c, contains the versions of Gauss_Chebyshev_Integration_100pts( ), Gauss_Chebyshev_Zeros_100pts and Gauss_Chebyshev_Coefs_100pts( ) written in C.