我使用numpy.polyfit以適合第二順序多項式到的一組數據的numpy.polyfit給出空殘差陣列
fit1, fit_err1, _, _, _ = np.polyfit(xint[:index_max], yint[:index_max], 2, full=True)
對於我的數據的一些幾個例子中,可變fit_err1
是空雖然fit是成功的,即fit1
不是空的!
有沒有人知道在這種情況下什麼是空的殘餘手段?謝謝!
編輯: 一個示例數據集:
x = [-488., -478., -473.]
y = [ 0.02080881, 0.03233648, 0.03584448]
fit1, fit_err1, _, _, _ = np.polyfit(x, y, 2, full=True)
結果:
fit1 = [ -3.00778818e-05 -2.79024663e-02 -6.43272769e+00]
fit_err1 = []
我知道,一個2階多項式擬合到一組三點是不是很有用,但後來我仍然期望函數要麼提出警告,要麼(因爲它實際上確定了適合)返回實際殘差,或者兩者都一樣(例如「這裏是殘差,但是你的條件很差!」)。
你能給出一些導致這種行爲的數據的例子嗎? – 2014-10-17 16:40:19
二階多項式可以精確地擬合三個點,所以殘差全部爲零。如果沒有殘差的唯一情況是當點的數量恰好比多項式的數量多一個時,這就是你對發生了什麼的解釋。 – Jaime 2014-10-17 18:04:33
@Jaime:好點!但是,如果擬合精確,我預計殘差比[]更0,不是嗎? – jkalden 2014-10-17 20:25:34