位置: IT常识 - 正文
推荐整理分享【MPC】①二次规划问题MATLAB求解器quadprog(二次规划是什么意思),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:二次规划是什么意思,二次规划是什么意思,二次凸规划,二次型规范型是什么,二次规划是什么意思,二次凸规划,二次规则是什么意思,二次规则是什么意思,内容如对您有帮助,希望把文章链接给更多的朋友!
二次规划是指约束为线性的二次优化问题。在Matlab中,quadprog是具有线性约束的二次目标函数求解器。
(一)二次规划标准形式minx12xTHx+fTx\mathop {\min }\limits_x \frac{1}{2}{{\bf{x}}^{\bf{T}}}{\bf{Hx}} + {{\bf{f}}^{\bf{T}}}{\bf{x}}xmin21xTHx+fTx 其实H是Hessian 阵,是n乘n的对称阵。
1、海森矩阵的正定性与函数最优性
如果 Hessian 矩阵是半正定的,则我们说该式是一个凸二次规划,在这种情况下该问题的困难程度类似于线性规划。如果有至少一个向量满足约束并且在 可行域 有下界,则凸二次规划问题就有一个全局最小值。如果是正定的,则这类二次规划为严格的凸二次规划,那么全局最小值就是唯一的。如果是一个 不定矩阵 ,则为非凸二次规划,这类二次规划更有挑战性,因为它们有多个平稳点和局部极小值点。2、基本数学概念
基础概念:https://blog.csdn.net/jbb0523/article/details/50598523凸 严格凸,举例:https://zhuanlan.zhihu.com/p/3995495643、对称阵的正定性判断
正定矩阵:矩阵的所有特征值均大于0半正定矩阵:矩阵的所有特征值均非负负定矩阵:矩阵所有特征值均小于0https://blog.csdn.net/Infinity_07/article/details/109569450
4、matlab正、半正、负定阵生成,与quadprog验证 (1)matlab判断正定性:
% 判断矩阵m是正定、半正定还是负定m = [2 -1; -1 2]; if issymmetric(m) % 检查矩阵是否对称 % disp('矩阵对称'); d = eig(m); % 计算矩阵特征值 if all(d > 0) disp('矩阵正定'); elseif all(d >= 0) disp('矩阵半正定'); else disp('矩阵负定'); endelse disp('矩阵不对称');end(2)matlab产生正定阵的操作
https://blog.csdn.net/zhao523520704/article/details/52918376/
H_posi=diag([1,2,3]);H_semi=diag([0,2,3]);H_nega=diag([-1,-2,-3]);(二)输入参数符号参数含义H二次目标矩阵f线性目标向量A线性不等式矩阵b线性不等式向量Aeq线性等式约束矩阵beq线性等式约束向量lb下界ub上界(三)输出参数符号参数含义x解,以实数向量形式返回wsout解的热启动对象fval再解处的目标函数值exitflagquadprog停止的原因output有关优化过程的信息,以结构体形式返回lambda解处的拉格朗日乘数二、MATLAB基础语法x = quadprog(H,f)x = quadprog(H,f,A,b)x = quadprog(H,f,A,b,Aeq,beq)x = quadprog(H,f,A,b,Aeq,beq,lb,ub)x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0)x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)x = quadprog(problem)[x,fval] = quadprog(___)[x,fval,exitflag,output] = quadprog(___)[x,fval,exitflag,output,lambda] = quadprog(___)[wsout,fval,exitflag,output,lambda] = quadprog(H,f,A,b,Aeq,beq,lb,ub,ws)三、MATLAB典型求解样例(一)具有线性不等式约束的二次规划H = [1 -1; -1 2];f = [-2; -6];A = [1 1; -1 2; 2 1];b = [2; 2; 3];[x,fval,exitflag,output,lambda] = quadprog(H,f,A,b);x = 0.6667 1.3333 fval = -8.2222 exitflag = 1
(二)具有线性等式约束的二次规划H = [1 -1; -1 2];f = [-2; -6];Aeq = [1 1];beq = 0;[x,fval,exitflag,output,lambda] = ... quadprog(H,f,[],[],Aeq,beq)x = -0.8000 0.8000 fval = -1.6000 exitflag = 1
(三)具有线性约束和边界的二次规划H = [1,-1,1 -1,2,-2 1,-2,4];f = [2;-3;1];lb = zeros(3,1);ub = ones(size(lb));Aeq = ones(1,3);beq = 1/2;x = quadprog(H,f,[],[],Aeq,beq,lb,ub);上一篇:Win7纯净版系统电脑屏幕不能全屏显示的解决方法(win7纯净版系统激活)
下一篇:雄性和雌性的匹诺曹蜥蜴,厄瓜多尔明多 (© James Christensen/Minden Pictures)(雄性和雌性的匹配)
友情链接: 武汉网站建设