当前位置:文档之家› 数学建模实验报告

数学建模实验报告

数学建模实验报告一、实验目的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 01 0 0 0 0 00 0 0 0 0 00 1 0 0 0 00 0 0 0 0 00 0 0 0 0 10 0 0 0 1 00 0 0 1 0 0c = 1 1 0 1 0 1 1 14、解决方法(MATLAB程序代码):n=10;r=10;d=1000;a=0;for l=1:dm=full(sparse(randint(1,r,[1,n]),1:r,1,n,r));c=zeros(n,1);for i=1:nfor j=1:rif m(i,j)==1c(j)=1;break;endcontinue;endends=0;for x=1:nif c(x)==1s=s+1;endcontinue;enda=a+s;enda/d5、实验结果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)<=6010*x(1)+20*x(2)<=150x(1)<=84、解决方法(MATLAB程序代码)c=[-10,-9];A=[6,5;10,20;1,0];b=[60,150,8];x=linprog(c,A,b);x=floor(x);xz=10*x(1)+9*x(2);z5、实验结果x =64z = 96扩展1)将参数b改为[61,150,8],得到结果为:x =64z = 96投资后,总利润并没有增加,而且花费了投资成本。

所以,不应该作这项投资。

扩展2)将参数c改为[-11,-9],得到结果为:x =72z = 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:9temp=linecolor(a(3*i)+a(3*i+1)+a(3*i+2));if temp>0 templine=templine+1; endendfor i=1:9:26for j=1:3temp=linecolor(a(i)+a(i+3)+a(i+6));i=i+1;if temp>0 templine=templine+1; endendi=i-3;endfor i=1:9temp=linecolor(a(i)+a(i+9)+a(i+18));if temp>0templine=templine+1; endendfor i=1:26temp1=linecolor(a(i)+a(i+4)+a(i+8));temp2=linecolor(a(i+2)+a(i+4)+a(i+6));if temp1>0 templine=templine+1; endif temp2>0 templine=templine+1; endendfor i=1:3:7temp1=linecolor(a(i)+a(i+10)+a(i+20));temp2=linecolor(a(i+2)+a(i+10)+a(i+18));if temp1>0 templine=templine+1;endif temp2>0 templine=templine+1;endendfor i=1:3temp1=linecolor(a(i)+a(i+12)+a(i+24));temp2=linecolor(a(i+6)+a(i+12)+a(i+18));if temp1>0 templine=templine+1;endif temp2>0 templine=templine+1;endendtemp1=linecolor(a(0)+a(13)+a(26));temp2=linecolor(a(8)+a(13)+a(18));temp3=linecolor(a(2)+a(13)+a(24));temp4=linecolor(a(6)+a(13)+a(20));if temp1>0 templine=templine+1;endif temp2>0 templine=templine+1;endif temp3>0 templine=templine+1;endif temp4>0 templine=templine+1;end子函数:function r= linecolor(n)if n==3 || n==0r=1;elser=0;endreturn;5、实验结果sum = 4insert = 1 2 3 5 8 12 15 18 19 21 22 25 27即最少单色球线数为4条,其中放黑球单元为:1 2 3 5 8 12 15 1819 21 22 25 27。

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

2、问题分析分析该区域内各个地方的水深情况,比较各点的水深与船的吃水深度,深度小于或等于船的吃水深度的地方即为船要避免进入的危险区域。

3、模型建立(1)利用插值法,得到海底各处深度的分布情况,并画出海底地貌图像。

(2)通过与船吃水深度的条件比较,得到危险区域的平面图。

4、解决方法(MATLAB程序)画出此区域海底深度图像:x=[129,140,103.5,88,185.5,195,105,157.5,107.5,77,81,162,162,117.5];%x=sort(x);y=[7.5,141.5,23,147,22.5,137.5,85.5,-6.5,-81,3,56.5,-66.5,84,-33.5];%y=sort(y);z=[-4,-8,-6,-8,-6,-8,-8,-9,-9,-8,-8,-9,-4,-9];[X,Y,Z]=griddata(x,y,z,linspace(75,200)',linspace(-75,150),'v4');surf(X,Y,Z)画出深度为5英尺的等深线:contour(X,Y,Z,[-5,-5],'r.')5、实验结果下图中红色等深线内为危险区域。

(五)题目五1、问题:一位四年级大学生正在从若干个招聘单位中挑选合适的工作岗位,他考虑的主要因素包括发展前景、经济收入、单位信誉、地理位置等。

试建立模型给他提出决策建议。

2、问题分析(1)这是一个决策问题,是半定性、半定量的。

因此,考虑使用层次分析法进行分析解决。

(2)将问题分解为若干层次和若干因素,在各因素之间进行简单的比较和计算,得出不同方案的权重。

3、模型建立(1)假设设定:有3家公司,分别是百度、腾讯与阿里巴巴。

选择中考虑的主要因素为:发展前景、经济收入、单位信誉和地理位置。

分别用x1、x2、x3、x4代表这四个因素,y代表综合评价参数,w代表权值向量。

所以,综合评价方程模型可设为: y = w1x1 + w2x2 + w3x3 + w4x4公司\因素发展前景经济收入单位信誉地理位置百度93 4000元/月(80)90 北京(85)腾讯91 4400元/月(88)86 深圳(88)阿里巴巴94 3800元/月(76)89 杭州(90)3)层次分析图:4、解决方法赋值:x1/x2 = 3/4;x1/x3 = 3/2;x1/x4 = 3/2;x2/x3 = 2;x2/x4 = 2;x3/x4 = 1.则该问题的判断矩阵为:A=1 , 3/4 , 3/2 , 3/24/3 , 1 , 2 , 22/3 , 1/2 , 1 , 12/3 , 1/2 , 1 , 1经过一下MATLAB程序可求出各因数在综合评价中的权值:A=[1,3/4,3/2,3/2;4/3,1,2,2;2/3,1/2,1,1;2/3,1/2,1,1];[n,n]=size(A);p=ones(n,100);q=ones(n,100);m=zeros(1,100);m(1)=max(p(:,1));q(:,1)=p(:,1);p(:,2)=A*q(:,1);m(2)=max(p(:,2));q(:,2)=p(:,2)/m(2);l=0.0001;i=2;k=abs(m(2)-m(1));while k>pi=i+1;p(:,i)=A*q(:,i-1);m(i)=max(p(:,i));q(:,i)=p(:,i)/m(i);k=abs(m(i)-m(i-1));enda=sum(q(:,i));w=q(:,i)/a;t=m(i);w5、实验结果综合评价的权值向量为:w = 0.27270.36360.18180.1818所以综合评价方程为:y = 0.2727 x1 + 0.3636 x2 + 0.1818 x3 + 0.1818 x4 .那么三家公司的综合评价得分为:百度:y=0.2727 * 93 + 0.3636 * 80 + 0.1818 * 90 + 0.1818 * 85 .=86.2641腾讯:y=0.2727 * 91 + 0.3636 * 88 + 0.1818 * 86 + 0.1818 * 88 .=88.4457阿里巴巴:y=0.2727 * 94 + 0.3636 * 76 + 0.1818 * 89 + 0.1818 * 90 .=85.8096结果显示,腾讯的评价分数最高。

相关主题