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

10-12 16:39