容忍终止

时间:2017-07-11 12:50:45

标签: python optimization scipy minimize

例如,此页面(http://docs.scipy.org/doc/scipy/reference/optimize.minimize-lbfgsb.html)描述了可以传递给L-BFGS-B'的解算器选项。 scipy优化包的方法。我试图为某些方法(L-BFGS-B,Nelder-Mead,TNC)设置求解器出口容差。

我放'tol':0.001但我不明白为什么解算器会停止与error = 0.49收敛。

我认为容差是我的函数返回和容差值之间的差异。所以对我来说,如果误差低于0.001,求解器必须收敛,但对于error = 0.49则不能!

如何设置收敛容差?使用特定选项,例如gtolftol

非常感谢!

1 个答案:

答案 0 :(得分:0)

这是我的代码:

P = minimize(Run_job_mini, [float(0.7),float(0.25), float(0.4)], args=('KM3.inp'), method="L-BFGS-B", tol = 0.001, bounds = bnds, options={'disp': True, 'ftol': 1e-7, 'gtol': 1e-3,'eps': 0.1})

其中Run_job_mini是运行Abaqus并返回Error的函数,其设置为Error = 0为目标。

效果很好,没有错误消息。但我不明白为什么脚本会以Error = 0.49停止。 tol的含义是什么?我认为脚本必须以Error < tol

停止