我想使用numpy.polyfit
进行物理计算,因此我需要误差的大小。
最佳答案
如果您在对 full=True
的调用中指定polyfit
,则它将包含其他信息:
>>> x = np.arange(100)
>>> y = x**2 + 3*x + 5 + np.random.rand(100)
>>> np.polyfit(x, y, 2)
array([ 0.99995888, 3.00221219, 5.56776641])
>>> np.polyfit(x, y, 2, full=True)
(array([ 0.99995888, 3.00221219, 5.56776641]), # coefficients
array([ 7.19260721]), # residuals
3, # rank
array([ 11.87708199, 3.5299267 , 0.52876389]), # singular values
2.2204460492503131e-14) # conditioning threshold
返回的残差值是拟合误差的平方和,不确定是否是您要得到的结果:
>>> np.sum((np.polyval(np.polyfit(x, y, 2), x) - y)**2)
7.1926072073491056
在1.7版中,还有一个
cov
关键字,它将返回系数的协方差矩阵,您可以用它来计算拟合系数本身的不确定性。关于python - numpy.polyfit有什么错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15721053/