实验报告
课程名称数学建模 日期 20##年6月8日
年级 班级 姓名 学号
实验名称实际问题求数值解和符号解
实验目的及要求:
1、学会用MATLAB解决实际问题中的求最小生成树问题。
2、学会建立线性规划模型,并用MATLAB求出机器的最优更新策略。
3、学会利用MATLAB软件求数值解和符号解,并比较结果。
4、建立小船航线的方程,并用MATLAB求出解析解和数值解,并比较结果。
实验内容:
一、题目4.1
1.打开MATLAB编写如下程序(m文件名为a084b41):
a=zeros(6);
a(1,[2:6])=[56 35 21 51 60];
a(2,[3:6])=[21 57 78 70];
a(3,[4:6])=[36 68 68];
a(4,[5:6])=[51 61];
a(5,6)=13;
a=a';
a=sparse(a);
[ST,pred]=graphminspantree(a,'method','Kruskal');
nodestr=['L','M','N','Pa','Pe','T'];
h=view(biograph(ST,nodestr,'ShowArrows','off','ShowWeights','on'));
h.EdgeType='segmented';
h.LayoutType='equilibrium';
dolayout(h)
2.输出结果为:
图4.1 最小生成树图
二、题目4.2
1、问题分析与假设:
记vi(i=1,2,3,4)表示第i年年初的时刻,v5表示第四年末的时刻,构造赋权图G=(V,A,W),其中V={v1,v2,…v5},A为弧的集合,邻接矩阵W,可计算得:
W=
4年内用于更换,购买及运行维修总费用最省的问题,归结为求图G中从v1到v5的费用最短路,可以使用Dijkstra标号算法求解。
2、打开MATLAB编写如下程序(m文件名为a084b42):
a=zeros(5);
a(1,[2:5])=[0.8 2 3.8 6];
a(2,[3:5])=[0.9 2.1 3.9];
a(3,[4:5])=[1.1 2.3];
a(4,5)=1.4;
b=sparse(a);
[dist,path]=graphshortestpath(b,1,5,'Directed',1)
3、输出结果为:
dist = 4
path = 1 2 3 5
4、结论:求得的最优更新策略为第二年初和第三年初都换一台新机器,总费用为4万元。
三、题目6.1
1、问题分析与假设:
设导弹运行的参数方程为 ,即在t时刻,导弹的位置在点(x(t),y(t)),然后经过一系列变换可以得到导弹运动轨迹满足的微分方程。
2、打开MATLAB编写如下程序(符号解和数值解m文件名分别为a084b611、a084b612):
符号求解的MATLAB程序如下:
y=dsolve('D2y=sqrt(1+(Dy)^2)/5/(1-x)','y(0)=0,Dy(0)=0','x');
ezplot(y(2),[0,0.9999]);
yy=subs(y(2),'x',1);
title('')
也可利用MATLAB求数值解,求解的MATLAB程序如下:
dyy=@(x,yy)[yy(2);sqrt(1+yy(2)^2)/5/(1-x)];
yy0=[0,0]';
[x,yy]=ode45(dyy,[0,1-eps],yy0);
plot(x,yy(:,1));
yys=yy(end,1)
3、输出结果为:
符号解:当x=1时,y=0.2083,导弹运行轨迹如下:
数值解:当x=1时,y=0.2083,导弹运行轨迹如下:
图6.1 导弹运行轨迹
4、结论:当x=1时,y=0.2083,导弹运行轨迹如图6.1,数值解和符号解的结果一致。
四、题目6.6
1、问题分析与假设:
由题意可以建立小船航线的参数方程为:
2、打开MATLAB编写如下程序(m文件名为a084b66):
d=100;v1=1;
v2=2;
k=v1/v2;
y=@(x)d/2*((x/d).^(1-k)-(x/d).^(1+k));
ezplot(y,[100,0]);
dxy=@(t,xy)[-2*xy(1)/sqrt(xy(1)^2+xy(2)^2);1-2*xy(2)/sqrt(xy(1)^2+xy(2)^2)];
[t,xy]=ode45(dxy,[0,66.65];[100,0]);
solu=[t,xy];
hold on;
plot(xy(:,1),xy(:,2),'*r');
legend('解析解','数值解');
xlabel(''),title('')
3、输出结果为:
图6.6 解析解和数值解对照图
4、结论:通过数值解求出小船渡河的时间为66.65秒,解析解和数值解的对照图如图6.6所示。
第二篇:数学建模实验报告5
数学建模实验
——儿童受教育水平问题
班级:
姓名:
学号:
儿童受教育水平问题
一、问题描述
社会学的某些调查结果表明儿童受教育的水平依赖于他们父母受教育的水平。调查的过程中是将人们划为三类:
E 类:这类人具有初中或初中以下的文化程度;
S类:这类人具有高中文化程度;
C 类:这类人受过高等教育。
当父或母(指文化程度较高者)是这三类人中一类型时,其子女将属于这三类型中的任一中的概率如下:
问:(1)属于S 类的人口中,其第三代将接受高等教育的概率是多少?
(2)假设不同的调查结果表明,如果父母之一接受过高等教育那么他们的子女总是可以进大学修改上面的转移矩阵。
(3)根据2的解,每一类型人口的后代平均要经过多少代,最终都可以接受高等教育。
二、分析与建模
建立一个马尔科夫链的随机矩阵A,用于存放各类文化程度人的子女的受教育程度的概率,利用矩阵相乘的特点给以一个初始矩阵P(0)(及初始条件:如属于S类,其初始矩阵为右乘矩阵A ,便得到第一代人的受教育程度的分布的矩阵P(1),在右乘矩阵A,得到第二代人受教育程度的分布矩阵,以此类推的到第n代人受教育程度的分布矩阵
P(n)=(A^n)*P(0)=A*P(n-1).
三、程序代码
程序:
clc
clear
x=rand(20,3);
x(1,:)=[,,];
A=[1,0,0;0.4,0.4,0.2;0.1,0.2,0.7];
for i=2:1:100
x(i,:)=x(i-1,:)*A;
end
x
i=1:1:50
plot(i,x(i,1),i,x(i,2),i,x(i,3))
gtext('E')
gtext('S')
gtext('C')
结果:
1)x(1,:)=[1,0,0];
x =
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
2)x(1,:)=[0,1,0];
x =
0 1.0000 0
0.4000 0.4000 0.2000
0.5800 0.2000 0.2200
0.6820 0.1240 0.1940
0.7510 0.0884 0.1606
0.8024 0.0675 0.1301
0.8424 0.0530 0.1046
0.8741 0.0421 0.0838
0.8993 0.0336 0.0671
0.9195 0.0269 0.0537
0.9356 0.0215 0.0429
0.9485 0.0172 0.0344
0.9588 0.0137 0.0275
0.9670 0.0110 0.0220
0.9736 0.0088 0.0176
0.9789 0.0070 0.0141
0.9831 0.0056 0.0113
0.9865 0.0045 0.0090
0.9892 0.0036 0.0072
0.9914 0.0029 0.0058
0.9931 0.0023 0.0046
0.9945 0.0018 0.0037
0.9956 0.0015 0.0030
0.9965 0.0012 0.0024
0.9972 0.0009 0.0019
0.9977 0.0008 0.0015
0.9982 0.0006 0.0012
0.9985 0.0005 0.0010
0.9988 0.0004 0.0008
0.9991 0.0003 0.0006
0.9993 0.0002 0.0005
0.9994 0.0002 0.0004
0.9995 0.0002 0.0003
0.9996 0.0001 0.0003
0.9997 0.0001 0.0002
0.9998 0.0001 0.0002
0.9998 0.0001 0.0001
0.9998 0.0001 0.0001
0.9999 0.0000 0.0001
0.9999 0.0000 0.0001
0.9999 0.0000 0.0001
0.9999 0.0000 0.0000
0.9999 0.0000 0.0000
1.0000 0.0000 0.0000
1.0000 0.0000 0.0000
1.0000 0.0000 0.0000
1.0000 0.0000 0.0000
1.0000 0.0000 0.0000
1.0000 0.0000 0.0000
1.0000 0.0000 0.0000
1.0000 0.0000 0.0000
1.0000 0.0000 0.0000
3)x(1,:)=[0,0,1];
x =
0 0 1.0000
0.1000 0.2000 0.7000
0.2500 0.2200 0.5300
0.3910 0.1940 0.4150
0.5101 0.1606 0.3293
0.6073 0.1301 0.2626
0.6856 0.1046 0.2099
0.7484 0.0838 0.1678
0.7987 0.0671 0.1342
0.8389 0.0537 0.1074
0.8712 0.0429 0.0859
0.8969 0.0344 0.0687
0.9175 0.0275 0.0550
0.9340 0.0220 0.0440
0.9472 0.0176 0.0352
0.9578 0.0141 0.0281
0.9662 0.0113 0.0225
0.9730 0.0090 0.0180
0.9784 0.0072 0.0144
0.9827 0.0058 0.0115
0.9862 0.0046 0.0092
0.9889 0.0037 0.0074
0.9911 0.0030 0.0059
0.9929 0.0024 0.0047
0.9943 0.0019 0.0038
0.9955 0.0015 0.0030
0.9964 0.0012 0.0024
0.9971 0.0010 0.0019
0.9977 0.0008 0.0015
0.9981 0.0006 0.0012
0.9985 0.0005 0.0010
0.9988 0.0004 0.0008
0.9990 0.0003 0.0006
0.9992 0.0003 0.0005
0.9994 0.0002 0.0004
0.9995 0.0002 0.0003
0.9996 0.0001 0.0003
0.9997 0.0001 0.0002
0.9998 0.0001 0.0002
0.9998 0.0001 0.0001
0.9998 0.0001 0.0001
0.9999 0.0000 0.0001
0.9999 0.0000 0.0001
0.9999 0.0000 0.0001
0.9999 0.0000 0.0000
0.9999 0.0000 0.0000
1.0000 0.0000 0.0000
1.0000 0.0000 0.0000
1.0000 0.0000 0.0000
1.0000 0.0000 0.0000
1.0000 0.0000 0.0000
1.0000 0.0000 0.0000
1.0000 0.0000 0.0000
1.0000 0.0000 0.0000
1.0000 0.0000 0.0000
1.0000 0.0000 0.0000
四、问题求解
(1)
第一代:A= P(1)=A*=
E(1)=0.4 S(1)=0.4 C(1)=0.2;
第二代:P(2)=(A^2)* =
E(2)=0.4*0.6+0.4*0.4+0.2*0.1=0.42 S(2)=0.4*0.3+0.4*0.4+0.2*0.2=0.32
C(2)=0.4*0.1+0.4*0.2+0.2*0.7=0.26;
第三代:P(3)=(A^3)* =
E(3)=0.42*0.6+0.32*0.4+0.26*0.1=0.406;
(2)
(3)
E: 第一代:A=
P(1)= A*=
E(1)=1 S(1)=0 C(1)=0;
故E只需一代,即世世代代都是大学生。
S: 42 代以后都是大学生
C: 46代以后都是大学生
四、总结与感受
通过此次实验,让我对数学的兴趣更加的浓重,让我学习到了许多课外知识。开阔了我的视野,扩大了我的知识面。我要更加努力的学好数学,去进一步探索数学的神奇和奥妙。