我正在使用 lmfit 将一些数据拟合到两个反应系统以估计速率常数。我的数据是 x1、x2 和 x3 物种在 x1 -> x2 -> x3 中的浓度变化
在其他工具中,我通常使用全局优化器,然后使用局部优化器,这样我就可以更轻松地访问 Hessian 等。在 lmfit 中,我认为我可以做类似的事情:
minimizer = lmfit.Minimizer(self._residuals, params) result = minimizer.minimize(method='differential_evolution') result = minimizer.minimize(method='leastsqr')
我假设差分进化拟合的参数将保留在最小化对象中,并由第二个最小化函数调用自动获取。
但是,我不确定,因为我的同事另有建议。如果有人更了解 lmfit 包,那么第二个最小化是否会在第一个最小化停止的地方获取参数?
更新 1:我添加了 Minimize 调用以确保只创建一个 Minnizmize 对象。我当前的测试似乎表明参数值确实从一个最小化调用传递到另一个调用(这是我所期望的)。
更新 2:进一步的实验表明,如果系统是不可识别的,则存在差异,这意味着第一次最小化调用似乎不会将其拟合参数传递给第二个最小化调用。
慕神8447489
相关分类