Laguerre Polynomials



Laguerre Polynomials
Two types of the Laguerre polynomials are programmed. The first type, the classical Laguerre polynomials, denoted by Ln, are orthogonal on the support interval [0, ∞) with weight function
w(x) = exp(-x)
and normalized by the requirement that Ln(0) = 1.
The second type, the generalized Laguerre polynomials, denoted by Lnα, are orthogonal on the support interval [0, ∞) with weight function
w(x) = xαexp(-x)
and normalized by the requirement that Lnα(0) = 1.

The classical form, Ln, satisfies the three-term recurrence relation
(n+1) Ln+1(x) = (2n + 1 - x) Ln(x) - n Ln-1(x)for n ≥ 1
with starting values
L0(x) = 1, L1(x) = 1 - x.

While the second form, Lnα, satisfies the three-term recurrence relation
(n + 1) Ln+1α(x) = (2n + α + 1 - x) Lnα(x) - (n + α) Ln-1α(x)for n ≥ 1
with starting values
L0α(x) = 1, L1α(x) = α + 1 - x.

Function List

  • double Laguerre_Ln( double x, int n )

    This function returns Ln(x) where Ln(x) is described above.

  • long double xLaguerre_Ln( long double x, int n )

    This function returns Ln(x) where Ln(x) is described above.

  • void Laguerre_Ln_Sequence( double L[ ], double x, int max_n )

    This function returns Ln(x), for n = 0, 1, …, max_n in the array L[ ] where Ln(x) is described above. Note that L[ ] should be declared as double L[N] where
    N ≥ max_n + 1.

  • void xLaguerre_Ln_Sequence( long double L[ ], long double x, int max_n )

    This function returns Ln(x), for n = 0, 1, …, max_n in the array L[ ] where Ln(x) is described above. Note that L[ ] should be declared as long double L[N] where
    N ≥ max_n + 1.

  • double Laguerre_Ln_Series( double x, double a[ ], int degree )

    This function returns Σk=0na[k] Lk(x) where n = degree and Lk(x) for k = 0, …, n is described above.

  • long double xLaguerre_Ln_Series( long double x, long double a[ ], int degree )

    This function returns Σk=0na[k] Lk(x) where n = degree and Lk(x) for k = 0, …, n is described above.

  • double Laguerre_Ln_alpha( double x, double alpha, int n )

    This function returns Lnα(x) where Lnα(x) is described above.

  • long double xLaguerre_Ln_alpha( long double x, long double alpha, int n )

    This function returns Lnα(x) where Lnα(x) is described above.

  • void Laguerre_Ln_alpha_Sequence( double L[ ], double x, double alpha, int max_n )
    This function returns Lnα(x), for n = 0, 1, …, max_n in the array L[ ] where Lnα(x) is described above. Note that L[ ] should be declared as double L[N] where
    N ≥ max_n + 1.

  • void xLaguerre_Ln_alpha_Sequence( long double L[ ], long double x, long double alpha, int max_n )
    This function returns Lnα(x), for n = 0, 1, …, max_n in the array L[ ] where Lnα(x) is described above. Note that L[ ] should be declared as long double L[N] where
    N ≥ max_n + 1.

  • double Laguerre_Ln_alpha_Series( double x, double alpha, double a[], int degree )

    This function returns Σk=0na[k] Lkα(x) where n = degree and Lkα(x) for k = 0, …, n is described above.

  • long double xLaguerre_Ln_alpha_Series( long double x, long double alpha, long double a[], int degree )

    This function returns Σk=0na[k] Lkα(x) where n = degree and Lkα(x) for k = 0, …, n is described above.

Source Code

C source code is available for these routines: