它通常是一項容易的任務與numpy的建立一個n階多項式 並找到根:numpy.poly1d,求根優化,上移多項式x軸
import numpy
f = numpy.poly1d([1,2,3])
print numpy.roots(f)
array([-1.+1.41421356j, -1.-1.41421356j])
然而,假設你想要類型的多項式:
f(x) = a*(x-x0)**0 + b(x-x0)**1 + ... + n(x-x0)**n
有沒有一種簡單的方法來構建一個numpy.poly1d型功能 並找到根源是什麼?我試過scipy.fsolve,但它非常不穩定,因爲它在很大程度上取決於我在特定情況下的起始值 的選擇。
預先感謝 問候 rrrak
編輯:更改 「多邊形」(錯誤),以 「多項式」(正確)
這聽起來很好的解決方案,以降低多項式,但爲什麼不能簡單:'總和([np.poly1d([1,-x0 ])** i * c爲i,(c,x0)枚舉(zip(ks,offset))])' – dashesy