我的理解是,在对minimize
的方法调用中,tol
表示完成优化所需的代价函数中的最小差值(即,fun
(方法调用中的第一个参数)返回的任何值的差值)。
scipy.optimize.minimize(fun, x0, args=(),
method=None, jac=None, hess=None, hessp=None, bounds=None, constraints=(),
tol=None, callback=None, options=None)
然而,我显然错了,因为当我设置tol = 1E-3
,并在每次迭代时打印fun
的值时,我看到了以下内容:
0.3078
0.3074
...
tol
代表什么?
特定的优化算法还具有另一个称为xtol
的参数,其为
xtol:float收敛可接受的解xopt中的平均相对误差。
例如,请参见:
http://docs.scipy.org/doc/scipy/reference/optimize.minimize-newtoncg.html#minimize-method-newton-cg
那么xtol
和tol
代表什么呢?它们有什么区别呢?
1条答案
按热度按时间mzaanser1#
很晚了,但放弃了一个答案,希望它能帮助别人以后。
在任何优化调用过程中,都可以定义(控制)多个公差。Tol、ftol、xtol、catol和其他多个公差。通常,您可以从这些变量中推断出以下内容:
根据您正在解决的问题和所涉及的目标/约束条件,每个问题都有其重要性。