flopscope.numpy.roots
fnp.roots(p)[flopscope source][numpy source]
Return the roots of a polynomial with coefficients given in p.
Adapted from NumPy docs np.roots
Return roots of polynomial with given coefficients. Cost: $n^3$ (companion matrix eig, simplified).
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
pcannot be converted to a rank-1 array.
See also
- we.flops.poly Find the coefficients of a polynomial with a given sequence of roots.
- we.flops.polyval Compute polynomial values.
- we.flops.polyfit Least squares polynomial fit.
- poly1d A one-dimensional polynomial class.
Notes
The algorithm relies on computing the eigenvalues of the companion matrix [1]_.
References
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])