二次规划问题概要二次规划是指具有二次型数值的最优化问题。
一般表达
二次型表示二次的向量,优化是我们平时说的求极大值和极小值的问题。
也就是说,h为对角矩阵时,该式最会成为fzdcdq的问题
H x 2 f T x Hx^2 f^Tx Hx2 fTx
h表示黑森矩阵(Hessian矩阵)
h对优化结果也有非常重要的影响:
当黑森矩阵半正定时,该二次规划为凸二次规划,存在全局最优解; 如果黑森矩阵被归一化,则该二次规划中存在全局唯一最优解; 如果黑森矩阵是非正定的,则该二次规划为非凸二次规划,存在多个稳态点和局部极小值点。 min :5 hx2f xmin :0.5 * h * x ^ 2f * xmin :0.5 hx2fx
但是现实世界的问题多是多维向量
matlab二次规划问题箱概要matlab中有二次规划的工具箱函数,使用方便。
quadprog是二次规划函数,但optimoptions可以详细设置quadprog。
首先,让我们看一下主要的四足动物函数
此函数的参数如下图公式所述
x0是优化计算的起点
option是高级控件,该高级控件由optimoptions函数创建。
option设置optimoption返回的优化句柄。
SolverName: matlab包含许多优化函数,例如fmincon、quadprog和fminimax,但optimoption返回的句柄必须指示正在使用的是哪个优化函数,因此此参数
Name Value :对应的设定项目和设定值。
不同的优化函数有不同的设置,查询方法在matlab optimoption函数中介绍的输入参数-名称-值对组参数中
打开quadprog中的相应设置,即可了解如何设置相应的设置。
简单代码options=optimoptions('quadProg ',' Algorithm ',' active-set ' ); x0=zeros (NC * nu1,1 ); Elta_u=quadProg(h,g,A_cons,b_cons,[],lb,ub,x0,options ); C语言生成注意事项要部署到嵌入式设备中,所有设备必须支持双精度计算。 problem参数不可用稀疏矩阵optimoptions的Algorithm参数必须为active-set