资源描述:
《实验9_非线性规划_陈雨_2010012199.pdf》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验9非线性规划陈雨基应022010012199【实验目的】掌握用MATLAB优化工具箱和LINGO解非线性规划的方法;练习建立实际问题的非线性规划模型。【实验内容】题目44.1数学模型我们先约定如下记号:a:生产A所用甲原料1a:生产A所用乙原料2a:生产A所用丙原料3b:生产B所用甲原料1b:生产B所用乙原料2b:生产B所用丙原料3a:A产品产量b:B产品产量c:原料甲进货量1c:原料乙进货量2c:原料丙进货量333其中ciaiibi,1,2,3aabbii,ii11根据题
2、目,可以列出如下约束条件与目标函数:原料甲乙先混合,则有:abab12213%1%aaa2%1232.5%a产品A、B的含硫量约束:3%1%bbb2%1231.5%b原料甲、乙、丙的供应量约束:ccc,,500123产品A、B最大市场需求量约束:ab100,200非负性约束:ab,0,i1,2,3ii目标函数即净利润:zab9cc15c616101234.2模型优化4.2.1第一小问我们直接利用MATLAB优化工具箱函数fmincon,注意我们需要将规划问题化为
3、函数输入格式,详细见函数代码exp904.m:functionexp904clearall;clc;x0=[0;0;100;0;200;0];A1=([eye(3),zeros(3)]+[zeros(3),eye(3)]);b1=500*ones(3,1);v1=zeros(6,1);[x,fv,ef,out]=fmincon(@objfun,x0,A1,b1,[],[],v1,[],@confun)functionf=objfun(x)f=-(9*(x(1)+x(2)+x(3))+15*(x(
4、4)+x(5)+x(6))-6*(x(1)+x(4))-16*(x(2)+x(5))-10*(x(3)+x(6)));endfunction[c1,c2]=confun(x)c1=[[0.005,-0.015,-0.005,0,0,0]*x;[0,0,0,0.015,-0.005,0.005]*x;[1,1,1,0,0,0]*x-100;[0,0,0,1,1,1]*x-200];c2=x(1)*x(5)-x(2)*x(4);endend注:由于word格式限制,上述代码中几处换行在MATLAB执
5、行时需做调整。x=-0.000000.0000-0.0000100.0000100.0000fv=-400ef=1out=iterations:8funcCount:56lssteplength:1stepsize:1.0958e-19algorithm:'medium-scale:SQP,Quasi-Newton,line-search'firstorderopt:4.4409e-16constrviolation:4.3831e-20message:[1x783char]T注:此处xaaab
6、bb[,,,,,]123123根据MATLAB的部分输出结果,我们得到结论:公司最优进货量为,甲0t,乙100t,丙100t;并全部生产200t产品B;最大净利润为400千元(40万元)。4.2.2第二小问我们需要改变约束条件,另外由于规划对初值敏感,我们还需改变初值x0,x0=[300;0;300;0;0;0]程序如下:functionexp90402clearall;clc;x0=[300;0;300;0;0;0];A1=([eye(3),zeros(3)]+[zeros(3),eye(3
7、)]);b1=500*ones(3,1);v1=zeros(6,1);[x,fv,ef,out]=fmincon(@objfun,x0,A1,b1,[],[],v1,[],@confun)functionf=objfun(x)f=-(9*(x(1)+x(2)+x(3))+15*(x(4)+x(5)+x(6))-...6*(x(1)+x(4))-...16*(x(2)+x(5))-10*(x(3)+x(6)));endfunction[c1,c2]=confun(x)c1=[[0.005,-0.0
8、15,-0.005,0,0,0]*x;[0,0,0,...0.015,-0.005,0.005]*x;...[1,1,1,0,0,0]*x-600;[0,0,0,1,1,1]*x-200];c2=x(1)*x(5)-x(2)*x(4);endendx=3000300000fv=-600ef=1out=iterations:1funcCount:7lssteplength:1stepsize:0algorithm:'medium-scale:SQP,Quasi-Newton,line-search