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