Simply pass it in the other order,
p = P([6, 5, 1])
Pergunta
I am using Numpy to obtain the roots of polynomials. Numpy provides a module 'polynomial'.
My hand calc for x^2 + 5*x + 6 = 0
is x = -2
& x = -3
. (Simple)
But my code shows me the wrong answer: array([-0.5 , -0.33333333])
(Inversed?)
Could anyone please find the culprit in my code? Or is it simply a bug?
from numpy.polynomial import Polynomial as P
p = P([1, 5, 6])
p.roots()
Solução
Simply pass it in the other order,
p = P([6, 5, 1])
Outras dicas
You could have realized this yourself if you had determined that, for a polynomial P
of degree n
, R(x) = x^n P(1/x)
equals the reversed version of P
. So, except for 0
, the roots of R
are the reciprocals of the roots of P
.