用MATLAB解二次型规划和一般非线性规划问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告11
实验名称:用MATLAB 解二次型规划和一般非线性规划问题
实验目的:学会如何运用MATLAB 解二次型规划和一般非线性规划问题; 实验内容:
书P211
11、试求解下面的二次型规划问题。
212
2212136442min x x x x x x --+-
⎪⎩⎪⎨⎧≥≤+≤+0943..2
,12121x x x x x t s x
解:
>> f=[-6,-3];H=[4,-4;-4,8];
>> A=[1,1;4,1];B=[3,9];Aeq=[];Beq=[];xm=zeros(2,1);
>> [x,f_opt]=quadprog(H,f,A,B,Aeq,Beq,xm,[],[])
Warning: Your Hessian is not symmetric. Resetting H=(H+H')/2.
> In quadprog at 232
Warning: Large-scale method does not currently solve this problem formulation, using medium-scale method instead.
> In quadprog at 263
Optimization terminated.
x =
1.9500
1.0500
f_opt =
-11.0250
12、试求解下面的非线性规划问题。 ()
12424min 22122211++++x x x x x e x
⎪⎪⎩⎪⎪⎨⎧≤≤--≥≥++-≤+10
,10105.10..2121212121x x x x x x x x x x t s x 解:
function [c,ceq]=cdd01(x)
c=[x(1)+x(2);x(1)*x(2)-x(1)-x(2)+1.5;-x(1)*x(2)-10];ceq=[];
>> y=@(x)exp(x(1))*(4*x(1)*x(1)+2*x(2)*x(2)+4*x(1)*x(2)+2*x(2)+1);
x0=[1;1];xm=[-10;-10];xM=[10;10];A=[];B=[];Aeq=[];Beq=[];
[x,f_opt,c,d]=fmincon(y,x0,A,B,Aeq,Beq,xm,xM,@cdd01)
Warning: Trust-region-reflective method does not currently solve this type of problem, using active-set (line search) instead.
> In fmincon at 422
Maximum number of function evaluations exceeded;
increase OPTIONS.MaxFunEvals.
x =
3.1740
-7.9967
f_opt =
1.2351e+003
c =
d =
iterations: 54
funcCount: 201
lssteplength: 1
stepsize: 5.6428
algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'
firstorderopt: 390.0759
constrviolation: 1.7857e-008
message: [1x79 char]
15、试求解下面的0-1线性规划问题
解
>> f=[5,7,10,3,1]
>> A=[-1,1,-5,-1,4;2,-6,3,2,-2;0,-2,2,-1,-1] >> B=[-2;0;1]
>> x_m=[0,0,0,0,0]
>> x_M=[1,1,1,1,1]
>> x=bintprog(f,A,B,[],[],x_m,x_M)
x =
1
1