数学模型课程设计三
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计名称: 设计三:数学规划 指导教师: 张莉
课程设计时数: 8 课程设计设备:安装了Matlab 、LINDO 、LINGO 软件的计算机 课程设计日期: 实验地点: 第五教学楼北902 课程设计目的:
1. 了解线性规划、整数规划、0-1规划、非线性规划的基本内容;
2. 掌握MATLAB 优化工具箱求解各类规划问题;
3. 掌握用LINDO 软件求解线性规划问题;
4. 掌握用LINGO 软件求解线性规划和非线性规划问题。
课程设计准备:
1. 在开始本实验之前,请回顾相关内容;
2. 需要一台准备安装Windows XP Professional 操作系统和装有数学软件的计算机。
课程设计内容及要求
要求:设计过程必须包括问题的简要叙述、问题分析、实验程序及注释、实验数据及结果分析和实验结论几个主要部分。
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的数量分别为11x 、12x 、13x ,乙加工工件1、工件2、工件3的数量分别为21x 、22x 、23x ,最小费用为Z 。
建立线性规划模型如下:
111213212223min 1391011128z x x x x x x =+++++
112112221323111213212223111213212223400600500.0.4 1.1 1.08000.5 1.2 1.3900
,,,,,0
s t x x x x x x x x x x x x x x x x x x +=⎧⎪+=⎪⎪+=⎪⎨++≤⎪⎪++≤⎪⎪≥⎩
实验程序及注释:
Matlab 程序如下:
%在matlabM 文件下输入如下代码:
z=[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(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
程序结果为:Global optimal solution found.
Objective value: 13800.00
Objective bound: 13800.00
Infeasibilities: 0.000000
Extended solver steps: 0
Total solver iterations: 0
Variable Value Reduced Cost
X11 0.000000 13.00000
X12 600.0000 9.000000
X13 0.000000 10.00000
X21 400.0000 11.00000
X22 0.000000 12.00000
X23 500.0000 8.000000
Row Slack or Surplus Dual Price
1 13800.00 -1.000000
2 0.000000 0.000000
3 0.000000 0.000000
4 0.000000 0.000000
5 140.0000 0.000000
6 50.00000 0.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元,要求使总检验费最小,求一二级检验员各需多少名。
问题分析:总检验费为检验员工资和损失费的和,为使总检验费最小,则应合理安排一二级检验员的人数,设一二级检验员的人数分别为21,x x ,则一级检验员的工资为:148x ⨯⨯,损失费为:12%)981(258x ⨯⨯-⨯⨯,即为18x ;二级检验员的工资为:238x ⨯⨯,损失费为:22%)951(158x ⨯⨯-⨯⨯,即为212x 。
模型的建立:目标函数 min 22111224832x x x x z +++= 即为213640x x z +=
⎪⎪⎩⎪⎪⎨⎧≥≤⨯⨯≤⨯⨯≥⨯⨯+⨯⨯0
,1800
15818002581800158258..212121x x x x x x t s 即⎪⎪⎩⎪⎪⎨⎧≥≤≤≥+0,1594535..212121x x x x x x t s