python下拟合时选择步长

Sté*_*ane 3 python data-fitting lmfit

如您所知,python 中的 lmfit 模块可以方便地扩展 scipy.optimize 函数的功能。

然而,我没有发现在我看来必要的东西:选择步长的可能性(用于偏导、参数空间中 chi2 的计算等......)。我曾经在 IDL 下安装时玩过这些步骤,我很惊讶我在 python 下没有找到这个。

很明显,默认的步长非常小,在拟合粗略模型时可能会导致恒定的 chi2……因此很尴尬。

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

M N*_*lle 5

lmfit 的最小化器可以包装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)
Run Code Online (Sandbox Code Playgroud)

如需更详细的答案,请提出更详细的问题。