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
- 选项:
- ——-
- disp无或整数
此选项已弃用,此前用于控制问题解决期间屏幕上打印的文本。现在代码不输出任何内容,此关键字已无功能。
自 1.15.0 版起已弃用:此关键字已弃用,并将从 SciPy 1.18.0 中移除。
- maxcor整数
用于定义有限内存矩阵的变量度量校正的最大数量。(有限内存 BFGS 方法不存储完整的 Hessian,而是使用这些项进行近似。)
- ftol浮点数
当满足以下条件时,迭代停止:
(f^k - f^{k+1})/max{|f^k|,|f^{k+1}|,1} <= ftol
。- gtol浮点数
当满足以下条件时,迭代将停止:
max{|proj g_i | i = 1, ..., n} <= gtol
,其中proj g_i
是投影梯度的第 i 个分量。- eps浮点数或 ndarray
如果 jac 为 None,则此为用于通过前向差分对雅可比矩阵进行数值近似的绝对步长。
- maxfun整数
在最小化终止之前函数评估的最大次数。请注意,如果梯度是通过数值微分评估的,此函数可能会超出此限制。
- maxiter整数
算法迭代的最大次数。
- iprint整数,可选
此选项已弃用,此前用于控制问题解决期间屏幕上打印的文本。现在代码不输出任何内容,此关键字已无功能。
自 1.15.0 版起已弃用:此关键字已弃用,并将从 SciPy 1.18.0 中移除。
- maxls整数,可选
线搜索步骤的最大数量(每次迭代)。默认为 20。
- finite_diff_rel_step无或类数组,可选
如果
jac in ['2-point', '3-point', 'cs']
,则此为用于对雅可比矩阵进行数值近似的相对步长。绝对步长计算为h = rel_step * sign(x) * max(1, abs(x))
,可能会根据边界进行调整。对于method='3-point'
,h 的符号将被忽略。如果为 None(默认),则自动选择步长。- workers整数,类映射可调用对象,可选
一个类映射可调用对象,例如 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
中。