搜索
您的当前位置:首页正文

数学建模实验报告

来源:知库网
数学建模实验报告

计算机81

马力 08055017

一.锁具装箱问题

1实验题目:

某厂生产一种弹子锁具,每个锁具有n个槽,每个槽的高度从{1,2,3,4}这4个数(单位略)中任取一个,限制至少有一个相邻的槽高之差等于3,且至少有3个不同的槽高。每个槽的高度取遍这4个数且满足上面这两个限制时生产出一批锁(例如,当n等于3时,3个槽高为1,4,2的锁符合要求,而3个槽高为1,4,4的锁不满足要求)。求一批锁的把数。 2问题分析:

首先我们需要准确理解问题的意义,这道题目有两个变量,一个变量为每个锁具的槽的数目,另一个变量是就是所求的一批锁的个数。首先我们必须假定n为确定的值,通过计算机的模拟来确定一批锁的把数,或者我们可以利用排列组合的知识也可以得到。 3程序代码: (1)N=4时的代码 s=0;n=4; for j1=1:4; for j2=1:4; for j3=1:4; for j4=1:4; a1=j1;a2=j2;a3=j3;a4=j4; amax=max([a1,a2,a3,a4]');

amin=min([a1,a2,a3,a4]');

number=(amax-a1)*(a1-amin)+(amax-a2)*(a2-amin)+(amax-a3)*(a3-amin) +(amax-a4)*(a4-amin);

neighbors=max([abs(a1-a2), abs(a2-a3),abs(a3-a4)]); if number>0.5 if neighbors==3 s=s+1; end end end end end end s

(2)n=7时的代码 s=0;m=4; for j1=1:m; for j2=1:m; for j3=1:m; for j4=1:m; for j5=1:m; for j6=1:m;

for j7=1:m;

a1=j1;a2=j2;a3=j3;a4=j4;a5=j5;a6=j6;a7=j7; amax=max([a1,a2,a3,a4,a5,a6,a7]'); amin=min([a1,a2,a3,a4,a5,a6,a7]');

number=(amax-a1)*(a1-amin)+(amax-a2)*(a2-amin)+(amax-a3)*(a3-amin)+(amax-a4)*(a4-amin)+(amax-a5)*(a5-amin)+(amax-a6)*(a6-amin)+(amax-a7)*(a7-amin); neighbors=max([abs(a1-a2),

abs(a2-a3),

abs(a3-a4),

abs(a4-a5),abs(a5-a6),abs(a6-a7)]'); if number>0.5

if neighbors==3; s=s+1; end end end end end end end end end s

4,实验结果 n=4时,s=64 n=7时,s=8216 1. 实验题目:

某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.今工厂共有原料60千克,工人150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何安排生产计划,即两种饮料各生产多少使获利最大.进一步讨论: 1)若投资0.8万元可增加原料1千克,问应否作这项投资. 2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划.

二.线性规划问题

2.问题分析:

由题目易知此题属于线性规划问题,题目本身是很简单的,我们我们需要解决的问题是:根据已知条件列出不等式方程组,再利用特定的MATLAB语句接触方程组即可。

3.数学模型:

解:

设安排甲饮料生产x百箱,乙饮料生产y百箱。

故所求目标函数为:max=10x+9y 1)函数的约束条件为:

6x+5y60 (1) 10x+20y150 (2) x8 (3) x0 (4) y0 (5)

2)投资0.8万元可增加原料1千克: 函数的约束条件为:

6x+5y61 (1) 10x+20y150 (2) x8 (3) x0 (4) y0 (5)

3)每百箱甲饮料获利可增加1万元:

所求目标函数为:max=11x+9y 函数的约束条件为:

6x+5y60 (1) 10x+20y150 (2) x8 (3) x0 (4) y0 (5)

4. 程序代码:

1)原题的程序代码: c=[-10 -9]; A=[6 5;10 20;]; B=[60;150]; Aeq=[]; Beq=[]; vlb=[0;0] vub=[8;0]

[x,fval]=linprog(c,A,B,Aeq,Beq,vlb,vub)

2)投资0.8万元可增加原料1千克: c=[-10 -9]; A=[6 5;10 20;]; B=[61;150]; Aeq=[]; Beq=[]; vlb=[0;0] vub=[8;0]

[x,fval]=linprog(c,A,B,Aeq,Beq,vlb,vub) 3)每百箱甲饮料获利可增加1万元:

c=[-11 -9]; A=[6 5;10 20;]; B=[60;150]; Aeq=[]; Beq=[]; vlb=[0;0] vub=[8;0]

[x,fval]=linprog(c,A,B,Aeq,Beq,vlb,vub)

5.运行结果及分析:

1)

分析:安排甲饮料8百箱,乙饮料0百箱;

最大利润为80万。

2)

分析:当投资0.8万元增加一千克原料时,此时的仿真的结果不变:

安排甲饮料8百箱,乙饮料0百箱;

但由于此时有0.8万元的额外投资,使得总利润只有79.2万元,总利润降低,所以不应该做这项投资。

3)

分析:安排甲饮料8百箱,乙饮料0百箱;

总利润为88万。应该改变生产计划。

1.实验题目

三.随机库存问题

某企业对于某种材料的月需求量为随机变量,具有如下表概率分布: 需求量 50 60 70 80 90 100 110 120 (吨) p(j) 0.10 0.20 0.15 0.25 0.05 0.10 0.10 0.05

每次订货费为500元,每月每吨保管费为50元,每月每吨货物缺货费为1500元,每吨材料的购价为1000元。该企业欲采用周期性盘点的(s,S)策略来控制库存量,求最佳的s,S值。

(注:(s,S)策略指的是若发现存货量少于s时立即订货,将存货补充到S,使得经济效益最佳。)

2. 问题分析

首先确定S,s的取值范围,因为(s,S)策略指的是若发现存货量少于s时立即订货,将存货补充到S,使得经济效益最佳。可知S,s的合理范围应在[50,120]。因为要考虑长期的经济效益,所以本题中对1000个月的库存进行考虑,并且假设每个月均保留货物至月底再进行使用,在每个月的月初对上个月及本月进行盘点。

3.程序代码

min=999999999999999; for S=50:10:120 for s=50:10:S flag=0; value=0; remains=S; for count =1:1:200 if flag==1

amount=S-remains;

remains=S;

value=value+amount*1000+500; else

value=value; end

z=rand(1,1); if z> 0.95&z<1 need=120; end

if z>0.85& z<0.95 need=110; end

if z>0.75&z<0.85 need=100; end

if z>0.7&z<0.75 need=90; end

if z>0.45& z<0.7 need=80; end

if z>0.3& z<0.45 need=70; end

if z>0.1&z<0.3 need=60; end

if z>0&z<0.1 need=50; end

remains=remains-need; if remains< 0

value=value+(0-remains)*1500; flag=1; else

if remains< s flag=1;

value=value+remains*50; else

flag=0;

value=value+remains*50; end end end

t=value/200; S; s; t;

if t运行结果显示当S=110,s在90附近取值时,费用最少。

四.插值问题

1.实验题目:

在某海域测得一些点(x,y)处的水深z由下表给出,船的吃水深度为5英尺,在矩形区域(75,200)*(-50,150)里的哪些地方船要避免进入。

x 129 140 103.5 88 185.5 195 105 y 7.5 141.5 23 147 22.5 137.5 85.5 z 4 8 6 8 6 8 8 x 157.5 107.5 77 81 162 162 117.5 y -6.5 -81 3 56.5 -66.5 84 -33.5 z 9 9 8 8 9 4 9

2.问题分析:

由题目易知此题属于差值问题,需要用差值算法并且借助于计算机来模拟题目中描述的情景,而我们需要解决的问题是:根据已知条件借助于MATLAB画图工具来预测不同点的水的深度,根据预测的结

果使船避免进入这些区域。

3.程序代码:

1) x=[129,140,103.5,88,185.5,195,105,157.5,107.5,77,81,162,162,117.5]; 2) y=[7.5,141.5,23,147,22.5,137.5,85.5,-6.5,-8.1,3,56.5,-66.5,84,-33.5]; 3) z=[4,8,6,8,6,8,8,9,9,8,8,9,4,9]; 4) xi=75:1:200; 5) yi=-50:1:150;

6) z3i=griddata(x,y,z,xi,yi','cubic') 7) figure(4)

8) mesh(xi,yi,z3i)

9) xlabel('X'),ylabel('Y'),zlabel('Z') 10) figure(5)

11) [C,h]=contour(xi,yi,z3i,'r') 12) clabel(C,h)

4.实验结果

(1)海底深度曲面图

(2)平面等高线图

5.水的流出时间问题

1.实验题目:

有一圆台圆台,上半径为2m,下半径为1m,髙为4m。圆台中注满水。圆台底部有一面积为的0.001m2出水口。现在经出水口,从水满状态开始漏水。请绘制出流速曲线。

2.问题分析:

在此问题中我们需要考虑的是一个流速随时间变化的动态过程,于是可以先可虑一个微小变化,当y从:y+

变化到y(高度是

减少的),由于只是一个微小的高度变化,所以可以把水塔看作是一个圆柱形,水塔中水的体积也就可以看做是一个圆柱体水的体积的变

化量=-=*(/16+y/2+1),(水的体积是减少量,

所以应该为负)。建立起微分方程后我们就可以用matlab进行仿真算出结果并绘制时间和高度的曲线图。

3.程序代码:

t=0;

for i=0:0.001:4-0.001 V=0.001*pi*(2-(1/4*i))^2; T=V/(sqrt(2*(4-i)*9.8)*0.001) t=T+t;

plot(t,(4-i),'black'); hold on

end

4.实验结果:

6.层次分析问题 1.实验题目

一位四年级大学生正在从若干招聘单位中挑选合适的工作岗位,他考虑的主要因素包括发展前景,经济收入,单位信誉,地理位置等。试建立模型给他提出决策建议。

2.问题分析

用层次分析法。

X1:发展前景 X2:经济收入 X3:单位信誉 X4:地理位置

比较赋值矩阵A=[1 1/5 1/3 1;5 1 3 1/9;3 1/3 1 5;1 9 1/5 1;]; 通过迭代的方法得到各权系数。再通过综合评价公式整体权衡,挑选出最适合的工作岗位。

3.程序代码

A=[1 1/5 1/3 1;5 1 3 1/9;3 1/3 1 5;1 9 1/5 1;]; e0=[1/4;1/4;1/4;1/4]; e01=A*e0; e02=norm(e01); e1=e01/e02; e11=A*e1; e12=norm(e11); e2=e11/e12; e21=A*e2 e22=norm(e21) e3=e21/e22 e31=A*e3 e32=norm(e31) e4=e31/e32 e41=A*e4 e42=norm(e41) e5=e41/e42 e51=A*e5 e52=norm(e51) e6=e51/e52 e61=A*e6 e62=norm(e61) e7=e61/e62 e71=A*e7 e72=norm(e71) e8=e71/e72 e81=A*e8 e82=norm(e81) e9=e81/e82 e91=A*e9 e92=norm(e91) e10=e91/e92 e111=A*e10 e112=norm(e111) e12=e111/e112 e121=A*e11 e122=norm(e121) e13=e121/e122 e131=A*e13 e132=norm(e131) e14=e131/e132 e141=A*e14 e142=norm(e141) e15=e141/e142 e151=A*e15 e152=norm(e151) e16=e151/e152 e161=A*e16 e162=norm(e161) e17=e161/e162 e171=A*e17 e172=norm(e171) e18=e171/e172 e181=A*e18 e182=norm(e181) e19=e181/e182 e191=A*e19 e192=norm(e191) e20=e191/e192 e201=A*e20 e202=norm(e201) e21=e201/e202 e211=A*e21 e212=norm(e211) e22=e211/e212 e211=A*e21 e212=norm(e211) e22=e211/e212 e221=A*e22 e222=norm(e221) e23=e221/e222 e231=A*e23 e232=norm(e231) e24=e231/e232 e241=A*e24 e242=norm(e241) e25=e241/e242 e251=A*e25 e252=norm(e251) e26=e251/e252 e261=A*e26 e262=norm(e261) e27=e261/e262 e271=A*e27 e272=norm(e271) e28=e271/e272 e281=A*e28 e282=norm(e281) e29=e281/e282 e291=A*e29 e292=norm(e291) e30=e291/e292 e301=A*e30 e302=norm(e301) e31=e301/e302 e311=A*e31 e312=norm(e311) e32=e311/e312 e321=A*e32 e322=norm(e321) e33=e321/e322 e331=A*e33 e332=norm(e331) e34=e331/e332 e341=A*e34 e342=norm(e341) e35=e341/e342 e351=A*e35 e352=norm(e351) e36=e351/e352 e361=A*e36 e362=norm(e361) e37=e361/e362 4.实验结果

直至运行35次,才得到e35=e34,则e35的四个值就是各

权重值.综合分析函数为

Y=1.1497x1+0.4235x2+0.6124x3+0.6506x4 再根据具体情况求的y值,即可确定最佳选择。

实验总结:

通过本次实验使我跟好的认识了有关数学建模的知识,并且了解了有关内容,使

我对数学的认识又多了一步,并且使我学会了使用2种数学软件,虽然不熟悉,但还是可以解决一些问题。但是在做实验的过程中遇到很多问题,所以和同学讨论了一些有关知识,增加了我们的友谊。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top