quadprog的使用

二次规划的标准形式为:
min  f=(1/2)XTHX+fTX
约束条件:A.x=b,Aeq.x=beq,lb?x?ub
其中:c、b、beq、lb、ub、x是矢量,H、A、Aeq为矩阵。
在MATLAB中可以使用quadprog函数来求最小值。

 

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,fval]= quadprog (…)
[x,fval,exitflag]= quadprog (…)
[x,fval,exitflag,output]= quadprog (…)
[x,fval,exitflag,output,lambda]= quadprog (… )

 

其中:H,f,A,b为标准形中的参数,x为目标函数的最小值;x0为初值;Aeq,beq满足等式约束Aeq.x=beq;lb,ub满足lb?x?ub;fval为目标函数的最优值; lambda是Lagrange乘数,它体现有效约束的个数;output输出优化信息;exitflag为终止迭代的条件:若exitflag>0,表示函数收敛于解x;若exitflag=0,表示超过函数估值或迭代的最大次数;exitflag<0表示函数不收敛于解x;output为优化信息:若参数output=iterations表示迭代次数,output=funccount表示函数赋值次数,output=algorithm表示所使用的算法。

 

例3:计算下面二次规划问题
minf(x)= (1/2)x1^2+x2^2- x1x2-2x1-6x2
约束条件: x1+x2 <=?2;-x1+2x2 <=?2 ;2x1+x2 <=?3;
0?>= x1,0?>= x2

 

n解:把二次规划问题写成标准形式:(1/2)XTHX+fTX
这里:H= 1 -1     f=   -2       X= x1
                   -1   2         -6             x2
nH=[1 -1;-1 2];
f=[-2;-6];
A=[1 1;-1 2;2 1];
b=[2;2;3];
lb=zeros(2,1);
[x,fval,exitflag,output,lambda]=quadprog(H,f,A,b,[],[],lb)

转载于:https://www.cnblogs.com/deeply/archive/2012/12/27/2835629.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值