matlab
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学实验报告
实验一:有一只猎狗在B 点位置发现了一只兔子在正东北方距离它200米的地
方O 处,此时兔子开始以8米/秒的速度向正西北方距离为120米的洞口A 全速跑去,假设猎狗在追赶兔子的时候始终朝着兔子的方向全速奔跑,用计算机仿真法等多种方法完成下面的实验:
(1) 问猎狗能追上兔子的最小速度是多少?
(2) 在猎狗能追上兔子的情况下,猎狗跑过的路程是多少? (3) 画出猎狗追赶兔子奔跑的曲线图。
分析:(1)建立新的坐标,将西北方向转变为新的Y 轴的正向,西南方向作为
X 轴的负方向。
则猎狗的初始坐标为(-200,0),兔子初始坐标为(0,0),兔子的速度为a=8m/s ,则在时刻t ,兔子的坐标为(0,at ),猎狗的坐标为(x,y ),
则有dx dt
a dx
y d x -=22。
解得y=2c [r +11r c x +1)(_r -11r c x -1)(]+21r cr -,当x=0时,y=
21r cr -,所以t=a y =2
2c
b bc
-,而算得时间t=15s ,故求得猎狗的速度的最大值b=16.85(m/s )
程序设计:
c=-200;a=8;b=16.85;d=0.01;dt=2;t=0;
gx=-100*sqrt(2);gy=-100*sqrt(2);tx=0;ty=0; while (sqrt((gx-tx)^2+(gy-ty)^2)>d) pause(0.000001) hold on
axis([-100*sqrt(2) 0 -100*sqrt(2) 60*sqrt(2)]); t=t+dt;
gx=gx-b*dt*(a*t/sqrt(2)+gx)/sqrt((a*t/sqrt(2)+gx)^2+(a*t/sqrt(2)-gy)^2); gy=gy+b*dt*(a*t/sqrt(2)-gy)/sqrt((a*t/sqrt(2)+gx)^2+(a*t/sqrt(2)-gy)^2); tx=-a*t/sqrt(2); ty=a*t/sqrt(2);
plot(gx,gy,'r.',tx,ty,'b*') end
问题求解结果与结论:
所以猎狗能追上兔子。
实验二:使用计算机仿真方法求解下述问题:在正方形的四个顶点上各有一人,如下图所示,在某一时刻,四人同时出发以匀速按顺时针方向追赶下一个人,如果他们始终保持对准目标,试确定每个人的行进路线。
分析:模拟该实验过程,关键是先将A、B两个人看作一个简单的追击问题,将这两个人的追击过程分解成一小段一小段的追击,以dt为时间间隔,B每移动一小段路,A就追击一小段路,直到两者的距离满足足够小为止。
按照A、B 两者间的追击方法,再运用到D追A、C追D、B追C之间的追击问题。
程序设计:
clear;clc;clf;
hold on
axis([0 200 0 200])
grid
A=[0,0];
B=[0,200];
D=[200,0];
C=[200,200];
d1=norm(B-A);
d2=norm(C-B);
d3=norm(D-C);
d4=norm(A-D);
k=0;
v=1;dt=0.1;
while k<=10000
plot(A(1),A(2),'y.','markersize',15);
plot(B(1),B(2),'r.','markersize',15);
plot(C(1),C(2),'m.','markersize',15);
plot(D(1),D(2),'b.','markersize',15);
e1=B-A;d1=norm(e1);
e2=C-B;d2=norm(e2);
e3=D-C;d3=norm(e3);
e4=A-D;d4=norm(e4);
fprintf('k=%.0f A(%.2f,%.2f) B(%.2f,%.2f) C(%.2f,%.2f) D(%.2f,%.2f) d1=%.2f\n d2=%.2f\n d3=%.2f\n d4=%.2f\n',k,A(1),B(1),C(1),D(1),d1,d2,d3,d4)
if d1<=0.5
break
end
e1=e1/d1;
e2=e2/d2;
e3=e3/d3;
e4=e4/d4;
A=A+v*dt*e1;
B=B+v*dt*e2;
C=C+v*dt*e3;
D=D+v*dt*e4;
pause(0.01)
end
问题求解结果与结论:
在d<0.5的时候,四个人最终会相遇在一起,相遇的点为(100.42,100.57)
实验三:某投资者拟在A 、B 两城市间开设一家汽车租赁公司,租赁者可在两
城中的任意城市租借或归还汽车。
经试运行调查,在城A 租汽车的顾客约有60%在本城归还,而有40%在B 城归还;在城B 租汽车的顾客约有70%在本城归还,而有30%在A 城归还。
(1)请预测该公司汽车的流向,该公司所拥有的汽车会最终流向其中的一个城市吗?
(2)如果到两城市租赁点租车的人数大体相等,该公司应怎样经营?
分析:设第n 次A 城租出的汽车为n x 辆,B 城租出的汽车为n y 辆,则根据题意
在第n+1次时可得方程组+n x =0.6n x +0.3n y ;1+n y =0.4n x +0.7n y ,写成矩阵的
形式得1+n X =A n X ,1+n X =⎥⎦
⎤
⎢⎣⎡++11n n y x ,A= ⎥⎦⎤⎢⎣
⎡7.04.03.06.0 n X =⎥⎦
⎤
⎢⎣⎡n n y x ,通过化成对角矩阵,可以看出在未来时间内两个城市汽车数量的变化趋势。
程序设计:
syms n
A=[0.6 0.3;0.4 0.7]; X0=[0.8;0.2]; [P,tzz]=eig(A);
Xn=P*tzz^n*inv(P)*X0
问题求解结果与结论:Xn =
(5*0^n*2^(1/2))/14 + (13*2^(1/2)*(((3/10)^n*2^(1/2))/2 + (3*0^n)/5))/35 + 3/7 4/7 - (13*2^(1/2)*(((3/10)^n*2^(1/2))/2 - (4*0^n)/5))/35 - (5*0^n*2^(1/2))/14
由上式可以看出,当n 趋向于无穷大时,n X 越趋向于⎥⎥⎦
⎤⎢⎢⎣⎡747
3,所以最终汽车不会
流向一个城市,而是A 城占有73,B 城占有74。
(2)因为最终A 、B 两城市中汽车的数量是一个定值,不会因初始量的变化而变化,故为了获得最大的利益,应在A 城投放总量的73的汽车,在B 城投放汽车总量的74。
实验四:水塔水流量的估计
美国某州的用水管理机构要求各社区提供以每小时多少加仑计的用水量以及每天所用的总水量。
许多社区没有测量流入或流出水塔水量的装置,只有代之以每小时测量水塔中的水位,其误差不超过5%。
但水塔每天有一次或再次的水泵供水,每次约两小时。
当水塔中的水位下降到最低水位L 时,水泵就自动向水塔输水直到最高水位H ,此期间不能测量水位。
现在,已知该水塔是一个高40ft(英尺)的正圆柱,小镇一天水塔水位的记录数据如下表: 某小镇某天水塔水位记录
时间(s ) 水位(ft ) 时间(s ) 水位(ft ) 0 3316 6635 10619 13937 17921 21240 25223 28543
31.75 31.30 30.54 29.94 29.47 28.92 28.50 27.95 27.52
46636 49953 53936 57254 60574 64554 68535 71854 75021
35.50 32.60 31.67 30.87 30.12 29.27 28.42 27.67 26.97
32284 35932 39332 39435 43318 26.97
水泵开启
水泵开启
35.50
34.45
79254
82649
85968
89953
93270
水泵开启
水泵开启
34.75
33.97
33.40
其中水位降至约27ft水泵开始工作,水位升到35.5ft时停止工作。
(注:1ft=0.3048m)试估计任何时刻t(包括水泵工作时间)从水塔流出的水流量Q(t),并估计一天的总水量。
分析:根据上表,一天内水泵开启两次,故可将上表的数据整理为三个分段函
数,每个函数代表的是每一次水泵开启前的水位随着时间变化的关系。
求出函数后再由函数分段计算一天内的流量。
程序设计:
t1=[0 3316 6635 10619 13937 17921 21240 25223 28543 32284]; t2=[0 3316 6635 10619 13937 17921 21240 25223 28543 32284 35932 39332];
t3=[39435 43318 46636 49953 53936 57254 60574 64554 68535 71854 75021];
t4=[39435 43318 46636 49953 53936 57254 60574 64554 68535 71854 75021 79254 82649];
t5=[85968 89953 93270];
h1=[31.75 31.10 30.54 29.94 29.47 28.92 28.50 27.95 27.52 26.97];
h2=[35.50 34.45 33.50 32.60 31.67 30.87 30.12 29.27 28.42 27.67 26.97];
h3=[34.75 33.97 33.40];
t=[t1 t3 t5];
h=[h1 h2 h3];
plot(t,h,'r*');
p1=polyfit(t1,h1,2)
s1=polyval(p1,t2)
p2=polyfit(t3,h2,5)
s2=polyval(p2,t4)
p3=polyfit(t5,h3,1)
s3=polyval(p3,t5)
hold on
plot(t2,s1,'r-','linewidth',1)
plot(t4,s2,'b-','linewidth',2)
plot(t5,s3,'y-','linewidth',1)
grid
问题求解结果与结论:
由图像可近似看成时间是关于水位的线性函数,水塔的底面面积为S=π22
)(d =2550.465(ft)2,则任一时刻t 与水位的关系表达式为: 1y = -0,0001378t+31.454303 (0 ≤ t ≤ 32284) 2y = -0.0003233t+50.5774188 (39435 ≤t ≤ 75021)
3y = -0.00018488t+50.643841 (85968 ≤ t ≤ 93270)
则任一时刻t 与从水塔流出的水量Q (t )的关系式为:
1Q =S (31.75 -1y )=2550.465(0.0001378t+0.295697) (0 ≤ t ≤ 32284) 2Q =S (31.75-26.97)=12191.2227 (35932 ≤ t ≤ 39332)
3Q =S (35.50 -2y )=2550.465(0.0003233-15.0774188) (39435 ≤t ≤ 75021)
4Q =S (35.50-26.97)=21755.46645 ( 79254≤ t ≤ 82649)
5Q =S (34.75-3y )=2550.465(0.00018488-15.893841) (85968 ≤ t ≤ 93270) 估计一天的总水量Q=2Q +4Q +S (34.75-33.40)=37389.816895(加仑)
五,实验的总结与体会
经过这次做matlab 的实验,使我们了解到可以通过一定的程序去建立模型
去解决一些比较复杂的数学问题,同时也使我们对于计算机的使用,程序的设计都有了一定的了解,可以自己建立程序去解决一些比较简单的数学问题。
但是还存在的问题是对于一些matlab的程序语言还是不太清楚,在使用上还缺乏灵活性与熟练性。
所以在以后的学习中,应该不断地复习与巩固matlab的程序语言,以达到一种灵活使用的地步,在以后的程序设计中可以更加灵活自如地使用matlab程序.。