flopscope.

flopscope.numpy.roots

Return the roots of a polynomial with coefficients given in p.

Adapted from NumPy docs np.roots

Areacore
Typecustom
NumPy Refnp.roots
Cost
16×10n310n^3
Flopscope Context

Return roots of polynomial with given coefficients. Cost: $n^3$ (companion matrix eig, simplified).

Note.

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

The values in the rank-1 array p are coefficients of a polynomial. If the length of p is n+1 then the polynomial is described by:

p[0] * x**n + p[1] * x**(n-1) + ... + p[n-1]*x + p[n]

Parameters

p:array_like

Rank-1 array of polynomial coefficients.

Returns

out:ndarray

An array containing the roots of the polynomial.

Raises

:ValueError

When p cannot be converted to a rank-1 array.

See also

Notes

The algorithm relies on computing the eigenvalues of the companion matrix [1]_.

References

footnote
1

R. A. Horn & C. R. Johnson, Matrix Analysis.  Cambridge, UK:
Cambridge University Press, 1999, pp. 146-7.

Examples

>>> import flopscope.numpy as fnp
>>> coeff = [3.2, 2, 1]
>>> flops.roots(coeff)
array([-0.3125+0.46351241j, -0.3125-0.46351241j])