数学建模实验报告

时间:2024.4.20

数学建模实验报告

                         计算机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.实验题目

 某企业对于某种材料的月需求量为随机变量,具有如下表概率分布:

   

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

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

2. 问题分析

首先确定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<min

           min=t;

           RS=S;

           rs=s;

       end

end

end

min

RS

rs

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

四.插值问题

1.实验题目

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

 

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种数学软件,虽然不熟悉,但还是可以解决一些问题。但是在做实验的过程中遇到很多问题,所以和同学讨论了一些有关知识,增加了我们的友谊。

更多相关推荐:
数学实验报告

西安交通大学数学实验报告高等数学实验报告MATLAB实验操作报告同组人髙加西20xx年04月10日电气工程学院电气工程与自动化专业电气12崔彧菲西安交通大学数学实验报告实验一非线性方程组求解一实验目的1熟悉MA...

数学实验实验报告

数学实验实验报告20xx20xx学年第1学期学生姓名学号院部数理学院专业班级任课教师实验报告1实验目的熟悉Mathematica软件包的使用实验内容1用两种方式编写如下自定义函数并求其导数fx在x20x10x5...

数学实验实验报告六答案

实验六实验项目名称优化实验时间20xx52620xx6220xx69实验地点理学实验楼525实验目的1掌握Matlab优化工具箱的基本用法利用优化工具包解线性规划和非线性规划的问题对不同算法作初步分析比较2练习...

数学实验实验报告模板

天水师范学院数学与统计学院实验报告实验项目名称所属课程名称实验类型线性代数实验实验日期班级学号姓名成绩12附录1源程序附录2实验报告填写说明1实验项目名称要求与实验教学大纲一致2实验目的目的要明确要抓住重点符合...

数学实验实验报告

数学与计算科学学院实验报告实验项目名称油价与船速的优化问题所属课程名称数学实验实验类型综合实验日期20xx922班级学号姓名成绩123附录2实验报告填写说明1实验项目名称要求与实验教学大纲一致2实验目的目的要明...

数学实验报告格式

《数学实验》实验报告(20##年03月30日)

《数学实验》实验报告

数学实验实验报告20xx年4月8日一实验问题1指派问题考虑指定n个人完成n项任务每人单独承担一项任务使所需的总完成时间成本尽可能短已知某指派问题的有关数据每人完成各任务所需的时间如下表所示试建模并求解该指派问题...

中南大学离散数学实验报告

离散数学实验报告目录第一章实验概述311实验目的312实验内容313实验环境3第二章实验原理和实现过程421实验原理4211逻辑连接词的运算4212真值表与主范式422实验过程算法描述4221程序整体思路422...

离散数学实验报告

离散数学实验报告实验ABC专业班级学生姓名学生学号指导老师完成时间离散数学实验三实验报告目录第一章实验概述211实验目的212实验内容213实验环境2第二章实验原理和实现过程321实验原理3211建立图的邻接矩...

(11)中南大学离散数学实验报告

离散数学实验报告实验1专业班级学号姓名日期20xx111目录一实验目的2二实验内容21逻辑联接词的运算22求任意一个命题公式的真值表3三实验环境3四实验原理和实现过程算法描述31实验原理32实验过程4五实验数据...

(3)中南大学离散数学实验报告 (1)

离散数学实验报告实验ABC专业班级学生姓名学生学号指导老师完成时间离散数学实验三实验报告目录第一章实验概述211实验目的212实验内容213实验环境2第二章实验原理和实现过程321实验原理3211建立图的邻接矩...

数学实验报告

数学实验报告实验序号1日期20xx年11月19日

数学实验实验报告(35篇)