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

选项:
——-
dispbool

设置为 True 以打印收敛消息。

maxiterint

执行的最大迭代次数。

gtol浮点

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

norm浮点

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

eps浮点或ndarray

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

return_all布尔值,可选

设为 True 可在每个迭代中返回最佳解决方案列表。

finite_diff_rel_step无或array_like,可选

如果jac in [‘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_inv0无或ndarray,可选

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

注释

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

如果最小化未成功完成,并且出现错误消息 Desired error not necessarily achieved due to precision loss,那么考虑将 gtol 设置为较高的值。当(有限差分)数值微分不能提供足以满足 gtol 终止准则的精度时,通常会发生这种精度损失。当使用单精度工作并且未提供可调用 jac 时,可能会发生这种情况。对于单精度问题,gtol 为 1e-3 似乎有用。