MATLAB ⼆次规划函数的使⽤以及扩展
⼆次规划问题简介⼆次规划指带有⼆次型数值的最优化问题。
⼀般表达形式
⼆次型,即代表了⼆次的向量,最优化也就是我们平常所说的求极⼤值和极⼩值的问题。也就是说,当H为对⾓矩阵时,这个表达式就会变成⼀个最⼩⼆成的问题
H代表⿊森矩阵(Hessian矩阵)⽽H对于最优化结果也有着⼗分重要的影响:⿊森矩阵是半正定的,则该⼆次规划为⼀个凸⼆次规划,存在全局最优解;⿊森矩阵是正定的,则该⼆次规划存在全局唯⼀最优解;
⿊森矩阵是⾮正定的,则该⼆次规划为⾮凸⼆次规划,存在多个平稳点和局部极⼩值点。
matlab学好了有什么用但是现实世界的问题往往是多维向量
matlab ⼆次规划问题箱简介
matlab中有着⼆次规划的⼯具箱函数,使⽤⽅便。
quadprog 为⼆次规划函数,但同时,optimoptions 可以对quadprog进⾏详细的设置。
Hx +2f x
T Min :0.5∗H ∗x +2f ∗x
我们先看主要的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*Nu+1,1);
delta_U =quadprog(H,g,A_cons,b_cons,[],[],lb,ub,x0,options);
C语⾔⽣成注意事项
若要部署到嵌⼊式设备上,所属设备必须⽀持double类型计算!!
不能使⽤problem参数
不能有稀疏矩阵
optimoptions中的Algorithm 中参数必须为active-set
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论