数学建模实验报告.docx
《数学建模实验报告.docx》由会员分享,可在线阅读,更多相关《数学建模实验报告.docx(45页珍藏版)》请在冰豆网上搜索。
数学建模实验报告
内江师范学院
中学数学建模
实验报告册
编制数学建模组审定牟廉明
专业:
班级:
级班
学号:
姓名:
数学与信息科学学院
2016年3月
说明
1.学生在做实验之前必须要准备实验,主要包括预习与本次实验相关的理论知识,熟练与本次实验相关的软件操作,收集整理相关的实验参考资料,要求学生在做实验时能带上充足的参考资料;若准备不充分,则学生不得参加本次实验,不得书写实验报告;
2.要求学生要认真做实验,主要是指不得迟到、早退和旷课,在做实验过程中要严格遵守实验室规章制度,认真完成实验内容,极积主动地向实验教师提问等;若学生无故旷课,则本次实验成绩不合格;
3.学生要认真工整地书写实验报告,实验报告的内容要紧扣实验的要求和目的,不得抄袭他人的实验报告;
4.实验成绩评定分为优秀、合格、不合格,实验只是对学生的动手能力进行考核,跟据所做的的情况酌情给分。
根据实验准备、实验态度、实验报告的书写、实验报告的内容进行综合评定。
2
实验名称:
数学规划模型(实验一)指导教师:
实验时数:
4实验设备:
安装了VC++、mathematica、matlab的计算机
实验日期:
年月日实验地点:
实验目的:
掌握优化问题的建模思想和方法,熟悉优化问题的软件实现。
实验准备:
1.在开始本实验之前,请回顾教科书的相关内容;
2.需要一台准备安装WindowsXPProfessional操作系统和装有数学软件的计算机。
实验内容及要求
原料钢管每根17米,客户需求4米50根,6米20根,8米15根,如何下料最节省?
若客户增加需
求:
5米10根,由于采用不同切割模式太多,会增加生产和管理成本,规定切割模式不能超过3种,如何
下料最节省?
实验过程:
摘要:
生活中我们常常遇到对原材料进行加工、切割、裁剪的问题,将原材料加工成所需大
小的过程,称为原料下料问题。
按工艺要求,确定下料方案,使用料最省,或利润最大是典型的优化问题。
以此次钢管下料问题我们采用数学中的线性规划模型.对模型进行了合理的理论证明和推导,然后借助于解决线性规划的专业软件Lingo11.0对题目所提供的数据进行计算从而得出最优解。
关键词:
钢管下料、线性规划、最优解
问题一
一、问题分析:
(1)我们要分析应该怎样去切割才能满足客户的需要而且又能使得所用原料比较少;
(2)我们要去确定应该怎样去切割才是比较合理的,我们切割时要保证使用原料的较少的前提下又能保证浪费得比较少;
(3)由题意我们易得一根长为
17米的原料钢管可以分别切割成如下
6种情况(如表一):
表一:
切割模式表
模式4m
钢管根数
6m钢管根数
8m钢管根数
余料/m
1
4
0
0
1
2
1
2
0
1
3
2
0
1
1
4
2
1
0
3
5
0
1
1
3
6
0
0
2
1
3
由表一分析可知,有两种方案满足题意且使得下料最节省:
(1)钢管切割后材料剩余最少;
(2)切割的原料钢管根数最少。
二、模型假设:
令Xi表示运用第i种切割方案所切割的根数(i=1,...,6)
三、建立模型:
(一)
所剩余量最少
目标函数:
MinZ1=x1
x2x3
3x4
3x5x6
4x1
x2
2x3
2x4
50
约束条件:
s..t2x2
x4
x5
20
x3
x5
2x6
15
模型求解:
Lingo
Min=x1+x2+x3+3*x4+3*x5+x6;
4*x1+x2+2*x3+2*x4>50;
2*x2+x4+x5>20;
x3+x5+2*x6>15;
@gin(x1);@gin(x2);@gin(x3);@gin(x4);@gin(x5);@gin(x6);
end
实验结果:
由Lingo运行结果分析可知:
切割钢管最优解为:
x1=10,x2=10;x6=8;x3=x4=x5=0;最优值为:
x1+x2+x6=28.
即按模式1切割10根,按模式2切割10根,按模式6切割8根,共28根,余料为28m。
(二)所用钢管数最少
目标函数:
MinZ2x1x2x3x4x5x6
4
4x1x22x32x450
约束条件:
s..t2x2x4x520
x3x52x615
模型求解:
Lingo
Min=x1+x2+x3+x4+x5+x6;
4*x1+x2+2*x3+2*x4>50;
2*x2+x4+x5>20;
x3+x5+2*x6>15;
@gin(x1);@gin(x2);@gin(x3);@gin(x4);@gin(x5);@gin(x6);
end
Globaloptimalsolutionfound.
Objectivevalue:
28.00000
Objectivebound:
28.00000
Infeasibilities:
0.000000
Extendedsolversteps:
0
Totalsolveriterations:
3
Variable
Value
ReducedCost
X1
10.00000
1.000000
X2
10.00000
1.000000
X3
0.000000
1.000000
X4
0.000000
1.000000
X5
0.000000
1.000000
X6
8.000000
1.000000
X7
0.000000
1.000000
Row
SlackorSurplus
DualPrice
1
28.00000
-1.000000
2
0.000000
0.000000
5
30.0000000.000000
41.0000000.00000
最优解为x1=10,x2=10;x6=8;其余为0;最优值为:
28.
即按方式1切割10根,按方式2切割10根,按方式6切割8根,共28根,余料28m。
综上,我们可以分析若按最小切割钢管根数去切割,我们需要用到28根,若要求余量最少则
也只需要切割28根,所以要使下料最省我们两种选择都是切割28根钢管。
问题二
一、问题分析:
(1)与问题1类似我们要分析应该怎样去切割才能满足客户的需要而且又能使得所用原料比
较少;
(2)由于客户对钢管的需求又增加了一种,且需求的最小尺寸为4米,所以要能合理切割那
么余量就只能小于4米;
(3)每根钢管使用量不得超过17米,但也必须超过14米;
(4)要使下料最节省,如果我们还是得从所剩余量最少和所用根数最少的两种情况分析那出
现的情况就不仅仅是像问题
(1)中的6种了,因此我们就可简化该问题,对使用原料数量最
少进行求解以便达到最佳切割模式,并使得余量相对较少;
二、建立模型:
决策变量:
用xi表示第i种模式(i=1,2,3
)切割的原料钢管的根数,生产
4米长、5米长、6
米长、8米长的钢管数量分别设为
y1i,y2i,y3i,y4i。
目标函数:
minx1
x2x3
y11x1
y12x2
y13x3
50;
y21x1
y22x2
y23x3
10;
y31x1
y32x2
y33x3
20;
约束条件:
s.t.
y41x1
y42x2
y43x3
15;
xi
0,yji
0,(i
1,2,3;j1...4)
14
4y11
5y21
6y31
8y41
17;
14
4y12
5y22
6y32
8y42
17;
14
4y13
5y23
6y33
8y43
17;
又由提议可知,增加约束条件:
6
原料钢管的总根数不可能少于
4
50
5
10
6
20
8
15
29
17
为满足每种模式下的钢管需求量,有
4
50
5
10
6
20
8
15
35
14
所以:
29x1x2x335
模型求解:
Lingo,
model:
sets:
needs/1..4/:
length,num;
cuts/1..3/:
x;
patterns(needs,cuts):
r;
endsets
data:
length=4568;
num=50102015;
capacity=17;
enddata
min=@sum(cuts(i):
x(i));
@for(needs(i):
@sum(cuts(j):
x(j)*r(i,j))>num(i));
@for(cuts(j):
@sum(needs(i):
length(i)*r(i,j))@for(cuts(j):
@sum(needs(i):
length(i)*r(i,j))>capacity-@min(needs:
length));
@sum(cuts:
x)>26;
@sum(cuts:
x)<31;
@for(cuts(i)|i#lt#@size(cuts):
x(i)>x(i+1));
@for(cuts:
@gin(x););
@for(patterns:
@gin(r););
end
运行结果:
7
Localoptimalsolutionfound.
Objectivevalue:
30.00000
Objectivebound:
30.00000
Infeasibilities:
0.000000
Extendedsolversteps:
176
Totalsolveriterations:
06027
VariableValue
CAPACITY17.00000
LENGTH
(1)
4.000000
LENGTH
(2)
5.000000
LENGTH(3)
6.000000
LENGTH(4)
8.000000
NUM
(1)
50.00000
NUM
(2)
10.00000
NUM(3)
20.00000
NUM(4)
15.00000
X
(1)
15.00000
X
(2)
10.00000
X(3)
5.000000
R(1,1)
2.000000
R(1,2)
0.000000
R(1,3)
4.000000
R(2,1)
0.000000
R(2,2)
1.000000
R(2,3)
0.000000
R(3,1)
0.000000
R(3,2)
2.000000
8
R(3,3)
0.000000
R(4,1)
1.000000
R(4,2)
0.000000
R(4,3)
0.000000
RowSlackorSurplus
130.00000
20.000000
30.000000
40.000000
50.000000
61.000000
70.000000
81.000000
93.000000
104.000000
113.000000
124.000000
131.000000
145.000000
155.000000
结果分析:
方式1:
每根原料切割成2根4米的和1根8米的钢管,共15根。
方式2:
每根原料切割成1根5米和2根6米钢管,共10根;
方式3:
每根原料切割成4根4米,共15根。
总的根数为:
15+10+5=30
9
实验总结(由学生填写):
通过本题实验进行分析思考以及实际操作,大致学会了如何使用lingo
程序,如何运用lingo求解一般问题最优值的方法,以及如何用多种方法求解模型。
实验等级评定:
实验名称:
席位分配问题(实验二)指导教师:
实验时数:
6实验设备:
安装了VC++、mathematica、matlab的计算机
实验日期:
年月日实验地点:
实验目的:
熟悉有分配问题的建立与计算,熟悉Matlab的相关命令。
实验准备:
1.在开始本实验之前,请回顾教科书的相关内容;
2.需要一台准备安装WindowsXPProfessional操作系统和装有Matlab的计算机。
实验内容及要求
在现实生活中,经常出现席位分配的问题,人们常用的方法是比例分配法,请简要叙述比例分配法的
原理,并举例说明在现实生活中可能出现的错误。
请简要推导Q值方法,并用比例分配方法和Q值方法解
决一个实际问题。
实验过程:
摘要:
处理席位分配公平与否的问题需要我们联系生活,用比例分配法求出结果,但是在实
际操作时,因为实际的现实因素,出现了问题。
本次实验以公平分配为约束条件,首先通过
比例分配法进行分配,使得结果不公平,推导出Q值分配方法,运用Q值方法进行分析和检
验,得出了一套使得各系席位分配最公平的方案。
关键词:
席位公平分配、最佳、最公平、Q值方法
一、提出问题:
三个系学生共200名(甲系100,乙系60,丙系40),代表会议共20席,按比例分配,
三个系分别为10,6,4席。
现因学生转系,三系人数为103,63,34,问20席如何分配。
若增加为21席,又如何分配。
二、问题分析:
按照比例加惯例:
(可以得到下列数据)
1
表二:
比例分配结果
系别
学生人数
比例(%)
20席的分配
21席的分配
比例
结果
比例
结果
甲
103
51.5
10.3
10
10.815
11
乙
63
31.5
6.3
6
6.615
7
丙
34
17.0
3.4
4
3.570
3
总和
200
100.0
20
20
21.000
21
根据表中数据,我们可以看到虽然只增加了一个席位,但是丙却少了一个席位,而甲与乙却多了一个席位。
这样对丙系公平吗?
三、提出假设:
公平分配方案:
人数
席位
A
方
p1
n1
B
方
p2
n2
衡量公平分配的数量指标:
当p1/n1=p2/n2时,分配公平若p1/n1>p2/n2,则对A不公平
四、建立模型:
令p1/n1–p2/n2为对A的绝对不公平度:
例如:
(1)p1=150,n1=10,p1/n1=15
(2)p1=1050,n1=10,p1/n1=105
p2=1000,n2=10,p2/n2=100
p2=100,n2=10,p2/n2=10
对于
(1)有p1/n1–p2/n2=5
对于
(2)有p1/n1–p2/n2=5
虽然二者的绝对不公平度相同,但后者对
A的不公平程度已大大降低。
因此:
将绝对度量改为相对度量
p1/n1p2
/n2
rA(n1,n2)
p2/n2
首先我们定义
为对A的相对不公平度
类似地定义rB(n1,n2)
而公平分配的方案应使
rA,rB尽量小
将一次性的席位分配转化为动态的席位分配
即设A,B已分别有n1,n2
席,若增加1席,
2
问应分给A,还是B
不妨设分配开始时p1/n1>p2/n2,即对A不公平
应讨论以下几种情况
初始p1/n1>p2/n2
1)若p1/(n1+1)>p2/n2,则这席应给A
2)若p1/(n1+1)3)若p1/n1>p2/(n2+1),应计算rA(n1,n2+1)
问题:
p1/n1不可能。
因为本来对
A就不公平,把多的
一个席位给B以后,对A应该更加不公平了,因此不会出现p1/n11
)若rB(n1+1,n2)则这席应给A;
2
)若rB(n1+1,n2)>rA(n1,n2+1),
则这席应给B。
当rB(n1+1,n2)该席给A
rA,rB
的定义:
p2
p2
2
1
n2(n2
1)n1(n1
1)该席给A;否则,
此席给B
Qi
pi2
i1,2,
令
ni(ni1)
m,该席给Q值较大的一方
五、模型求解:
推广:
推广到m方分配席位
p2
Qi
i
i1,2,m
ni
(ni
计算:
1)
Q值方法:
该席给Q值最大的一方,三系用
Q值方法重新分配
21个席位
按人数比例的整数部分已将19席分配完毕
甲系:
p1=103,n1=10
乙系:
p2=63,n2=6
丙系:
p3=34,n3=3
用Q值方法分配第20席和第21席
1032
632
342
第20席:
Q1
96.4,Q2
94.5,Q3
96.3
1011
67
3
4
由数据显示:
Q1最大,因此第20席给甲系;
3
Q1
1032
80.4,Q2,Q3
1112
第21席:
同上
由数据显示:
Q3最大,因此第21席给丙系。
Q值方法分配结果:
甲系11席,乙系6席,丙系4席。
clear,clc
p=[1036334];
n=round(p*(19/200));
fori=1:
2
Q=p.^2./(n.*(n+1));
a=find(Q==max(Q));
n(a)=n(a)+1;
end
n=1164
六、结果分析:
按人数比例的整数部分已将19席分配完毕
甲系:
p1=103,n1=10;
乙系:
p2=63,n2=6;
丙系:
p3=34,n3=3.
用Q值方法分配第20席和第21席
第20席:
由数据显示:
Q1最大,因此第20席给甲系;
第21席:
同上.
因为最大,因此第21席应该给丙系.
最后的席位分配为:
甲11席,乙6席,丙4席。
与上述结果一致.
实验总结(由学生填写):
在该实验中,最大的收获是对于在席位分配公平与否的问题中正确
运用Q值方法,在建模问题中懂得假设问题和排除不确定因素,熟悉了报告撰写的基本流程。
但在实验中仍然存在不足有待改进。
实验等级评定:
4
实验名称:
插值与数据拟合(实验三)指导教师:
实验时数:
6实验设备:
安装了VC++、mathematica、matlab的计算机
实验日期:
年月日实验地点:
实验目的:
掌握插值与拟合的原理,熟悉插值与拟合的软件实现。
实验准备:
1.在开始本实验之前,请回顾教科书的相关内容;
2.需要一台准备安装WindowsXPProfessional操作系统和装有VC++6.0的计算机。
实验内容及要求
下表给出了某工厂产品的生产批量与单位成本(元)的数据。
从散点图可以明显地发现,生产批量在
500以内时,单位成本对生产批量服从一种线性关系,生产批量超过500时服从另一种线性关系,此时单
位成本明显下降。
生产批量
650
340
400
800
300
600
单位成本2.484.454.521.384.652.96
生产批量720480440540750
单位成本2.184.044.203.101.50
要求:
1、构造合适的模型全面地描述生产批量与单位成本的关系;
2、对于这种关系,试采用分段函数进行详细分析。
另外,从误差的角度出发,定量与定性相结合的方式来说明采用分段函数来描述这种关系的优点。
实验过程:
一、问题分析:
设生产成本为x,生产批量为y。
从散点图可以明显的发现,生产批量在500以内时,单
位成本对生产批量服从一种线性关系,生产批量超过500时服从另一种线性关系,此时单位
成本明显下降。
所以考虑从两个方面着手,分段建立模型:
即x在500以内时,建立模型
(1);
x超过500时,建立模型
(2)。
然后综合模型
(1)和
(2)建立回归模型。
二、符号说明:
2
符号
意义
符号
意义
y
单位成本
x1
生产批量大于500的部分
回归方程系数
x
生产批量
回归方程系数
x2
生产批量小于500的部分
回归方程系数
三、模型的建立
分段建立模型: