在python下安装时选择步长

时间:2018-05-25 10:47:54

标签: python data-fitting lmfit

您可能知道,python中的lmfit模块可以方便地扩展scipy的功能。优化功能。

但是我找不到我认为必要的东西:选择步长的可能性(用于部分推导,计算参数空间中的chi2等)。我习惯在IDL下使用时的步骤,我很惊讶我没有在python下找到它。

很明显,默认步骤非常小,在拟合粗糙模型时可能会导致chi2不变......因此很难。

所以我的问题:如何选择在python下拟合时的步骤?

1 个答案:

答案 0 :(得分:1)

lmfit的minimizer可以包装来自scipy.optimize的几个优化器。不幸的是,各种求解器的界面并不是非常统一,特别是对于步长,公差和停止条件等选项。这部分是因为算法实际上是不同的,部分是因为scipy.optimize本身包含了很多旧的代码。

也就是说,lmfit的默认求解器是scipy.optimize.leastsq或MINPACK-1,它非常类似于(非常好的,我记得)IDL的MPFIT包。与这些代码一样,您可以使用epsfcn指定用于计算偏导数的初始步骤。

用lmfit来做这件事取决于你如何使用lmfit。一种方法是

result = lmfit.minimize(objective_function, params, args=(x, data),
                        epsfcn=0.001)

如需更详细的解答,请提供更详细的问题。