当前位置:网站首页>[MPC] ① quadratic programming problem matlab solver quadprog
[MPC] ① quadratic programming problem matlab solver quadprog
2022-07-01 10:21:00 【Houchang Village Road caixukun】
List of articles
One 、 summary
Quadratic programming is a quadratic optimization problem with linear constraints . stay Matlab in ,quadprog It is a quadratic objective function solver with linear constraints .
( One ) Standard form of secondary Planning
min x 1 2 x T H x + f T x \mathop {\min }\limits_x \frac{1}{2}{ {\bf{x}}^{\bf{T}}}{\bf{Hx}} + { {\bf{f}}^{\bf{T}}}{\bf{x}} xmin21xTHx+fTx
Actually H yes Hessian front , yes n ride n Symmetric matrix of .
1、 Positive definiteness and function optimality of Hessian matrix
- If Hessian The matrix is positive semidefinite , Then we say that the formula is a convex quadratic programming , In this case, the difficulty of the problem is similar to that of linear programming . If at least one vector satisfies the constraint and The feasible region There is a lower bound , Then the convex quadratic programming problem has a global minimum .
- If it is positive definite , Then this kind of quadratic programming is strictly convex quadratic programming , Then the global minimum is unique .
- If it's a Indefinite matrix , Is a nonconvex quadratic programming , This kind of secondary planning is more challenging , Because they have multiple stationary points and local minimum points .
2、 Basic mathematical concepts
- Basic concepts :https://blog.csdn.net/jbb0523/article/details/50598523
- Convex Strictly convex , give an example :https://zhuanlan.zhihu.com/p/399549564
3、 On the positive definiteness of symmetric matrices
- Positive definite matrix : All eigenvalues of the matrix are greater than 0
- Positive semidefinite matrices : All eigenvalues of the matrix are non negative
- Negative definite matrix : All eigenvalues of the matrix are less than 0
https://blog.csdn.net/Infinity_07/article/details/109569450

4、matlab just 、 Half positive 、 Negative definite matrix generation , And quadprog verification
(1)matlab Judge positive qualitative :
% Judgment matrix m It's positive definite 、 Semi positive definite or negative definite
m = [2 -1; -1 2];
if issymmetric(m) % Check whether the matrix is symmetrical
% disp(' Matrix symmetry ');
d = eig(m); % Calculate the eigenvalue of the matrix
if all(d > 0)
disp(' The matrix is positive definite ');
elseif all(d >= 0)
disp(' Matrix positive semidefinite ');
else
disp(' Matrix negative definite ');
end
else
disp(' Matrix asymmetry ');
end
(2)matlab Operation of generating positive definite matrix
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]);
( Two ) Input parameters
| Symbol | Parameter meaning |
|---|---|
| H | Quadratic objective matrix |
| f | Linear objective vector |
| A | Linear inequality matrix |
| b | Linear inequality vector |
| Aeq | Linear equality constraint matrix |
| beq | Linear equality constraint vector |
| lb | Lower bound |
| ub | upper bound |
( 3、 ... and ) Output parameters
| Symbol | Parameter meaning |
|---|---|
| x | Explain , Returns... As a vector of real numbers |
| wsout | Hot start object of solution |
| fval | The value of the objective function at the re solution |
| exitflag | quadprog The reason for the stop |
| output | Information about the optimization process , Returns... As a structure |
| lambda | Lagrange multiplier at the solution |
Two 、MATLAB Basic grammar
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)
3、 ... and 、MATLAB Typical solution examples
( One ) Quadratic programming with linear inequality constraints

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
( Two ) Quadratic programming with linear equality constraints

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
( 3、 ... and ) Quadratic programming with linear constraints and boundaries

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);
边栏推荐
- 零基础入行软件测试必看,10年测试老鸟的良心建议(共15条)
- 在通达信上买基金安全吗?
- What legal risks and qualifications should be paid attention to when building a digital collection platform?
- 大佬们,数据湖iceberg的数据,怎样导出到mysql? 有什么工具? sqoop,datax都没
- SQLAchemy 常用操作
- How to solve the problem of SQL?
- IDEA运行报错Command line is too long. Shorten command line for...
- TC8:UDP_USER_INTERFACE_01-08
- 持续进阶,软通动力稳步推动云智能战略
- Hardware midrange project
猜你喜欢

Wechat emoticons are written into the judgment, and the OK and bomb you send may become "testimony in court"

CRC verification

leetcode:111. Minimum depth of binary tree

SQL server2014 failed to delete the database, with an error offset of 0x0000

Simulink simulation circuit model of open loop buck buck buck chopper circuit based on MATLAB

Who's still buying three squirrels

A quietly rising domestic software, low-key and powerful!

推荐一款 JSON 可视化工具神器!

投稿开奖丨轻量应用服务器征文活动(5月)奖励公布

Introduction of uniapp wechat applet components on demand
随机推荐
Ssh server rejects password, try again; Permitrootlogin yes invalid problem
渗透常用工具-Goby
SQL Server列一相同的情况下,如何取列二的最大值,并重新生成表
程序员都想去国企?技术落后薪资低,躺平几年出来都找不到工作...
How to understand JS promise
Error: missing revert data in call exception
Superscalar processor design yaoyongbin Chapter 4 branch prediction -- Excerpt from subsection 4.1
数字藏品平台搭建需要注意哪些法律风险及资质?
【邂逅Django】——(二)数据库配置
MySQL common commands
建议收藏 | 在openGauss上遇到慢SQL该怎么办?
PHP string to binary conversion
php 实现抽奖功能
线程基础知识
在通达信上买基金安全吗?
The Lantern Festival is held on the fifteenth day of the first month, and the Lantern Festival begins to celebrate the reunion
【MPC】①二次规划问题MATLAB求解器quadprog
树莓派4B系统搭建(超详细版)
Lack of comparator, operational amplifier to save the field! (the op amp is recorded as a comparator circuit)
C# [字节数组]与[16进制字符串]互相转换 - CodePlus系列