fmin_slsqp#
- scipy.optimize.fmin_slsqp(func, x0, eqcons=(), f_eqcons=None, ieqcons=(), f_ieqcons=None, bounds=(), fprime=None, fprime_eqcons=None, fprime_ieqcons=None, args=(), iter=100, acc=1e-06, iprint=1, disp=None, full_output=0, epsilon=np.float64(1.4901161193847656e-08), callback=None)[source]#
使用序列最小二乘规划最小化函数
SLSQP 优化子程序的 Python 接口函数,最初由 Dieter Kraft 实现。
- 参数:
- funccallable f(x,*args)
目标函数。必须返回一个标量。
- x01-D ndarray of float
自变量的初始猜测。
- eqcons列表, 可选
一个长度为 n 的函数列表,使得在成功优化的问题中 eqcons[j](x,*args) == 0.0。
- f_eqconscallable f(x,*args), 可选
返回一个 1-D 数组,其中每个元素在成功优化的问题中必须等于 0.0。如果指定了 f_eqcons,则 eqcons 将被忽略。
- ieqcons列表, 可选
一个长度为 n 的函数列表,使得在成功优化的问题中 ieqcons[j](x,*args) >= 0.0。
- f_ieqconscallable f(x,*args), 可选
返回一个 1-D ndarray,其中每个元素在成功优化的问题中必须大于或等于 0.0。如果指定了 f_ieqcons,则 ieqcons 将被忽略。
- bounds列表, 可选
一个元组列表,指定每个自变量的下限和上限,例如 [(xl0, xu0),(xl1, xu1),…]。无穷大值将被解释为大的浮点值。
- fprimecallable
f(x,*args)
, 可选 一个评估 func 偏导数的函数。
- fprime_eqconscallable
f(x,*args)
, 可选 一个形式为
f(x, *args)
的函数,返回 m 行 n 列的等式约束法线数组。如果未提供,法线将被近似计算。fprime_eqcons 返回的数组大小应为 ( len(eqcons), len(x0) )。- fprime_ieqconscallable
f(x,*args)
, 可选 一个形式为
f(x, *args)
的函数,返回 m 行 n 列的不等式约束法线数组。如果未提供,法线将被近似计算。fprime_ieqcons 返回的数组大小应为 ( len(ieqcons), len(x0) )。- args序列, 可选
传递给 func 和 fprime 的额外参数。
- iter整数, 可选
最大迭代次数。
- acc浮点数, 可选
请求的精度。
- iprint整数, 可选
fmin_slsqp 的详细程度
iprint <= 0 : 静默操作
iprint == 1 : 完成时打印摘要(默认)
iprint >= 2 : 打印每次迭代的状态和摘要
- disp整数, 可选
覆盖 iprint 接口(推荐)。
- full_output布尔值, 可选
如果为 False,仅返回 func 的最小值(默认)。否则,输出最终目标函数和摘要信息。
- epsilon浮点数, 可选
有限差分导数估计的步长。
- callback可调用, 可选
在每次迭代后调用,形式为
callback(x)
,其中x
是当前参数向量。
- 返回:
- outndarray of float
func 的最终最小值。
- fxndarray of float, 如果 full_output 为真
目标函数的最终值。
- its整数, 如果 full_output 为真
迭代次数。
- imode整数, 如果 full_output 为真
优化器的退出模式(见下文)。
- smode字符串, 如果 full_output 为真
描述优化器退出模式的消息。
另请参阅
minimize
多元函数最小化算法的接口。特别是查看“SLSQP”方法。
备注
退出模式定义如下
-1
: 需要梯度评估 (g & a)0
: 优化成功终止1
: 需要函数评估 (f & c)2
: 等式约束多于自变量3
: LSQ 子问题中迭代次数超过 3*n4
: 不等式约束不兼容5
: LSQ 子问题中的奇异矩阵 E6
: LSQ 子问题中的奇异矩阵 C7
: HFTI 中秩亏的等式约束子问题8
: 线搜索的正向导数9
: 达到迭代限制
示例
示例在 教程中给出。