## `orthpoly::laguerre` -- the (generalized) Laguerre polynomials

#### Introduction

`orthpoly::laguerre``(n,a,x)` computes the value of the generalized n-th degree Laguerre polynomial with parameter a at the point x.

#### Call(s)

`orthpoly::laguerre(n, a, x)`

#### Parameters

`n` | - | a nonnegative integer: the degree of the polynomial.
`a` | - | an arithmetical expression.
`x` | - | an indeterminate or an arithmetical expression. An indeterminate is either an identifier (of domain type `DOM_IDENT`) or an indexed identifier (of type `"_index"`).

#### Returns

If `x` is an indeterminate, then a polynomial of domain type `DOM_POLY` is returned. If `x` is an arithmetical expression, then the value of the Laguerre polynomial at this point is returned as an arithmetical expression. If `n` is not a nonnegative integer, then `orthpoly::laguerre` returns itself symbolically.

#### Details

- The standard Laguerre polynomials correspond to a=0. They have rational coefficients.

#### Example 1

Polynomials of domain type `DOM_POLY` are returned, if identifiers or indexed identifiers are specified:

    >> orthpoly::laguerre(2, a, x)

                   /                        /        2     \      \
                   |      2                 | 3 a   a      |      |
               poly| 1/2 x  + (- a - 2) x + | --- + -- + 1 |, [x] |
                   \                        \  2    2      /      /

    >> orthpoly::laguerre(3, a, x[1])

              /
              |           3   / a       \     2
          poly| - 1/6 x[1]  + | - + 3/2 | x[1]  +
              \               \ 2       /

             /          2     \        /              3     \         \
             |   5 a   a      |        | 11 a    2   a      |         |
             | - --- - -- - 3 | x[1] + | ---- + a  + -- + 1 |, [x[1]] |
             \    2    2      /        \  6          6      /         /

However, using arithmetical expressions as input the ``values'' of these polynomials are returned:

    >> orthpoly::laguerre(2, 4, 6*x)

                             (5 - 6 x) (7 - 6 x)
                             ------------------- - 5/2
                                      2

    >> orthpoly::laguerre(2, 2/3*I, x[1] + 2)

            (- x[1] - (1 - 2/3 I)) ((1 + 2/3 I) - x[1])
            ------------------------------------------- - (1/2 + 1/3 I)
                                 2

``Arithmetical expressions'' include numbers:

    >> orthpoly::laguerre(2, a, sqrt(2)),
       orthpoly::laguerre(3, 0.4, 8 + I),
       orthpoly::laguerre(1000, 3, 0.3);

                 2
          3 a   a       1/2      1/2
          --- + -- - 2 2    - a 2    + 2, - 4.969333333 - 8.713333334 I,
           2    2

             -15691.69498

If no integer degree is specified, then `orthpoly::laguerre` returns itself symbolically:

    >> orthpoly::laguerre(n, a, x), orthpoly::laguerre(1/2, a, x)

            orthpoly::laguerre(n, a, x), orthpoly::laguerre(1/2, a, x)

#### Background

- The Laguerre polynomials are given by the recursion formula

      L(n,a,x)=(2*n+a-1-x)/n*L(n-1,a,x)-(n+a-1)/n*L(n-2,a,x)

  with L(0,a,x)=1 and L(1,a,x)=1+a-x.
- For fixed real a>-1 these polynomials are orthogonal on the interval [0,infinity) with respect to the weight function w(x)=x^a*exp(-x).

#### Changes

- Indexed identifiers are now regarded as indeterminates. Now arbitrary expressions are accepted for the parameter a. Non-integer degrees n are now accepted, leading to an unevaluated function call. Efficiency was improved.

Do you have questions or comments?
Copyright © SciFace Software GmbH & Co. KG 2000