《数学建模实验报告之线性规划.doc》由会员分享,可在线阅读,更多相关《数学建模实验报告之线性规划.doc(6页珍藏版)》请在三一文库上搜索。
1、 数学模型实验报告线性规划专业: 数学与应用数学L081 姓名: XXX 学号: 08L1002106 姓名: XXX 学号: 08L1002109 姓名: XXX 学号: 08L1002112 数学模型实验报告(线性规划)一、 实验目的:1、了解线性规划的基本内容。2、掌握用数学软件包求解线性规划问题。二、实验内容:1、用MATLAB优化工具箱解线性规划 ;2、两个例题;3、实验作业。三、内容分析:(一)用MATLAB优化工具箱解线性规划1、模型: min z=cX 命令:x=linprog(c,A,b) 2、模型: min z=cX 命令:x=linprog(c,A,b,Aeq, beq)
2、注意:若没有不等式: 存在,则令A= ,b= .3、模型:min z=cX VLBXVUB命令:1 x=linprog(c,A,b,Aeq,beq, VLB,VUB)2 x=linprog(c,A,b,Aeq,beq, VLB,VUB, X0) 注意:1 若没有等式约束: , 则令Aeq= , beq= .2其中X0表示初始点 4、命令:x,fval=linprog()返回最优解及处的目标函数值fval.例1 max 运行结果如下:Optimization terminated.(最优解为)x = 1.0e+004 * 3.5000 0.5000 3.0000 0.0000 0.0000 0.
3、0000fval = -2.5000e+004解 :编写M文件程序如下:c=-0.4 -0.28 -0.32 -0.72 -0.64 -0.6;A=0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.08;b=850;700;100;900;Aeq=; beq=;vlb=0;0;0;0;0;0; vub=;x,fval=linprog(c,A,b,Aeq,beq,vlb,vub)例2 解: 编写M文件程序如下:运行结果如下:Optimization terminated.( 最优解为)
4、x = 30.0000 50.0000 40.0000fval = 490.0000 c=6 3 4; A=0 1 0; b=50; Aeq=1 1 1; beq=120; vlb=30,0,20; vub=; x,fval=linprog(c,A,b,Aeq,beq,vlb,vub)(二)例题例1:任务分配问题:某车间有甲、乙两台机床,可用于加工三种工件。假定这两台车床的可用台时数分别为800和900,三种工件的数量分别为400、600和500,且已知用三种不同车床加工单位数量不同工件所需的台时数和加工费用如下表。问怎样分配车床的加工任务,才能既满足加工工件的要求,又使加工费用最低?车床类
5、型单位工件所需加工台时数单位工件的加工费用可用台时数工件1工件2工件3工件1工件2工件3甲0.41.11.013910800乙0.51.21.311128900解 设在甲车床上加工工件1、2、3的数量分别为x1、x2、x3,在乙车床上加工工件1、2、3的数量分别为x4、x5、x6。可建立以下线性规划模型:改写为:s.t. 编写M文件程序如下:f = 13 9 10 11 12 8;A = 0.4 1.1 1 0 0 0运行结果为:x = 0.0000 600.0000 0.0000 400.0000 0.0000 500.0000fval =1.3800e+004 0 0 0 0.5 1.2
6、1.3;b = 800; 900;Aeq=1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1;beq=400 600 500;vlb = zeros(6,1);vub=;x,fval = linprog(f,A,b,Aeq,beq,vlb,vub)结果分析:即在甲机床上加工600个工件2,在乙机床上加工400个工件1、500个工件3,可在满足条件的情况下使总加工费最小为13800。例2:某厂每日8小时的产量不低于1800件。为了进行质量控制,计划聘请两种不同水平的检验员。一级检验员的标准为:速度25件/小时,正确率98%,计时工资4元/小时;二级检验员的标准为:速度15小时
7、/件,正确率95%,计时工资3元/小时。检验员每错检一次,工厂要损失2元。为使总检验费用最省,该工厂应聘一级、二级检验员各几名?解 设需要一级和二级检验员的人数分别为x1、x2人,则应付检验员的工资为:因检验员错检而造成的损失为: 故目标函数为: 编写M文件程序如下:c = 40;36;A=-5 -3 s.t. ;b=-45;Aeq=;beq=;vlb = zeros(2,1);vub=9;15; %调用linprog函数:x,fval = linprog(c,A,b,Aeq,beq,vlb,vub)运行结果为:x = 9.0000 0.0000fval =360约束条件为:线性规划模型:改写
8、为: s.t. 结果分析:即只需聘用9个一级检验员。注:本问题应还有一个约束条件:x1、x2取整数。故它是一个整数线性规划问题。这里把它当成一个线性规划来解,求得其最优解刚好是整数:x1=9,x2=0,故它就是该整数规划的最优解。若用线性规划解法求得的最优解不是整数,将其取整后不一定是相应整数规划的最优解,这样的整数规划应用专门的方法求解。(三)实验作业:某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.今工厂共有原料60千克,工人150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何安排生产计划,即两
9、种饮料各生产多少使获利最大.进一步讨论: 1)若投资0.8万元可增加原料1千克,问应否作这项投资. 2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划.解:设生产甲饮料x1百箱,生产乙饮料x2百箱,可建立如下模型目标函数为:min z = -10 x1 -9 x2 约束条件为: 6 x1 + 5 x260s.t. 10 x1 +20 x2150 0x18, x20运行结果为:x =6.4286 4.2857fval = -102.8571编写M文件程序如下:c=-10,-9;A=6 5;10 20;b=60,150;vlb=0,0;vub=8, ;x,fval=linprog(c,A,b,
10、vlb,vub)结果分析:即甲饮料生产6.4286百箱,乙饮料生产4.2857百箱时获利最大,可获利102.8571万元。进一步讨论:1) 将程序中b=60,150;改为 b=61,150;2)运行结果为:x = 7.2308 3.5231fval = -104.01541)运行结果为:x = 6.7143 4.1429fval = -104.4286由运行结果得:再投入0.8万元可获最大利润104.4286万元,总计可最大利润103.6286102.8571(万元)所以应作此投资2) 将程序中A=6 5;10 20; 改为A=6 5;11 20; 由运行结果得:最大获利104.0154102.8571(万元)应该改变生产计划。改为 甲饮料生产7.2308百箱,乙饮料生产3.5231百箱。