当前位置:文档之家› 数学模型课程设计三答案

数学模型课程设计三答案

课程设计目的:1. 了解线性规划、整数规划、0-1规划、非线性规划的基本内容;2. 掌握MA TLAB 优化工具箱求解各类规划问题;3. 掌握用LINDO 软件求解线性规划问题;4. 掌握用LINGO 软件求解线性规划和非线性规划问题。

课程设计准备:1. 在开始本实验之前,请回顾相关内容;2. 需要一台准备安装Windows XP Professional 操作系统和装有数学软件的计算机。

课程设计内容及要求要求:设计过程必须包括问题的简要叙述、问题分析、实验程序及注释、实验数据及结果分析和实验结论几个主要部分。

1. 任务分配问题:某车间有甲、乙两台机床,可用于加工三种工件,假定这两台车床的可用台数分别为800和900,三种工件的数量分别为400、600和500,且已知用三种不同车床加工单位数量不同工件所需的台数和加工费用如下表。

问怎么样分配车床的加工任务,才能既满足加工工件的要求,又使加工费用一、问题分析:本题要使加工费用最低,需要考虑的约束条件有,车床的可用台数限制和工件必须达到的数量要求,由此建立以下数学模型。

二、模型建立:设机床甲、乙加工工件1,2,3的数量为ij x , (1,2;1,2,3)i j ==111213212223111213212223112112221323min 1391011128.0.4 1.18000.5 1.2 1.39004006005000,(1,2;1,2,3)ij z x x x x x x s tx x x x x x x x x x x x x i j =+++++++≤++≤+=+=+=>==三、模型求解:用MATLAB 软件求解:f=[13 9 10 11 12 8]; %目标函数 A=[0.4 1.1 1 0 0 0;0 0 0 0.5 1.2 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) %返回最优解x及x处的目标函数值fval得到结果:在甲机床上加工600个工件2,在乙机床上加工400个工件1和500个工件3,最少费用13800元用LINDO 软件求解:min 13x11+9x12+10x13+11x21+12x22+8x23 !需要求解的目标函数 st 0.4x11+1.1x12+x13<=800 !约束条件0.5x21+1.2x22+1.3x23<=900 x11+x21=400 x12+x22=600 x13+x23=500 endgin 6 !定义参数为整数得到结果与MATLAB 中相同,由此说明该结果为最优解。

2. 某厂每日8小时的产量不低于1800件,为了进行质量控制,计划聘请两种不同水平的检验员,且每种检验员的日产量不高于1800件。

一级检验员的标准为:速度25件/小时,正确率98%,计时工资4元/小时;二级检验员的标准为:速度15件/小时,正确率95%,计时工资3元/小时.检验员每错检一次,工厂要损失2元,为使总检验费用最省,该工厂应聘一级、二级检验员各几名?要求用MATLAB 和LINDO 软件进行求解,并比较其结果。

一、问题分析:本题要达到的目标是使招聘费和损失费的和最低,由题中给出的约束条件可建立数学模型如下。

二、模型建立:设聘请一级、二级检验员人数为x 1,x 2人,则:应给检验员的工资为:121284833224x x x x ⨯⨯+⨯⨯=+因错误造成的损失为:1212(8252%8155%)2812x x x x ⨯⨯⨯+⨯⨯⨯⨯=+1212121212min 322481282581518008251800.81518000,0z x x x x x x x s tx x x =+++⨯⨯+⨯⨯≥⨯⨯≤⨯⨯≤≥≥ 即 12121212min 4036.53459150,0z x x s t x x x x x x =++≥≤≤≥≥三、模型求解:用MATLAB 软件求解:f=[40 36]; %目标函数A=[-5 -3]; %不等式约束 B=[-45];Aeq=[];beq=[]; %该模型没有等式约束 vlb = zeros(2,1); %参数的上下确界 vub=[9,15];[x,fval] = linprog(f,A,B,Aeq,beq,vlb,vub) %返回最优解x及x处的目标函数值fval得到结果只需聘请一级检验员9名,所需最少检验费用为360元。

用LINDO 软件求解:min 40x1+36x2 st 5x1+3x2>=45x1<=9x2<=15 endgin 2得到结果与MATLAB 中相同,从结果看来这样的聘用方案是合理的、最优的。

3. 某储蓄所每天的营业时间为上午9:00到下午17:00,根据经验,每天不同时间段所需要服务员的数量为:储蓄所可以雇佣全时和半时两类服务员,全时服务员每天报酬100元,从上午9:00到下午17:00工作,但中午12:00到下午14:00之间必须安排1小时的午餐时间,;储蓄所每天可以雇用不超过3名的半时服务员,每个半时服务员必须连续工作4小时,报酬为40元。

问:(1)该储蓄所应该如何雇用全时和半时两类服务员? (2)如果不能雇用半时服务员,每天至少增加多少经费?(3)如果雇用半时服务员的数量没有限制,每天可以减少多少经费? 要求用LINDO 和LINGO 软件分别求解,并比较其结果。

1) 雇佣全时和半时两类服务员一、问题分析:该储蓄所雇佣全时和半时服务员,由题知中午有两个小时为全时服务员的午餐时间,所以在这期间必须有半时服务员接替,由各时段服务员的数量需求我们可以建立以下模型。

二、模型建立:设每天雇佣的全时服务员以12:00~13:00为午餐时间的有x 1名,以13:00~14:00为午餐时间的有x 2名;半时服务员从9:00,10:00,11:00,12:00,13:00开始工作的人数分别为y 1,y 2,y 3,y 4,y 5名。

则:储蓄所雇佣服务员的总费用1212345100()40()z x x y y y y y =++++++每个时段的服务员数不少于需求量,且每天半时服务员不超过三名,以此建立模型:12123451211212121232123412345123451245125123451212345min 100()40().434656883,,,,,,0z x x y y y y y s tx x y x x y y x x y y y x y y y y x y y y y x x y y y x x y y x x y y y y y y x x y y y y y =++++++++≥+++≥++++≥++++≥++++≥++++≥+++≥++≥++++≤≥三、模型求解:用LINDO 软件求解:min 100x1+100x2+40y1+40y2+40y3+40y4+40y5 !目标函数st x1+x2+y1>=4 !各时段服务员数量要求x1+x2+y1+y2>=3 x1+x2+y1+y2+y3>=4 x2+y1+y2+y3+y4>=6 x1+y2+y3+y4+y5>=5 x1+x2+y3+y4+y5>=6x1+x2+y4+y5>=8 x1+x2+y5>=8y1+y2+y3+y4+y5<=3 !半时服务员不超过三名 endgin 7 !所有参数为整数 得到结果12451232,5,1,2,0x x y y y y y =======,最小费用为820元。

用LINGO 软件求解:Model :min =100*x1+100*x2+40*y1+40*y2+40*y3+40*y4+40*y5;x1+x2+y1>=4; x1+x2+y1+y2>=3; x1+x2+y1+y2+y3>=4; x2+y1+y2+y3+y4>=6; x1+y2+y3+y4+y5>=5; x1+x2+y3+y4+y5>=6; x1+x2+y4+y5>=8; x1+x2+y5>=8; y1+y2+y3+y4+y5<=3;@gin (x1);@gin (x2);@gin (y1);@gin (y2);@gin (y3);@gin (y4);@gin (y5); end得到结果12245132,5,1,1,1,0x x y y y y y =======,最小费用为820元。

由结果可以看出,用LINDO 和LINGO 求解得到的雇佣方案有所不同,但两种方案所花费的费用相同,因此该储蓄所任意采用其中一种方案雇佣服务员都可以使费用最低。

2) 当不能雇佣半时服务员时,令y 1=y 2=y 3=y 4=y 5=0,LINDO 和LINGO 结果相同,求得最优解为x 1=5,x 2=6,总费用为1100元,比雇佣半时服务员时每天增加了280元。

3) 如果雇佣半时服务员的数量没有限制,即取消123453y y y y y ++++≤的约束,在LINDO 中求得:x 1=x 2=y 2=y 3=0,y 1=4,y 4=2,y 5=8;在LINGO 中求得x 1=x 2=y 2=y 3=y 4=0,y 1=6,y 5=8。

总费用都为560元,每天可以减少费用260元。

4. 投资问题:假设某公司在下一个计划期内可用于投资的总资本为b 万元,可供选择的投资项目共有n 个,分别记为1,2...n ,已知对第j 个项目的投资总额为万元,而收益总额为万元。

请问如何进行投资,才能使利润率(即单位投资可获得的收益)最高?在建立模型以后,请自己赋予题中变量于数据用LINGO 软件进行求解。

一、问题分析:本题要求单位投资的收益最高,约束条件仅有一个,即为总投资额不能超过b 万元。

二、模型建立:设第j 个项目的投资额为x j 万元,则:max .0nj jjjnjjnjjj c x a z xs txbx =≤≥∑∑∑三、模型求解:针对本题,假设b 等于2000万元,共有4个项目,每个项目的利润率c j /a j 分别为23万元、24万元、32万元、36万元。

则, 用LINGO 软件求解: Model :max =(23*x1+24*x2+32*x3+36*x4)/(x1+x2+x3+x4);x1+x2+x3+x4<=2000; end求得结果为:将全部资金投到项目4,其余项目不投,最高利润率为36万元。

相关主题