数学模型实验报告

西

实 验 报 告

                        数学模型          

                                          

                      _                  

                        ____             _

                                _____     


目录

实验一  Matlab基本语法与绘图……………………………………

实验二  Matlab解规划问题…………………………………

实验三  Matlab解微积分与微分方程……………………………

实验四  Matlab解最短路问题…………………………………

实验五  概率统计模型…………………………

  

         实验一Matlab基本语法与绘图

实验课程名称 数学实验

实验项目名称 Matlab基本语法与绘图

1. 实验的目的和要求

      了解一些简单的矩阵、向量、数组、和多项式的构造和运算方法。

例如,懂得编写简单的数值计算的Matlab程序;同时掌握二维图形和三维图

的绘制方法,能够使用这些方法进行常用的数据可视化处理,用其画出图形。

2. 实验内容和原理

内容:循环语句,对的值.

     矩阵运算编制一个正弦函数表

           绘图计算:在[0,2*pi]用红线画sin(x),用绿圈画cos(x).

     原理:根据循环语句的结构,矩阵的特殊运算方法以及绘图的专用语句求解。

3. 主要仪器设备

         计算机与Windows 2000/XP;Matla等软件。

4. 操作方法与实验步骤

    步骤:1.打开Matlab,新建file-M文件

             在M文件编辑窗口输入以下程序,并以文件名f1.m保存

                for n=1:10

                        x(n)=sin(n*pi/10)

                   end

x

             点击执行按钮,运行其代码

                 x =0.3090,0.5878,0.8090,0.9511 ,1.0000 ,0.9511 0.8090,0.5878,0.3090,0.0000

         2.打开Matlab,新建file-M文件

               在M文件编辑窗口输入以下程序,并以文件名f2.m保存

                 x=[1 2 3;4 5 6;7 8 9;10 11 12]/24;

                    y=sin(x*pi)

                  点击执行按钮,运行其代码

                    y = 0.1305    0.2588    0.3827

                        0.5000    0.6088    0.7071

                        0.7934    0.8660    0.9239

                        0.9659    0.9914    1.0000

          3.打开Matlab,新建file-M文件

               在M文件编辑窗口输入以下程序,并以文件名f3.m保存x=linspace(0,2*pi,30);

y=sin(x);

z=cos(x);

plot(x,y,'r',x,z,'g0')

               点击执行按钮,运行其代码

 

5. 实验结果分析

1中根据n从1到10的循环由x与n所建立的函数关系便求出了所有的循环结果。2.中根据矩阵的行列以及特殊的数学运算,与三角函数相结合,从而构成一个以矩阵为主的y的值。3中根据matlab绘图的固定的语言,得出函数的清晰图像,从而清楚的观察到函数的变化趋势。

实验二Matlab解规划问题

1.实验课程名称 数学实验

2.实验项目名称 Matlab解线性规划或非线性规划问题

3.实验的目的和要求

           了解一些线性规划与非线性规划的基本内容,掌握用数学软件包来  了解线性规划与非线性规划的问题。

4.实验内容和原理

      内容:1.      

2.     

             

      原理:利用求解线性规划的单纯形法和非线性规划求解思路,应用Matlab软件求解线性规划和非线性规划。

5.主要仪器设备 

计算机与Windows 2000/XP系统;Matlab等软件。

6.操作方法与实验步骤

步骤:1.(1)打开Matlab,新建file-M文件

        (2)在M文件编辑窗口输入以下程序,并以文件名”fun.m”                  保存:    function f=fun(x);

            f=-2*x(1)-x(2);

                 再新建一个M文件,mycon2.m定义非线性约束:

             function [G,Ceq]=mycon2(x)

               G=[x(1)^2+x(2)^2-25;x(1)^2-x(2)^2-7];

                  再建一个主程序M文件,f1.m文件:

              x0=[3;2.5];

            VLB=[0,0];VUB=[5,10];

            A=[];B=[];

             Aeq=[];beq=[];

      [x,fval]=fmincon('fun',x0,A,b,Aeq,beq,VLB,VUB,'mycon2')

    (3)点击保存和执行按钮,运行其代码

2. (1)打开Matlab,新建file-M文件

        (2)在M文件编辑窗口输入以下程序,并以文件名”fun.m”                  保存:    C=[5 6 7 8];

A=[-5 -4 -5 -6;2 1 1 4];

b=[-530;160];

Aeq=[1 1 1 1];

beq=[100];

vlb=[0,0,0,0];vub=[];

[x,fval]=linprog(C,A,b,Aeq,beq,vlb,vub)

(3)点击保存和执行按钮,运行其代码

7.实验结果与分析

实验结果与分析:1.

x =

    4.0000

    3.0000

fval =-11.0000

fmincon函数可能会给出局部最优解,这与初值X0的选取有关。该输出的结果有两个最值x1=4.0000和x2=3.0000并且在此时x处的值fval为-11.0000

2.实验结果:

      分析:[1]若没有不等式:存在,则令A=[ ],b=[ ].

[2]若没有等式约束:Aeq*X=beq, 则令Aeq=[ ], beq=[ ]

              [3]由此结果得出该函数的最优解为x1=0.0000,x2=0.0000,x3=82.8571,x4=19.2857及在此时x处的目标函数值为734.2587

  实验三Matlab解微积分与微分方程

1.实验课程名称 数学实验

2.实验项目名称 Matlab解微积分与微分方程

3.实验的目的和要求

           学会用Matlab求简单的微分方程和微积分的解析解,学会用Matlab求微分方程和微积分的数值解

4.实验内容和原理

          内容:微分方程组,

             

               微积分的求解,求定积分

             原理:根据微分方程与微积分的不同的特点以及在Matlab中各自的特定的语句来进行求解

5.主要仪器设备

            计算机与Windows 2000/XP;Matla等软件。

6.操作方法与实验步骤

          步骤:1.打开Matlab,新建file-M文件

                    在M文件编辑窗口输入以下程序,并以文件名f1.m保存x,y,z]=dsolve('Dx=2*x-3*y+3*z',

'Dy=4*x-5*y+3*z','Dz=4*x-4*y+2*z','t');

x=simple(x) y=simple(y)z=simple(z)

点击执行按钮,运行其代码

                     x = (c1-c2+c3+c2e -3t-c3e-3t)e2t

                     y =-c1e-4t+c2e-4t+c2e-3t-c3e-3t+c1-c2+c3)e2t

                     z = (-c1e-4t+c2e-4t+c1-c2+c3)e2t                 

               2.打开Matlab,新建file-M文件

                    在M文件编辑窗口输入以下程序,并以文件名f2.m保存

                         s=int('x*exp(x)/(1+x)^2',0,1)

                       点击执行按钮,运行其代码

                    s =-1+1/2*exp(1)

7.实验结果分析

            1.根据微分方程独特简洁的解答方法得出

x = (c1-c2+c3+c2e -3t-c3e-3t)e2t

                  y = -c1e-4t+c2e-4t+c2e-3t-c3e-3t+c1-c2+c3)e2t

                  z = (-c1e-4t+c2e-4t+c1-c2+c3)e2t                

2.中根据定积分的独特语句通过使用int来进行求解,从而得出简洁明了的答案

实验四Matlab解最短路问题

1.实验课程名称 数学实验

2实验项目名称 Matlab解最短路问题

3.实验的目的和要求

           了解最短路的算法及应用,会用Matlab软件求最短路

4.实验内容和原理

          内容:最短路求法,求下图从顶点到其余顶点的最短路

 

             

最短路应用:某城市要建一个消防站,为该市所属的七个区服务,如图所示,问应设在哪个区才能使它至最远的路径最短?

            

原理: 在图的带权邻接矩阵中用插入顶点的方法依次构造出v个矩阵使得最后得到的矩阵成为图的距离矩阵,同时也求出插入点矩阵以便得到两点间的最短路径

5.主要仪器设备

            计算机与Windows 2000/XP;Matla等软件。

6.操作方法与实验步骤

          步骤:1.打开Matla,新建file-M文件

                    在M文件编辑窗口输入以下程序,并以文件名f1.m保存

                   w=[0 2 1 8 inf inf inf inf;2 0 inf 6 1 inf inf inf;1 inf 0 7 inf inf 9 inf;...

      8 6 7 0 5 1 2 inf;inf 1 inf 5 0 3 inf 9;inf inf inf 1 3 0 4 6;...

      inf inf 9 2 inf 4 0 3;inf inf inf inf 9 6 3 0]

   n=size(w,1);

   w1=w(1,:);

  

   %¸³³õÖµ

   for i=1:n

      l(i)=w1(i);

      z(i)=1;

   end

   s=[];

   s(1)=1;

   u=s(1);

   k=1

   l

   z

  

while k<n

   % ¸üРl(v) ºÍ z(v)

   for i=1:n

      for j=1:k

      if i~=s(j)

         if l(i)>l(u)+w(u,i)

            l(i)=l(u)+w(u,i);

            z(i)=u;

         end

      end

      end

   end

   l

   z

  

   %Çóv*

   ll=l;

   for i=1:n

      for j=1:k

         if i~=s(j)

            ll(i)=ll(i);

         else

            ll(i)=inf;

         end

      end

   end

  

   lv=inf;

   for i=1:n

      if ll(i)<lv

         lv=ll(i);

         v=i;

      end

   end    

   lv

   v

  

  s(k+1)=v

  k=k+1

  u=s(k)

 

end

l

z

   点击执行按钮,运行其代码

                     w =

     0     2     1     8   Inf   Inf   Inf   Inf

     2     0   Inf     6     1   Inf   Inf   Inf

     1   Inf     0     7   Inf   Inf     9   Inf

     8     6     7     0     5     1     2   Inf

   Inf     1   Inf     5     0     3   Inf     9

   Inf   Inf   Inf     1     3     0     4     6

   Inf   Inf     9     2   Inf     4     0     3

   Inf   Inf   Inf   Inf     9     6     3     0

k =1,l =0     2     1     8   Inf   Inf   Inf   Inf

z =1     1     1     1     1     1     1     1

l = 0     2     1     8   Inf   Inf   Inf   Inf

z =1     1     1     1     1     1     1     1

lv =1,v =3,s = 1     3,k =2,u = 3

l =0     2     1     8   Inf   Inf    10   Inf

z =1     1     1     1     1     1     3     1

lv =2,v =2,s =1     3     2,k =3,u =2

l =0     2     1     8     3   Inf    10   Inf

z = 1     1     1     1     2     1     3     1

lv =3,v =5,s =1     3     2     5

k = 4,u =5

l = 0     2     1     8     3     6    10    12

z =1     1     1     1     2     5     3     5

lv = 6

v =6

s = 1     3     2     5     6

k =5,u =6

l =0     2     1     7     3     6    10    12

z =1     1     1     6     2     5     3     5

lv =7

v = 4

s = 1     3     2     5     6     4

k =6,u =4

l = 0     2     1     7     3     6     9    12

z =1     1     1     6     2     5     4     5

lv = 9,v =7

s = 1     3     2     5     6     4     7

k =7,u =7

l = 0     2     1     7     3     6     9    12

z =1     1     1     6     2     5     4     5

lv =12,v =8

s =1     3     2     5     6     4     7     8

k =8,u =8

l =0     2     1     7     3     6     9    12

z =1     1     1     6     2     5     4     5

>>                2.打开Matlab,新建file-M文件

function[D,R]=floyd(a)

n=size(a,1);

D=a

for i=1:n

   for j=1:n

     R(i,j)=j;

   end

end

R

for k=1:n

   for i=1:n

      for j=1:n

         if D(i,k)+D(k,j)<D(i,j)

            D(i,j)=D(i,k)+D(k,j);

            R(i,j)=R(i,k);

         end

      end

   end

   k

   D

   R

end

                    在M文件编辑窗口输入以下程序,并以文件名f2.m保存

                     a=[0 3 inf inf inf inf inf;3 0 2 inf 18 2.5 inf;...

                         inf 2 0 6 2 inf inf;inf inf 6 0 3 inf inf;...

                         inf 18 2 3 0 4 inf;inf 2.5 inf inf 4 0 1.5;...

                         inf inf inf inf inf 1.5 0];

[D,R]=floyd(a)

                       点击执行按钮,运行其代码

                     D =

         0    3.0000    5.0000   10.0000    7.0000    5.5000    7.0000

    3.0000         0    2.0000    7.0000    4.0000    2.5000    4.0000

    5.0000    2.0000         0    5.0000    2.0000    4.5000    6.0000

   10.0000    7.0000    5.0000         0    3.0000    7.0000    8.5000

    7.0000    4.0000    2.0000    3.0000         0    4.0000    5.5000

    5.5000    2.5000    4.5000    7.0000    4.0000         0    1.5000

    7.0000    4.0000    6.0000    8.5000    5.5000    1.5000         0

R =

     1     2     2     2     2     2     2

     1     2     3     3     3     6     6

     2     2     3     5     5     2     2

     5     5     5     4     5     5     5

     3     3     3     4     5     6     6

     2     2     2     5     5     6     7

     6     6     6     6     6     6     7

                 

7.实验结果分析

            1.中根据最短路径原理可得出最小的权,即在同等效果下最短的距离。2.用floyd算法求出距离矩阵,然后计算各点v设立服务设施的最大服务距离s(v)求出顶点使得s最小,则其为所求的消防站点。

实验五Matlab概率统计模型

1.实验课程名称 数学实验

2.实验项目名称 Matlab统计数据与回归分析,线性与非线性拟合

3.实验的目的和要求

           直观了解统计基本内容,掌握用数学软件包求解统计问题以及回归问题,了解拟合基本内容,掌握用数学软件求解拟合问题

4.实验内容和原理

 内容:回归问题:对一道工序用自动化车床连续加工某种零件,由于刀具损坏等会出现故障.故障是完全随机的,并假定生产任一零件时出现故障机会均相同.工作人员是通过检查零件来确定工序是否出现故障的.现积累有100次故障纪录,故障出现时该刀具完成的零件数如下:

   459  362  624  542  509  584  433  748   815  505

   612  452  434  982  640  742  565  706   593  680

   926  653  164  487  734  608  428  1153  593  844

   527  552  513  781  474  388  824  538   862  659

   775  859  755  49   697  515  628  954   771  609

   402  960  885  610  292  837  473  677   358  638

   699  634  555  570  84   416  606  1062  484  120

   447  654  564  339  280  246  687  539   790  581

   621  724  531  512  577  496  468  499   544  645

   764  558  378  765  666  763  217  715   310  851

试观察该刀具出现故障时完成的零件数属于哪种分布.

  数据拟合:用下面一组数据拟合中的参数a,b,k

原理:根据线性回归的数据分析与调用,与拟合来解答问题

5.主要仪器设备

            计算机与Windows 2000/XP;Matla等软件。

6.操作方法与实验步骤

  步骤:1. 打开Matlab,新建file-M文件

           在M文件编辑窗口输入以下程序,并以文件名f1.m保存

(1)数据输入程序:x1=[459  362  624  542  509  584  433  748   815  505];

x2=[612  452  434  982  640  742  565  706   593  680];

x3=[926  653  164  487  734  608  428  1153  593  844];

x4=[527  552  513  781  474  388  824  538   862  659];

x5=[775  859  755  49   697  515  628  954   771  609];

x6=[402  960  885  610  292  837  473  677   358  638];

x7=[699  634  555  570  84   416  606  1062  484  120];

x8=[447  654  564  339  280  246  687  539   790  581];

x9=[621  724  531  512  577  496  468  499   544  645];

x10=[764  558  378  765  666  763  217  715   310  851];

x=[x1 x2 x3 x4 x5 x6 x7 x8 x9 x10];

save dj x

(2)作频数直方图:load dj hist(x,10)

(3)分布的正态性检验:load dj normplot(x)

(4)参数估计:load dj

[muhat,sigmahat,muci,sigmaci] = normfit(x)

(5)假设检验:load dj

[h,sig,ci] = ttest( x ,594)

              

                 点击执行按钮,运行其代码

(7)muhat =594 sigmahat =204.1301 muci =553.4962

634.5038 sigmaci=179.2276 237.1329

(8)h = 0,sig = 1,ci =[553.4962,634.5038].

             

2.分析:该问题即解最优化问题

      打开Matlab,新建 file-M文件

      在M文件编辑窗口输入以下程序,并以文件名f2.m保存

                    clear

                    tdata=100:100:1000

  cdata=1e-03*[4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.39,6.50,6.59];

  x0=[0.2,0.05,0.05];

  x=lsqcurvefit('curvefun1',x0,tdata,cdata)

  f=curvefun1(x,tdata) 

  x

                       点击执行按钮,运行其代码

               f =0.0043    0.0051    0.0056    0.0059    0.0061  

                             0.0062    0.0062    0.0063    0.0063    0.0063

                   x = 0.0063   -0.0034    0.2542

       3.打开Matlab,新建file-M文件

         在M文件编辑窗口输入以下程序,并以文件名f3.m保存

         点击执行按钮,运行其代码

7.实验结果分析

          1.根据以上的数据,图像,正态分布得出估计出该刀具的均值为594,方差204,均值的0.95置信区间为[ 553.4962,634.5038],方差的0.95置信区间为[ 179.2276,237.1329] 检验结果:  1. 布尔变量h=0, 表示不拒绝零假设. 说明提出的假设寿命均值594是合理的.

          2. 95%的置信区间为[553.5,634.5], 它

完全包括594, 且精度很高.

          3. sig-值为1, 远超过0.5, 不能拒绝零假 设.

          4.根据拟合方法与最优化模型 解答结果为a=0.0063, b=-0.0034, k=0.2542

    

相关推荐