minimize(method=’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 或 int
已弃用的选项,以前用于控制求解问题期间屏幕上显示的文本。现在代码不会发出任何输出,此关键字也没有任何作用。
自 1.15.0 版本起已弃用: 此关键字已被弃用,并将在 SciPy 1.18.0 版本中移除。
- maxcorint
用于定义有限内存矩阵的最大变量度量校正次数。(有限内存 BFGS 方法不存储完整的 Hessian,而是使用此数量的项来近似它。)
- ftol浮点数
当
(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
最小化终止前的最大函数评估次数。请注意,如果梯度是通过数值微分计算的,则此函数可能会超出限制。
- maxiter整数
最大算法迭代次数。
- iprintint, optional
已弃用的选项,以前用于控制求解问题期间屏幕上显示的文本。现在代码不会发出任何输出,此关键字也没有任何作用。
自 1.15.0 版本起已弃用: 此关键字已被弃用,并将在 SciPy 1.18.0 版本中移除。
- maxlsint, optional
最大步长搜索步数(每迭代一次)。默认为 20。
- finite_diff_rel_stepNone 或 array_like, 可选
如果
jac 在 ['2-point', '3-point', 'cs']中,则用于数值逼近雅可比矩阵的相对步长。绝对步长计算为h = rel_step * sign(x) * max(1, abs(x)),可能会根据边界进行调整。对于method='3-point',h 的符号将被忽略。如果为 None(默认值),则自动选择步长。- workersint, 类 map 可调用, 可选
类 map 的可调用对象,例如 multiprocessing.Pool.map,用于并行评估数值微分。该评估以
workers(fun, iterable)的形式执行。1.16.0 版本中添加。
附注
选项 ftol 通过
scipy.optimize.minimize接口暴露,但直接调用scipy.optimize.fmin_l_bfgs_b会暴露 factr。两者之间的关系是ftol = factr * numpy.finfo(float).eps。即 factr 乘以默认的机器浮点精度来得到 ftol。如果最小化收敛缓慢,则优化器可能会在总函数评估次数超过 maxfun 或算法迭代次数达到 maxiter(以先到者为准)时停止。在这种情况下,result.success=False,并且result.message中包含相应的错误消息。