2013-09-25 18 views
8

Tôi đang sử dụng Numpy để lấy gốc rễ của đa thức. Numpy cung cấp một mô-đun 'đa thức'.Tìm rễ đa thức bằng Python - Lỗi mở rộng có thể có lỗi

tay của tôi calc cho 'x * 2 + 5 * x + 6 = 0 '* là ' x = -2' & 'x = -3'. (Đơn giản)

Nhưng mã của tôi chỉ cho tôi câu trả lời sai: mảng ([- 0,5, -,33333333]) (nghịch đảo?)

thể bất cứ ai hãy tìm thủ phạm trong mã của tôi? Hay đơn giản là một lỗi?

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

flebool về cơ bản là chính xác. Dường như họ đảo ngược thứ tự cho mô-đun 'đa thức' mới. Thứ tự trong module cũ 'poly1d' trong Numpy cũng giống như thứ tự trong Matlab. Cảm ơn một lần nữa, flebool. –

Trả lời

10

Đơn giản chỉ cần vượt qua nó theo thứ tự khác,

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

Bạn có thể đã nhận ra những điều khoản này nếu bạn đã xác định rằng, đối với một đa thức P sỹ n, R(x) = x^n P(1/x) bằng với phiên bản đảo ngược của P. Vì vậy, ngoại trừ 0, gốc của R là các đối ứng của các gốc của P.

+0

Có lẽ không có lý do gì cho tiếng ngáy ở đây ... – Tgsmith61591

Các vấn đề liên quan