数学模型课程设计三.docx

上传人:b****7 文档编号:10614511 上传时间:2023-02-21 格式:DOCX 页数:16 大小:248.58KB
下载 相关 举报
数学模型课程设计三.docx_第1页
第1页 / 共16页
数学模型课程设计三.docx_第2页
第2页 / 共16页
数学模型课程设计三.docx_第3页
第3页 / 共16页
数学模型课程设计三.docx_第4页
第4页 / 共16页
数学模型课程设计三.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

数学模型课程设计三.docx

《数学模型课程设计三.docx》由会员分享,可在线阅读,更多相关《数学模型课程设计三.docx(16页珍藏版)》请在冰豆网上搜索。

数学模型课程设计三.docx

数学模型课程设计三

课程设计名称:

设计三:

数学规划指导教师:

张莉

课程设计时数:

8课程设计设备:

安装了Matlab、LINDO、LINGO软件的计算机

课程设计日期:

实验地点:

第五教学楼北902

课程设计目的:

1.了解线性规划、整数规划、0-1规划、非线性规划的基本内容;

2.掌握MATLAB优化工具箱求解各类规划问题;

3.掌握用LINDO软件求解线性规划问题;

4.掌握用LINGO软件求解线性规划和非线性规划问题。

课程设计准备:

1.在开始本实验之前,请回顾相关内容;

2.需要一台准备安装WindowsXPProfessional操作系统和装有数学软件的计算机。

课程设计内容及要求

要求:

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

1.任务分配问题:

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

问怎么样分配车床的加工任务,才能既满足加工工件的要求,又使加工费用最低?

要求用MATLAB和LINGO软件进行求解,并比较其结果。

车床

类型

单位工件所需加工台时数

单位工件的加工费用

可用

台时数

工件1

工件2

工件3

工件1

工件2

工件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

0.0000

400.0000

0.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:

13800.00

Infeasibilities:

0.000000

Extendedsolversteps:

0

Totalsolveriterations:

0

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:

600件,乙生产工件1:

400件,工件3:

500件,和matlab得出的结果一样。

但lingo更为简单明了,让人一看就知道,目标函数和约束条件。

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

一级检验员的标准为:

速度25件/小时,正确率98%,计时工资4元/小时;二级检验员的标准为:

速度15件/小时,正确率95%,计时工资3元/小时。

检验员每错检一次,工厂要损失2元,为使总检验费用最省,该工厂应聘一级、二级检验员各几名?

要求用MATLAB和LINGO软件进行求解,并比较其结果。

问题简述:

某厂8小时的产量不低于1800件,一级:

速度25件/小时,正确率98%,工资4元/小时;二级:

速度15件/小时,正确率95%,工资3元/小时。

检验员每错检一次,工厂要损失2元,要求使总检验费最小,求一二级检验员各需多少名。

问题分析:

总检验费为检验员工资和损失费的和,为使总检验费最小,则应合理安排一二级检验员的人数,设一二级检验员的人数分别为

,则一级检验员的工资为:

,损失费为:

,即为

;二级检验员的工资为:

,损失费为:

,即为

模型的建立:

目标函数min

即为

Matlab程序如下:

%在matlabM文件下输入如下代码:

z=[4036];%目标函数

A=[-5-3];%不等式约束

B=[-45];

aeq=[];

beq=[];

vlb=zeros(1,2);%参数的上下限

vub=[9,15];

[x,zval]=linprog(z,A,B,aeq,beq,vlb,vub)%返回x处的函数值

程序结果为:

x=

9.0000

0.0000

zval=360

得出结果:

一级检验员需要9名,不需二级检验员,最小费用为360元。

Lingo程序如下:

model:

min=40*x1+36*x2;

5*x1+3*x2>=45;

x1<=9;

x2<=15;

@gin(x1);@gin(x2);

end

程序结果为:

Globaloptimalsolutionfound.

Objectivevalue:

360.0000

Objectivebound:

360.0000

Infeasibilities:

0.000000

Extendedsolversteps:

0

Totalsolveriterations:

0

VariableValueReducedCost

X19.00000040.00000

X20.00000036.00000

RowSlackorSurplusDualPrice

1360.0000-1.000000

20.0000000.000000

30.0000000.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

4

6

5

6

8

8

储蓄所可以雇佣全时和半时两类服务员,全时服务员每天报酬100元,从上午9:

00到下午17:

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—14:

00必须安排1小时的午餐时间,所以期间必须有半时服务员,且要求半时服务员必须连续服务4小时。

所以设全时服务员在12:

00—13:

00吃午餐的为

人,在13:

00—14:

00吃午餐的为

人,所以期间必须有半时服务员,所以设9:

00开始服务的半时服务员有:

,10:

00开始服务的半时服务员有:

,11:

00开始服务的半时服务员有:

,12:

00开始服务的半时服务员有:

,9:

00开始服务的半时服务员有:

,建立线性规划模型。

模型的建立:

目标函数:

min

约束条件:

用LINDO求解程序如下:

min100x1+100x2+40y1+40y2+40y3+40y4+40y5

stx1+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

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的程序如下:

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

程序结果为:

Globaloptimalsolutionfound.

Objectivevalue:

820.0000

Objectivebound:

820.0000

Infeasibilities:

0.000000

Extendedsolversteps:

0

Totalsolveriterations:

46

VariableValueReducedCost

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,最小费用为:

820元。

结果分析:

用LINDO和LINGO求解的费用都为820元,虽需要的服务员总数相同,但是分配方案有所不同。

不过都可使雇佣服务员的费用最低。

(2)当不能雇佣半时服务员时,则可以令

都为0,用LINDO和LINGO软件求解结果为:

LINDO程序的结果为:

OBJECTIVEFUNCTIONVALUE

1)1100.000

VARIABLEVALUEREDUCEDCOST

X15.000000100.000000

X26.000000100.000000

Y10.00000040.000000

Y20.00000040.000000

Y30.00000040.000000

Y40.00000040.000000

Y50.00000040.000000

LINGO程序的结果为:

Globaloptimalsolutionfound.

Objectivevalue:

1100.000

Objectivebound:

1100.000

Infeasibilities:

0.000000

Extendedsolversteps:

0

Totalsolveriterations:

0

VariableValueReducedCost

X15.000000100.0000

X26.000000100.0000

Y10.00000040.00000

Y20.00000040.00000

Y30.00000040.00000

Y40.00000040.00000

Y50.00000040.00000

两者求解的结果相同,费用都为1100元,x1=5,x2=6,每天至少增加280元的经费。

(3)如果每天雇佣半时服务员的人数没有限制,则取消

的条件约束,用LINDO和LINGO软件求解。

lINDO的程序结果为:

OBJECTIVEFUNCTIONVALUE

1)560.0000

VARIABLEVALUEREDUCEDCOST

X10.000000100.000000

X20.000000100.000000

Y14.00000040.000000

Y20.00000040.000000

Y30.00000040.000000

Y42.00000040.000000

Y58.00000040.000000

即需要半时服务员y1=4,y4=2,y5=8,费用为560元,每天可以减少费用260元。

LINGO的程序结果为:

Globaloptimalsolutionfound.

Objectivevalue:

560.0000

Objectivebound:

560.0000

Infeasibilities:

0.000000

Extendedsolversteps:

0

Totalsolveriterations:

2

VariableValueReducedCost

X10.000000100.0000

X20.000000100.0000

Y16.00000040.00000

Y20.00000040.00000

Y30.00000040.00000

Y40.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程序为:

model:

max(10*x1+15*x2+25*x3+20*x4+30*x5)/(x1+x2+x3+x4+x5);

x1+x2+x3+x4+x5<=3000

@gin(x1);@gin(x2);@gin(x3);@gin(x4);@gin(x5);

end

课程设计总结:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1