我希望在数据集 (X,Y,Yerr) 上执行最小二乘多项式拟合并获得拟合参数的协方差矩阵。由于我有许多数据集,所以 CPU 时间是一个问题,因此我正在寻求解析(=快速)解决方案。我找到了以下(非理想)选项:
Python 提供了一个返回拟合参数协方差的解析多项式拟合程序吗(或者我必须自己编写)?
更新: 似乎在 Numpy 1.7.0 中,
numpy.polyfit
进行拟合,但不考虑误差 Yerr,也不返回协方差;
numpy.polynomial.polynomial.polyfit
接受 Yerr 作为输入(以权重形式),但也不返回协方差;
scipy.optimize.curve_fit
和scipy.optimize.leastsq
可以定制拟合多项式并返回协方差矩阵,但由于它们是迭代方法,因此比 polyfit
例程慢得多(这会产生解析解);Python 提供了一个返回拟合参数协方差的解析多项式拟合程序吗(或者我必须自己编写)?
更新: 似乎在 Numpy 1.7.0 中,
numpy.polyfit
现在不仅接受权重,而且还返回系数的协方差矩阵... 因此,问题已解决! :-)