没有合适的资源?快使用搜索试试~ 我知道了~
首页Matlab线性/非线性规划优化算法(7)
介绍如何使用quadprog and mpcqpsolver. 依然是解决一类典型的二次规划问题: 通过看matlab文档中的例子可以基本了解如何使用。下面给出几个例子: quadprog: %% the use of quadprog 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) %% H = [1 -1; -1 2]; f = [-2; -6]; Aeq = [1 1]; beq
资源详情
资源评论
资源推荐

Matlab线性线性/非线性规划优化算法(非线性规划优化算法(7))
介绍如何使用quadprog and mpcqpsolver.
依然是解决一类典型的二次规划问题:
通过看matlab文档中的例子可以基本了解如何使用。下面给出几个例子:
quadprog:
%% the use of quadprog
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)
%%
H = [1 -1; -1 2];
f = [-2; -6];
Aeq = [1 1];
beq = 0;
[x,fval,exitflag,output,lambda] = ...
quadprog(H,f,[],[],Aeq,beq)
%% here you can set max iteration and tolerance
options = optimoptions('quadprog','Display','iter','MaxIterations',5,'TolFun',1e-16);
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;
x0 = [];
[x,fval,exitflag,output,lambda] = quadprog(H,f,[],[],Aeq,beq,lb,ub,x0,options)
值的注意的问题:
options = optimoptions('quadprog','Display','iter','MaxIterations',5,'TolFun',1e-16);
在优化选项中,我们可以人为设定maxiteration, tolerance这种对迭代次数产生影响的参数,这个在工程问题中是至关重要
的。
另外,通过查看exitflag, 确定是否是正确解。只有exitflag == 1才对。通过查看H的正定性,必须是正定矩阵,才能有解。通过
查看lamda,也就是拉格朗日橙子,必须不为负。
mpcqpsolver:
解决如下所示的问题,但是要注意,不等式约束采用了另一种方式,两种方式都是可以的,这种大于号写法,拉格朗日函数写
起来不好看,但是后面的对偶问题写起来好看,对应的KKT条件的表示写起来也好看,总之无论怎么写,总是一边好看,另一
边就不好看。
%% the use of mpcqpsolver to solve quadratic programming problems
H = [1 -1; -1 2];
f = [-2; -6];
A = [1 0; 0 1; -1 -1; 1 -2; -2 -1];
b = [0; 0; -2; -2; -3];Aeq = [];
beq = zeros(0,1);
[L,p] = chol(H,'lower');
Linv = inv(L);
p
opt = mpcqpsolverOptions('double');
opt.MaxIter = 100;
iA0 = false(size(b)); %If your problem has no inequality constraints, use false(0,1). For a cold start, false(m,1).
[x,status,iA,lambda] = mpcqpsolver(Linv,f,A,b,Aeq,beq,iA0,opt)
mpcsolver首先要求H 是正定的,另外options里面也没法显示迭代细节。用的是KWIK算法, 意思是算在SDP里面的一支,我
所学的SDP里面没学到这个,不是很了解KWIK, 应该不是什么主流算法吧。



















weixin_38517212
- 粉丝: 8
- 资源: 954
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- ARM Cortex-A(armV7)编程手册V4.0.pdf
- ABB机器人保养总结解析.ppt
- 【超详细图解】菜鸡如何理解双向链表的python代码实现
- 常用网络命令的使用 ipconfig ping ARP FTP Netstat Route Tftp Tracert Telnet nslookup
- 基于单片机控制的DC-DC变换电路
- RS-232接口电路的ESD保护.pdf
- linux下用time(NULL)函数和localtime()获取当前时间的方法
- Openstack用户使用手册.docx
- KUKA KR 30 hA,KR 60 hA机器人产品手册.pdf
- Java programming with JNI
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0