最小化(方法=‘L-BFGS-B’)

scipy.optimize.minimize(fun, x0, args=(), method='L-BFGS-B', jac=None, bounds=None, tol=None, callback=None, options={'disp': None, 'maxcor': 10, 'ftol': 2.220446049250313e-09, 'gtol': 1e-05, 'eps': 1e-08, 'maxfun': 15000, 'maxiter': 15000, 'iprint': - 1, 'maxls': 20, 'finite_diff_rel_step': None})

使用L-BFGS-B算法最小化一个或多个变量的标量函数。

参见

有关参数睡觉的文档,请参阅 scipy.optimize.minimize

选项
disp无或整型

如果 disp is None (默认值),然后是提供的版本 iprint 是使用的。如果 disp is not None ,则它将覆盖提供的版本 iprint 与你勾勒出的行为相吻合。

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 哪里 pg_i 是投影渐变的第i个分量。

eps浮动或ndarray

如果 jac is None 用于通过向前差分数值逼近雅可比的绝对步长。

maxfun集成

函数求值的最大次数。

maxiter集成

最大迭代次数。

iprint整型,可选

控制输出的频率。 iprint < 0 表示无输出; iprint = 0 最后一次迭代只打印一行; 0 < iprint < 99 同时打印f和 |proj g| 每次iPrint迭代; iprint = 99 打印除n向量外的每个迭代的详细信息; iprint = 100 同时打印活动集和最终x的变化; iprint > 100 打印每个迭代的详细信息,包括x和g。

callback可调用,可选

在每次迭代后调用,如 callback(xk) ,在哪里 xk 是当前参数向量。

maxls整型,可选

最大行搜索步数(每次迭代)。默认值为20。

finite_diff_rel_stepNONE或ARRAY_LIKE,可选

如果 jac in ['2-point', '3-point', 'cs'] 用于数值逼近雅可比的相对步长。绝对步长的计算公式为 h = rel_step * sign(x0) * max(1, abs(x0)) ,可能会进行调整以适应边界。为 method='3-point' ……的记号 h 被忽略。如果无(默认),则自动选择步骤。

注意事项

该选项 ftol 是通过 scipy.optimize.minimize 接口,但调用 scipy.optimize.fmin_l_bfgs_b 直接暴露在 factr 。两者之间的关系是 ftol = factr * numpy.finfo(float).eps 。即, factr 乘以默认的计算机浮点精度以得出 ftol