我使用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