数学建模实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数学建模实验报告

一、实验目的

1、通过具体的题目实例,使学生理解数学建模的基本思想和方法,掌握

数学建模分析和解决的基本过程。

2、培养学生主动探索、努力进取的的学风,增强学生的应用意识和创新

能力,为今后从事科研工作打下初步的基础。

二、实验题目

(一)题目一

1、题目:电梯问题有r个人在一楼进入电梯,楼上有n层。设每个

乘客在任何一层楼出电梯的概率相同,试建立一个概率模型,求直

到电梯中的乘客下完时,电梯需停次数的数学期望。

2、问题分析

(1)由于每位乘客在任何一层楼出电梯的概率相同,且各种可能的情况众多且复杂,难于推导。所以选择采用计算机模拟的

方法,求得近似结果。

(2)通过增加试验次数,使近似解越来越接近真实情况。

3、模型建立

建立一个n*r的二维随机矩阵,该矩阵每列元素中只有一个为1,其余都为0,这代表每个乘客在对应的楼层下电梯(因为每

个乘客只会在某一层下,故没列只有一个1)。而每行中1的个数

代表在该楼层下的乘客的人数。

再建立一个有n个元素的一位数组,数组中只有0和1,其中1代表该层有人下,0代表该层没人下。

例如:

给定n=8;r=6(楼8层,乘了6个人),则建立的二维随机矩阵及与之相关的应建立的一维数组为:

m =

0 0 1 0 0 0

1 0 0 0 0 0

0 0 0 0 0 0

0 1 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 1

0 0 0 0 1 0

0 0 0 1 0 0

c = 1 1 0 1 0 1 1 1

4、解决方法(MATLAB程序代码):

n=10;r=10;d=1000;

a=0;

for l=1:d

m=full(sparse(randint(1,r,[1,n]),1:r,1,n,r));

c=zeros(n,1);

for i=1:n

for j=1:r

if m(i,j)==1

c(j)=1;

break;

end

continue;

end

end

s=0;

for x=1:n

if c(x)==1

s=s+1;

end

continue;

end

a=a+s;

end

a/d

5、实验结果

ans = 6.5150 那么,当楼高11层,乘坐10人时,电梯需停次数的数学期望为6.5150。

(二)题目二

1、问题:某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6

千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千

克,工人20名,可获利9万元.今工厂共有原料60千克,工人

150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何

安排生产计划,即两种饮料各生产多少使获利最大.进一步讨

论:

1)若投资0.8万元可增加原料1千克,问应否作这项投资.

2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划.

2、问题分析

(1)题目中共有3个约束条件,分别来自原料量、工人数与甲饮料产量的限制。

(2)目标函数是求获利最大时的生产分配,应用MATLAB时要转换

成求其相反数最小时的生产分配。

(3) 扩展讨论部分只需将模型中部分参数修改即可。

3、模型建立

(1)设定变量:

x(1)表示甲饮料产量,x(2)表示甲饮料产量,z表示总获利。

(2)线性规划模型:

z=10*x(1)+9*x(2)

6*x(1)+5*x(2)<=60

10*x(1)+20*x(2)<=150

x(1)<=8

4、解决方法(MATLAB程序代码)

c=[-10,-9];

A=[6,5;10,20;1,0];

b=[60,150,8];

x=linprog(c,A,b);

x=floor(x);

x

z=10*x(1)+9*x(2);

z

5、实验结果

x =

6

4

z = 96

扩展1)将参数b改为[61,150,8],得到结果为:

x =

6

4

z = 96

投资后,总利润并没有增加,而且花费了投资成本。所以,不应该

作这项投资。

扩展2)将参数c改为[-11,-9],得到结果为:

x =

7

2

z = 88

每百箱甲饮料获利增加1万元,若按模型改变生产计划,则总利润反而会减小。所以,不应改变生产计划。

(三)题目三

1、问题:27个立方形排成3*3*3的三维阵列。如果三个盒子在同一水

平线上,或同一条垂直线上,或同一条对角线上,则认为三盒一线,

这样的线共有49条:水平线18条,垂直线9条,水平面对角线6

条,垂直面对角线12条,对角面对角线4条。

现有白球13个,黑球14个,每个盒子中放入一球,如何投放,使有单一色球的线数最少?

2、问题分析

(1)题目属于排列组合问题,情况较多且规律性不强,因此难于使用理论推导,故考虑采用计算机模拟。

(2)根据题目信息,找出形成单一色球线的各种情况的一些规律,统计每种情况下单色球线数,并计录比较出最小情况。

3、模型建立

(1)建立一个27个单元的一维向量数组,分别代表27格方格单元,列出49种出现单色线的情况。

(2)建立计数器,记录每种情况下的单色球线数并比较出最少情况

4、解决方法(MATLAB程序)

由于程序较长,此处只给出部分代码。

建立模拟向量及计数器:

a=zeros(1,27);

sum=49;

insert=zeros(1,14);

统计各种情况单色线数:

for i=1:9

temp=linecolor(a(3*i)+a(3*i+1)+a(3*i+2));

if temp>0 templine=templine+1; end

end

for i=1:9:26

for j=1:3

temp=linecolor(a(i)+a(i+3)+a(i+6));

i=i+1;

if temp>0 templine=templine+1; end

end

i=i-3;

end

for i=1:9

相关文档
最新文档