最小化(方法=’L-BFGS-B’)#
- scipy.optimize.minimize(fun, x0, args=(), method=None, jac=None, hess=None, hessp=None, bounds=None, constraints=(), tol=None, callback=None, options=None)
使用 L-BFGS-B 算法最小化一个或多个变量的标量函数。
另请参见
有关其他参数的文档,请参见
scipy.optimize.minimize
- 选项:
- ——-
- dispNone 或整数
如果 disp 为 None(默认值),则将使用 iprint 提供的版本。如果 disp 不为 None,则它将使用您概述的行为覆盖 iprint 提供的版本。
- maxcorint
用于定义限制的内存矩阵的可变度量校正的最大数量。(受限内存 BFGS 方法不存储完整的黑塞矩阵,而是将其中的很多项用在对此矩阵的近似中。)
- ftolfloat
迭代在
(f^k - f^{k+1})/max{|f^k|,|f^{k+1}|,1} <= ftol
时停止。- gtolfloat
迭代在
max{|proj g_i | i = 1, ..., n} <= gtol
时停止,其中proj g_i
是投影梯度的第 i 个分量。- epsfloat 或 ndarray
如果 jac 为 None,则用于通过正向差分以数值方式近似雅各比矩阵的绝对步长。
- maxfunint
函数评估的最大数量。请注意,此函数可能会因为通过数值差分评估梯度而违反此限制。
- maxiterint
最大迭代次数。
- iprintint,可选
控制输出的频率。
iprint < 0
表示无输出;iprint = 0
表示仅在最后一次迭代时打印一行;0 < iprint < 99
表示在每次 iprint 次迭代时打印 f 和|proj g|
;iprint = 99
表示打印每次迭代(除了 n 向量)的详细情况;iprint = 100
表示打印激活集的更改以及最终的 x;iprint > 100
表示打印每次迭代(包括 x 和 g)的详细情况。- maxlsint,可选
最大行搜索步骤数(每次迭代)。默认值为 20。
- finite_diff_rel_step无或 array_like,可选
如果 jac in [‘2-point’, ‘3-point’, ‘cs’] 为用于雅各比数字逼近的相对步长。绝对步长计算为
h = rel_step * sign(x) * max(1, abs(x))
,可能会进行调整以适应边界。对于method='3-point'
,将忽略 h 的符号。如果为 None(默认),则自动选择步长。
备注
选项 ftol 通过
scipy.optimize.minimize
接口公开,但直接调用scipy.optimize.fmin_l_bfgs_b
将直接公开 factr。两者之间的关系为ftol = factr * numpy.finfo(float).eps
。也就是说,factr 乘以默认机器浮点精度,从而得到 ftol。