当前位置:网站首页>[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);
边栏推荐
- CodeBlocks 左侧项目栏消失,workspace 自动保存项目,Default workspace,打开上次的workspace,工作区(图文教程,已解决)
- 超标量处理器设计 姚永斌 第4章 分支预测 --4.1 小节摘录
- 怎么理解JS Promise
- About database: how to avoid deadlock in gbase 8s
- SQLAchemy 常用操作
- CCNP Part XII BGP (IV)
- Button button clear border
- How to solve the problem of SQL?
- [dark horse morning post] Yu Minhong said he never looked at the stock price of New Oriental; Hengchi 5 will start pre-sale in July; Naixue virtual stock or suspected of illegal fund-raising; From Jul
- 106. construct binary tree from middle order and post order traversal sequence
猜你喜欢
Wireshark TS | 快速重传和乱序之混淆
JD and Tencent renewed the three-year strategic cooperation agreement; The starting salary rose to 260000 yuan! Samsung sk of South Korea competes for salary increase to retain semiconductor talents;
SQLAchemy 常用操作
Lack of comparator, operational amplifier to save the field! (the op amp is recorded as a comparator circuit)
CRC 校驗
Floyd repeat
建议收藏 | 在openGauss上遇到慢SQL该怎么办?
Introduction of uniapp wechat applet components on demand
预制菜迎来“黄金时代”,谁能领跑下一个万亿市场
Simulink simulation circuit model of open loop buck buck buck chopper circuit based on MATLAB
随机推荐
Is it safe to do fund fixed investment on CICC securities?
New situation of digital collection market
CCNP Part XII BGP (IV)
关于#数据库#的问题:GBase 8s中如何避免死锁
大佬们 有没有搞过sink分流写入clickhouse 或者其他数据库的操作。
Change password of MySQL version 5.7 and 8.0
持续进阶,软通动力稳步推动云智能战略
C# 一行代码计算文件的MD5值 - CodePlus系列
《百年巨匠》数字藏品中奖名单公布
Have you learned the necessary global exception handler for the project
Programmers want to go to state-owned enterprises? The technology is backward and the salary is low. I can't find a job after lying flat for several years
有大佬知道这是为啥吗?表结构都是刚直接复制的源表 mysql-cdc
Can MySQL CDC take out the op field
推荐一款 JSON 可视化工具神器!
谁还在买“三只松鼠”们
SQL server2014 failed to delete the database, with an error offset of 0x0000
mysql截取_mysql截取字符串的方法[通俗易懂]
JD and Tencent renewed the three-year strategic cooperation agreement; The starting salary rose to 260000 yuan! Samsung sk of South Korea competes for salary increase to retain semiconductor talents;
What is cloud primordial? Will it be the trend of future development?
It is interesting to understand MMAP in this way!