资源描述:
《用matlab解法求解线性规划问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Matlab实验报告实验目的:用Matlab解法求解线性规划问题实验一:题目:求解线性规划问题:方法一:Matlab解法算法设计:1、先求Z的最小值,再取相反数即为所求的最大值。2、将第一个约束条件改为。以便与另外两个约束条件保持不等号方向的一致。3、根据所给的约束条件,利用x=linprog(c,a,b)求解求值程序:c=[-3,-1];a=[-1,1;1,-2;3,2];b=[2;2;14];[x,fval]=linprog(c,a,b)运行结果:x=4.00001.0000fval=-13.0000结果处理及分析:当x1=4,x2
2、=1时,(-Z)取最小值-13,Z取最大值13.方法二:图像法程序代码:x=-4:1:4;y1=x-2;y2=2*x+2;y3=1/3*(14-2*x);y4=1/3*(13-x);plot(x,y1,x,y2,x,y3,x,y4,’:’)A(1,4)经过对直线的适度调整后,得到图像为:结果处理及分析:根据约束条件,星型图案所在的闭合三角形为可行域,易知,蓝色虚线代表的目标函数过A(1,4)时,Z取最大值13。实验二:题目:某工厂利用甲,乙两种原料生产A1,A2,A3三种产品,每月可供应的原料数量(单位:t),每万件产品所需各种原料的数
3、量及每万件产品的价格如表所示。试制定每月的最优生产计划,使得总收益最大。原料每万件产品所需原料(t)每月原料供应量(t)A1A2A3甲431180乙263200价格(万元/万件)1254算法设计:1、设生产A1,A2,A3三种产品的量为x1x2x3,收益为Z,写出Z的表达式及约束条件为:2、求(-Z)的最小值,再取相反数即为Z的最大值。3、利用x=linprog(c,a,b,aeq,beq,vlb,vub)求解程序:c=[-12,-5,-4];a=[4,3,1;2,6,3];b=[180;200];aeq=[];beq=[];vlb=[
4、0;0;0];vub=[];[x,fval]=linprog(c,a,b,aeq,beq,vlb,vub)maxz=-fval运行结果:x=34.00000.000044.0000fval=-584.0000maxz=584.0000结果分析:当生产A1、A2、A3产品34万件,0件,44万件时,可使得收益最大,为584万元。总结:1、在实际应用中,求最大值的情况比较多,所以写程序时要注意对目标函数左右乘以-1,对最后的结果再次取相反数。在做第二题时,由于忽略了这一点,导致算出来的数字很小,并且是小数,耽误了不少时间。不过通过查课本,知
5、道了matlab软件不支持非整数线性规划的计算,需使用LINDO和LINGO等软件。1、利用绘图法做第一题时,再次对绘图命令进行了复习。并且发现可以在生成图像后在图形界面对个别重点图线的线条、颜色进行调整,而不必死记相应命令。2、通过做第二题,对aeqbeqvlbvub命令有了深刻的理解。2010年4月10日