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()
Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top