【问题标题】:Tolerance for termination终止公差
【发布时间】:2017-12-15 13:13:52
【问题描述】:

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

我输入了'tol':0.001,但我不明白为什么求解器会停止与error = 0.49 的收敛。

我假设公差是我的函数的返回值和公差值之间的差异。所以对我来说,如果误差小于 0.001,求解器必须收敛,但对于 error = 0.49!

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

非常感谢!

【问题讨论】:

  • 你的代码在哪里?
  • 准确的错误信息可能也会有所帮助。

标签: python optimization scipy minimize


【解决方案1】:

这是我的代码:

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 停止

【讨论】:

    猜你喜欢
    • 2021-03-28
    • 2019-07-19
    • 1970-01-01
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    相关资源
    最近更新 更多