SciPy

numpy.polynomial.legendre.legfromroots

numpy.polynomial.legendre.legfromroots(roots)[source]

Generate a Legendre series with given roots.

The function returns the coefficients of the polynomial

p(x) = (x - r_0) * (x - r_1) * ... * (x - r_n),

in Legendre form, where the r_n are the roots specified in roots. If a zero has multiplicity n, then it must appear in roots n times. For instance, if 2 is a root of multiplicity three and 3 is a root of multiplicity 2, then roots looks something like [2, 2, 2, 3, 3]. The roots can appear in any order.

If the returned coefficients are c, then

p(x) = c_0 + c_1 * L_1(x) + ... + c_n * L_n(x)

The coefficient of the last term is not generally 1 for monic polynomials in Legendre form.

Parameters:

roots : array_like

Sequence containing the roots.

Returns:

out : ndarray

1-D array of coefficients. If all roots are real then out is a real array, if some of the roots are complex, then out is complex even if all the coefficients in the result are real (see Examples below).

See also

polyfromroots, chebfromroots, lagfromroots, hermfromroots, hermefromroots.

Examples

>>> import numpy.polynomial.legendre as L
>>> L.legfromroots((-1,0,1)) # x^3 - x relative to the standard basis
array([ 0. , -0.4,  0. ,  0.4])
>>> j = complex(0,1)
>>> L.legfromroots((-j,j)) # x^2 + 1 relative to the standard basis
array([ 1.33333333+0.j,  0.00000000+0.j,  0.66666667+0.j])