数学模型课程设计三Word格式.docx
《数学模型课程设计三Word格式.docx》由会员分享,可在线阅读,更多相关《数学模型课程设计三Word格式.docx(16页珍藏版)》请在冰点文库上搜索。
工件3
甲
0.4
1.1
1.0
13
9
10
800
乙
0.5
1.2
1.3
11
12
8
900
问题简述:
有甲、乙两台车床可用台时数分别为:
800和900,三种工件的数量分别为400、600和500,问为使费用最小,应怎样安排工作任务?
问题分析:
为使费用最小,则可使单位工件所需加工台时数少和单位工件的加工费用小,所以可以设甲加工工件1、工件2、工件3的数量分别为
、
,乙加工工件1、工件2、工件3的数量分别为
,最小费用为Z。
建立线性规划模型如下:
实验程序及注释:
Matlab程序如下:
%在matlabM文件下输入如下代码:
z=[1391011128];
%目标函数
A=[0.41.11000;
0000.51.21.3];
%不等式约束
B=[800;
900];
aeq=[100100;
010010;
001001];
%等式约束
beq=[400;
600;
500];
vlb=zeros(1,6);
%参数的上下限
vub=[];
[x,zval]=linprog(z,A,B,aeq,beq,vlb,vub)%返回x处的函数值
程序结果如下:
x=
0.0000
600.0000
400.0000
500.0000
zval=1.3800e+004
得出结果:
甲生产工件2:
600件,乙生产工件1:
400件,工件3:
500件,最小费用为13800元。
Lingo程序如下:
model:
min=13*x11+9*x12+10*x13+11*x21+12*x22+8*x23;
x11+x21=400;
x12+x22=600;
x13+x23=500;
0.4*x11+1.1*x12+1.0*x13<
=800;
0.5*x21+1.2*x22+1.3*x23<
=900;
@gin(x11);
@gin(x12);
@gin(x13);
@gin(x21);
@gin(x22);
@gin(x23);
end
程序结果为:
Globaloptimalsolutionfound.
Objectivevalue:
13800.00
Objectivebound:
Infeasibilities:
0.000000
Extendedsolversteps:
0
Totalsolveriterations:
VariableValueReducedCost
X110.00000013.00000
X12600.00009.000000
X130.00000010.00000
X21400.000011.00000
X220.00000012.00000
X23500.00008.000000
RowSlackorSurplusDualPrice
113800.00-1.000000
20.0000000.000000
30.0000000.000000
40.0000000.000000
5140.00000.000000
650.000000.000000
结果为:
最小费用为13800元,甲生产工件2:
500件,和matlab得出的结果一样。
但lingo更为简单明了,让人一看就知道,目标函数和约束条件。
2.某厂每日8小时的产量不低于1800件,为了进行质量控制,计划聘请两种不同水平的检验员,且每种检验员的日产量不高于1800件。
一级检验员的标准为:
速度25件/小时,正确率98%,计时工资4元/小时;
二级检验员的标准为:
速度15件/小时,正确率95%,计时工资3元/小时。
检验员每错检一次,工厂要损失2元,为使总检验费用最省,该工厂应聘一级、二级检验员各几名?
问题简述:
某厂8小时的产量不低于1800件,一级:
速度25件/小时,正确率98%,工资4元/小时;
二级:
速度15件/小时,正确率95%,工资3元/小时。
检验员每错检一次,工厂要损失2元,要求使总检验费最小,求一二级检验员各需多少名。
总检验费为检验员工资和损失费的和,为使总检验费最小,则应合理安排一二级检验员的人数,设一二级检验员的人数分别为
,则一级检验员的工资为:
,损失费为:
,即为
;
二级检验员的工资为:
。
模型的建立:
目标函数min
即为
即
z=[4036];
A=[-5-3];
B=[-45];
aeq=[];
beq=[];
vlb=zeros(1,2);
vub=[9,15];
9.0000
zval=360
一级检验员需要9名,不需二级检验员,最小费用为360元。
min=40*x1+36*x2;
5*x1+3*x2>
=45;
x1<
=9;
x2<
=15;
@gin(x1);
@gin(x2);
end
360.0000
X19.00000040.00000
X20.00000036.00000
1360.0000-1.000000
415.000000.000000
得出结果和Matlab的结果一样。
此题比较简单,所以matlab和lingo的程序都很简单,二者都可用。
3.某储蓄所每天的营业时间为上午9:
00到下午17:
00,根据经验,每天不同时间段所需要服务员的数量为:
时间段
9~10
10~11
11~12
12~13
13~14
14~15
15~16
16~17
服务员数量
4
3
6
5
储蓄所可以雇佣全时和半时两类服务员,全时服务员每天报酬100元,从上午9:
00工作,但中午12:
00到下午14:
00之间必须安排1小时的午餐时间,;
储蓄所每天可以雇用不超过3名的半时服务员,每个半时服务员必须连续工作4小时,报酬为40元。
问:
(1)该储蓄所应该如何雇用全时和半时两类服务员?
(2)如果不能雇用半时服务员,每天至少增加多少经费?
(3)如果雇用半时服务员的数量没有限制,每天可以减少多少经费?
要求用LINDO和LINGO软件分别求解,并比较其结果。
储蓄所雇佣全时和半时两类服务员,全时服务员9:
00—17:
00,报酬100元,但是12:
00—14:
00必须安排1小时的午餐时间;
储蓄所每天可以雇用不超过3名的半时服务员,且必须连续工作4小时,报酬40元。
问题要求全时服务员在中午12:
00必须安排1小时的午餐时间,所以期间必须有半时服务员,且要求半时服务员必须连续服务4小时。
所以设全时服务员在12:
00—13:
00吃午餐的为
人,在13:
人,所以期间必须有半时服务员,所以设9:
00开始服务的半时服务员有:
,10:
,11:
,12:
,9:
,建立线性规划模型。
目标函数:
min
约束条件:
用LINDO求解程序如下:
min100x1+100x2+40y1+40y2+40y3+40y4+40y5
stx1+x2+y1>
=4
x1+x2+y1+y2>
=3
x1+x2+y1+y2+y3>
x2+y1+y2+y3+y4>
=6
x1+y2+y3+y4+y5>
=5
x1+x2+y3+y4+y5>
x1+x2+y4+y5>
=8
x1+x2+y5>
y1+y2+y3+y4+y5<
end
gin7
OBJECTIVEFUNCTIONVALUE
1)820.0000
VARIABLEVALUEREDUCEDCOST
X12.000000100.000000
X25.000000100.000000
Y10.00000040.000000
Y20.00000040.000000
Y30.00000040.000000
Y41.00000040.000000
Y52.00000040.000000
根据以上结果可得x1=2,x2=5,y1=y2=y3=0,y4=1,y5=2,最小费用为:
820元。
Lingo的程序如下:
min=100*x1+100*x2+40*y1+40*y2+40*y3+40*y4+40*y5;
x1+x2+y1>
=4;
=3;
=6;
=5;
=8;
@gin(y1);
@gin(y2);
@gin(y3);
@gin(y4);
@gin(y5);
820.0000
46
X13.000000100.0000
X24.000000100.0000
Y10.00000040.00000
Y22.00000040.00000
Y30.00000040.00000
Y40.00000040.00000
Y51.00000040.00000
所得结果为:
x1=3,x2=4,y2=2,y1=y3=y4=0,y5=1,最小费用为:
结果分析:
用LINDO和LINGO求解的费用都为820元,虽需要的服务员总数相同,但是分配方案有所不同。
不过都可使雇佣服务员的费用最低。
(2)当不能雇佣半时服务员时,则可以令
都为0,用LINDO和LINGO软件求解结果为:
LINDO程序的结果为:
1)1100.000
X15.000000100.000000
X26.000000100.000000
Y40.00000040.000000
Y50.00000040.000000
LINGO程序的结果为:
1100.000
X15.000000100.0000
X26.000000100.0000
Y20.00000040.00000
Y50.00000040.00000
两者求解的结果相同,费用都为1100元,x1=5,x2=6,每天至少增加280元的经费。
(3)如果每天雇佣半时服务员的人数没有限制,则取消
的条件约束,用LINDO和LINGO软件求解。
lINDO的程序结果为:
1)560.0000
X10.000000100.000000
X20.000000100.000000
Y14.00000040.000000
Y42.00000040.000000
Y58.00000040.000000
即需要半时服务员y1=4,y4=2,y5=8,费用为560元,每天可以减少费用260元。
LINGO的程序结果为:
560.0000
2
X10.000000100.0000
X20.000000100.0000
Y16.00000040.00000
Y58.00000040.00000
LINGO的求解结果和LINDO的一样。
4.投资问题:
假设某公司在下一个计划期内可用于投资的总资本为b万元,可供选择的投资项目共有n个,分别记为已知对第j个项目的投资总额为
万元,而收益总额为
万元。
问如何进行投资,才能使利润率(即单位投资可获得的收益)最高?
在建立模型以后,请自己赋予题中变量于数据用LINGO软件进行求解。
投资的总资本为b万元,投资项目共n个,第j个项目的投资总额为
万元,问如何投资才能使利润率最高。
本题要求利润率最低,如何投资的问题,设每个项目的投资额为
模型的求解:
本题要求自己设计数据,则设b为3000万元,一共5个项目,利润率
分别为10万元,15万元,25万元,20万元,30万元,则
目标函数为:
max
LINGO程序为:
max(10*x1+15*x2+25*x3+20*x4+30*x5)/(x1+x2+x3+x4+x5);
x1+x2+x3+x4+x5<
=3000
@gin(x3);
@gin(x4);
@gin(x5);
课程设计总结: