【发布时间】:2020-07-22 01:19:20
【问题描述】:
我正在使用 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:进一步的实验表明,如果系统无法识别,则存在差异,这意味着第一次最小化调用似乎没有将其拟合参数传递给第二次最小化调用。
【问题讨论】: