minimize(method=’BFGS’)#

scipy.optimize.minimize(fun, x0, args=(), method=None, jac=None, hess=None, hessp=None, bounds=None, constraints=(), tol=None, callback=None, options=None)

使用 BFGS 算法对一个或多个变量的标量函数进行最小化。

另请参阅

有关其余参数的文档,请参阅 scipy.optimize.minimize

选项:
——-
disp布尔值

设为 True 以打印收敛消息。

maxiter整型

要执行的最大迭代次数。

gtol浮点型

如果梯度范数小于 gtol 则成功终止。

norm浮点型

范数阶数 (Inf 为最大值, -Inf 为最小值)。

eps浮点型 或 ndarray

如果 jac 为 None,则通过前向差分法对雅可比矩阵进行数值近似的绝对步长。

return_all布尔值, 可选

设为 True 以返回每次迭代中最佳解决方案的列表。

finite_diff_rel_stepNone 或 array_like, 可选

如果 jac ['2-point', '3-point', 'cs'] 中,则用于雅可比矩阵数值近似的相对步长。绝对步长计算为 h = rel_step * sign(x) * max(1, abs(x)),可能会调整以适应边界。对于 jac='3-point'h 的符号被忽略。如果为 None (默认),则自动选择步长。

xrtol浮点型, 默认值: 0

x 的相对容差。如果步长小于 xk * xrtol 则成功终止,其中 xk 是当前参数向量。

c1浮点型, 默认值: 1e-4

Armijo 条件规则的参数。

c2浮点型, 默认值: 0.9

曲率条件规则的参数。

hess_inv0None 或 ndarray, 可选

初始逆海森矩阵估计,形状为 (n, n)。如果为 None (默认),则使用单位矩阵。

workers整型, 类 map 可调用对象, 可选

一个类 map 可调用对象,例如 multiprocessing.Pool.map,用于并行评估任何数值微分。此评估以 workers(fun, iterable) 的形式执行。

1.16.0 版本新增。

备注

参数 c1c2 必须满足 0 < c1 < c2 < 1

如果最小化未能成功完成,并出现错误消息 Desired error not necessarily achieved due to precision loss(由于精度损失未能达到所需误差),则考虑将 gtol 设置为更高值。这种精度损失通常发生在(有限差分)数值微分无法提供足够的精度来满足 gtol 终止条件时。这可能发生在单精度运算且未提供可调用雅可比矩阵的情况下。对于单精度问题,gtol 为 1e-3 似乎有效。