2013-09-25 61 views
8

我使用Numpy來獲取多項式的根。 Numpy提供了一個模塊「多項式」。使用Python查找多項式根 - 可能的Numpy擴展Bug

我的手計算值 * 2 + 5 * X + 6 = 0 '*是' X = -2' & 'X = -3'。 (簡單)

但我的代碼顯示了我錯誤的答案:陣列([ - 0.5,-0.33333333])(倒?)

任何人都可以請找我的代碼的罪魁禍首?或者它只是一個錯誤?

from numpy.polynomial import Polynomial as P 
    p = P([1, 5, 6]) 
    p.roots() 
+0

flebool本質上是正確的。看起來它們顛倒了新的「多項式」模塊的順序。 Numpy中舊模塊'poly1d'中的順序與Matlab中的順序相同。再次感謝flebool。 –

回答

10

只需通過它在另外的順序,

p = P([6, 5, 1]) 
-1

可以使用這個自己意識到,如果你已經確定,爲了n次多項式PR(x) = x^n P(1/x)等於P反向版本。所以,除了0之外,R的根是P的根的倒數。

+0

可能沒有理由在這裏snark ... – Tgsmith61591