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

要执行的最大迭代次数。

gtolfloat

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

normfloat

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

epsfloat 或 ndarray

如果 jac is None,则使用绝对步长通过前向差分来数值逼近雅可比矩阵。

return_allbool, 可选

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

finite_diff_rel_stepNone 或 array_like, 可选

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

xrtolfloat,默认值:0

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

c1float,默认值:1e-4

Armijo 条件规则的参数。

c2float,默认值:0.9

曲率条件规则的参数。

hess_inv0None 或 ndarray,可选

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

注意

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

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