numpy.poly#

numpy.poly(seq_of_zeros)[source]#

Find the coefficients of a polynomial with the given sequence of roots.

Note

This forms part of the old polynomial API. Since version 1.4, thenew polynomial API defined innumpy.polynomial is preferred.A summary of the differences can be found in thetransition guide.

Returns the coefficients of the polynomial whose leading coefficientis one for the given sequence of zeros (multiple roots must be includedin the sequence as many times as their multiplicity; see Examples).A square matrix (or array, which will be treated as a matrix) can alsobe given, in which case the coefficients of the characteristic polynomialof the matrix are returned.

Parameters:
seq_of_zerosarray_like, shape (N,) or (N, N)

A sequence of polynomial roots, or a square array or matrix object.

Returns:
cndarray

1D array of polynomial coefficients from highest to lowest degree:

c[0]*x**(N)+c[1]*x**(N-1)+...+c[N-1]*x+c[N]where c[0] always equals 1.

Raises:
ValueError

If input is the wrong shape (the input must be a 1-D or square2-D array).

See also

polyval

Compute polynomial values.

roots

Return the roots of a polynomial.

polyfit

Least squares polynomial fit.

poly1d

A one-dimensional polynomial class.

Notes

Specifying the roots of a polynomial still leaves one degree offreedom, typically represented by an undetermined leadingcoefficient.[1] In the case of this function, that coefficient -the first one in the returned array - is always taken as one. (Iffor some reason you have one other point, the only automatic waypresently to leverage that information is to usepolyfit.)

The characteristic polynomial,\(p_a(t)\), of ann-by-nmatrixA is given by

\(p_a(t) = \mathrm{det}(t\, \mathbf{I} - \mathbf{A})\),

whereI is then-by-n identity matrix.[2]

References

[1]

M. Sullivan and M. Sullivan, III, “Algebra and Trigonometry,Enhanced With Graphing Utilities,” Prentice-Hall, pg. 318, 1996.

[2]

G. Strang, “Linear Algebra and Its Applications, 2nd Edition,”Academic Press, pg. 182, 1980.

Examples

Given a sequence of a polynomial’s zeros:

>>>importnumpyasnp
>>>np.poly((0,0,0))# Multiple root examplearray([1., 0., 0., 0.])

The line above represents z**3 + 0*z**2 + 0*z + 0.

>>>np.poly((-1./2,0,1./2))array([ 1.  ,  0.  , -0.25,  0.  ])

The line above represents z**3 - z/4

>>>np.poly((np.random.random(1)[0],0,np.random.random(1)[0]))array([ 1.        , -0.77086955,  0.08618131,  0.        ]) # random

Given a square array object:

>>>P=np.array([[0,1./3],[-1./2,0]])>>>np.poly(P)array([1.        , 0.        , 0.16666667])

Note how in all cases the leading coefficient is always 1.

On this page