《MATLAB解二次规划.docx》由会员分享,可在线阅读,更多相关《MATLAB解二次规划.docx(3页珍藏版)》请在三一文库上搜索。
1、黑龙江八一农垦大学数学建模选修课第八章MATLAB解二次非线性规划一、数学模型min 1xTHx f Tx x 2A x bAeq x beqlb x ub其中H为二次型矩阵,A、Aeq分别为不等式约束与等式约束系数矩阵,f,b,beq,lb,ub,x为向量。二、求解二次规划问题函数 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= quadprog(H,f,A,b,Aeq,b
2、eq,lb,ub,x0,options)x,fval= quadprog( )x,fval,exitflag= quadprog( )x,fval,exitflag,output= quadprog()x,fval,exitflag,output,lambda= quadprog()说明:输入参数中,x0为初始点;若无等式约束或无不等式约束,就将相应的矩阵和向量设置为空;options为指定优化参数。输出参数中,x是返回最优解;fval是返回解所对应的目标函数值;exitflag是描述搜索是否收敛;output是返回包含优化信息的结构。Lambda是返回解x入包含拉格朗日乘子的参数。三、举例例
3、1:求解:二次规划问题min f(x 1, x 2)= -2x 1-6x 2+x:-2x iX2+2x22s.t x i+X2< 2-x i+2x2< 2xi>0, x 2>0T2Xi6x2将其写成标准形式:122 Ximin f (Xi,X2)Xi,X2,224X2S.t X 1+X2W 2-x i+2x2< 2xi>0, x 2>0程序: 编写M文件mainG.m如下:H=1 -1;-1 2;f=-2;-6;3A=1 1;-1 2;b=2;2;Aeq=;beq=;lb=0;0;ub=;X,fval,exitflag=quadprog(H,f,A,b
4、,Aeq,beq,lb,ub) 结果:>> Warning: Large-scale method does not currently formulation, switching to medium-scale method.> In D:MATLAB6p5toolboxoptimquadprog.m at line 213In d:MATLAB6p5workUntitled5.m at line 7 Optimization terminated successfully.X = 0.66671.3333fval = -8.2222exitflag =1例2:求解:二次
5、规划问题min x i2+2x22-2x iX2-4x i-12x 2s.t x i+x2< 2-x i+2x2< 22xi+x2< 30< xi, 0 < x2将其写成标准形式:Ti44xi4minf(x1,x2)= xi, x2248x2i2s.t x i+x2< 2-x i+2x2< 22xi+x?w 30< xi, 0 < x2程序: 编写M文件mainG.m如下:H=2 -2;-2 4;f=-4;-i2;A=i i;-i 2;2 i;b=2;2;3;lb=zeros(2,i);x,fval,exitflag=quadprog(H,
6、f,A,b,lb)>> Warning: Large-scale method does not currently formulation, switching to medium-scale method.> In D:MATLAB6p5toolboxoptimquadprog.m at line 2i3In d:MATLAB6p5workUntitled5.m at line 6 Optimization terminated successfully. x = 0.6667solvex1x2solvethisthisproblemproblemi.3333fval = -i6.4444 exitflag = i