数学建模论文
《数学建模》(2014春)课程期末论文
摘要
(一)对于问题一:自然科学中存在许多变量,也有许多常量,而我们要善于通过建立合适的模型找到这些变量之中的不变量。
猎狗追赶兔子的问题是我们在生活中常见的实例,而题目把我们生活中的普通的例子抽象成为高等数学中微分方程的例子,通过对高阶微分方程的分析,建立微分方程模型,并用数学软件编写程序求解,得出结论,解决生活中常见的实际问题。
(二)对于问题二:学习使用matlab进行数学模型的求解,掌握常用计算机软件的使用方法。
关键词
微分方程导数的几何意义猎狗追兔子数学建模数学软件
一、问题重述
如图1所示,有一只猎狗在B 点位置,发现了一只兔子在正东北方距离它250m 的地方O 处,此时兔子开始以8m/s 的速度正向正西北方向,距离为150m 的洞口A 全速跑去. 假设猎狗在追赶兔子的时候,始终朝着兔子的方向全速奔跑。
请回答下面的问题:
⑴ 猎狗能追上兔子的最小速度是多少? ⑵ 在猎狗能追上兔子的情况下,猎狗跑过的路程 是少?
⑶ 假设猎狗在追赶过程中,当猎狗与兔子之间的
距离为30m 时,兔子由于害怕导致奔跑速度每秒减半, 而狗却由于兴奋奔跑速度每秒增加0.1倍,在这种情 况下回答前面两个问题。
二、问题分析与假设
在猎狗追赶兔子的时候猎狗一直朝着兔子的方向追赶,所以可以建立平面直角坐标
系,通过导数联立起猎狗运动位移,速度和兔子的运动状态。
1.假设兔子的运动是匀速的。
2.假设猎狗的运动轨迹是一条光滑并且一阶导数存在的曲线。
3.猎狗的运动时匀速或者匀变速的。
4.猎狗运动时总是朝向兔子。
三、模型的建立及求解
3.1 符号规定
1.(x ,y ):猎狗或者兔子所在位置的坐标。
2. t :从开始到问题结束经过的时间。
3. a:猎狗奔跑的路程。
4. v:猎狗的奔跑速度。 3.2 模型一的建立与求解
猎狗能够抓到兔子的必要条件:猎狗的运动轨迹在OA 要有交点
以OA 为y 轴,以OB 为x 轴建立坐标系,则由图有
O(0,0),A(0,150),B(250,0),兔子的初始位置0点,而猎狗初始位置是B 点,t (s )后猎狗到达了C (x ,y ),而兔子到达了D (0,8t ),则有CD 的连线是猎狗运动轨迹的一条切线,由导数的几何意义有
:
N
W
8dy y t
dx x
-=
da
v dt =
da =
三式联立消去t ,得到;
设:
若猎狗可以追上兔子则有当兔子在OA,猎狗在OB 之间运动时此方程有解,设:
得到:
得到:
两式联立相加得到:
1.如果q=1即v=8 m/s 得到
所以此情况无交点,所以v=8m/s 猎狗无法追上兔子; 2.如果q<1即v>8m/s 得到
此情况有交点,所以有可能能够追上兔子,如果要追上兔子需要y<=150; 解得到: 即
所以这种情况下能够追上的最小速度是 .
3.如果q>1 利用上式得到,所以这种情况不能追上兔子。 综上讨论,猎狗可以追上兔子的最小速度为。
3.3 模型二的建立与求解
如果猎狗可以追上兔子那么猎狗的轨迹和兔子的轨迹必相交与一点,此时兔子的路程,所用放的时间,那么猎狗的的路程a=tv;
带入数值解得a=。
3.4 模型三的建立与求解
模型三利用matlab试验,得到代码如下:
a=8;
dogxa=[];
dogya=[];
rabbitxa=[];
rabbitya=[];
d=1;
dogx=250;
dogy=0;
rabbitx=0;
rabbity=0;
t=0;
dt=0.001;
for b=0:100
dogx=250;
dogy=0;
rabbitx=0;
rabbity=0;
t=0;
c=b;
a=8;
while(sqrt((dogx-rabbitx)^2+(dogy-rabbity)^2)>d&rabbity<150)
if(sqrt((dogx-rabbitx)^2+(dogy-rabbity)^2)<=30)
b=b*1.1^dt;
a=a*0.5^dt;
end
t=t+dt;
dogx=dogx+b*dt*(rabbitx-dogx)/sqrt((dogx-rabbitx)^2+(dogy-rabbity)^2);
dogy=dogy+b*dt*(rabbity-dogy)/sqrt((dogx-rabbitx)^2+(dogy-rabbity)^2);
rabbitx=rabbitx+0;
rabbity=rabbity+a*dt;
end
if(rabbity<=150)
b=c;
break;
end
end
fprintf('猎狗的最小速度是::%2f',b);
a=8;
b=16;
d=1;
dogxb=[];
dogyb=[];
rabbitxb=[];
rabbityb=[];
dogx=250;
dogy=0;
rabbitx=0;
rabbity=0;
t=0;
dt=0.001;
s=0;
while(sqrt((dogx-rabbitx)^2+(dogy-rabbity)^2)>d)
t=t+dt;
if(sqrt((dogx-rabbitx)^2+(dogy-rabbity)^2)<=30)
b=b*1.1^dt;
a=a*0.5^dt;
end
dogx0=dogx;
dogy0=dogy;
dogx=dogx+b*dt*(rabbitx-dogx)/sqrt((dogx-rabbitx)^2+(dogy-rabbity)^2)
dogy=dogy+b*dt*(rabbity-dogy)/sqrt((dogx-rabbitx)^2+(dogy-rabbity)^2) dogxb=[dogxb,dogx];
dogyb=[dogyb,dogy];
rabbitx=rabbitx+0;
rabbity=rabbity+a*dt;
rabbitxb=[rabbitxb,rabbitx];
rabbityb=[rabbityb,rabbity];
s=s+sqrt((dogx0-dogx)^2+(dogy0-dogy)^2);
end
fprintf('最短路程是:%1f',s);
得到猎狗的最小速度是:16m/s
猎狗此时的路程是:312.5m
四、模型的检验
使用matlab进行计算机模拟实验检验模型的可行性:
问题一的检验:
h=250;
a=8;
v=16;
dogxb=[];
dogyb=[];
rabbitxb=[];
rabbityb=[];
d=0.01;
dt=0.1;
t=0;
dogx=h;
dogy=0;
rabbitx=0;
rabbity=0;
while((sqrt(dogx-rabbitx)^2+(dogy-rabbity)^2)>d&&t<=19.3) t=dt+t;
dogx=dogx-v*dt*dogx/sqrt(dogx^2+(a*t-dogy)^2);
dogy=dogy+v*dt*(a*t-dogy)/sqrt(dogx^2+(a*t-dogy)^2); dogxb=[dogxb,dogx];
dogyb=[dogyb,dogy];
rabbity=a*t;
rabbityb=[rabbityb,rabbity];
end
rabbitxb=zeros(length(rabbityb));
plot(dogxb,dogyb,rabbitxb,rabbityb,'*')
问题二的模拟:
n=250;
a=8;
v=16;
d=0.1;
dt=0.1;
t=0;
dx=n;
dy=0;
rx=0;
ry=0;
while(sqrt((dx-rx)^2+(dy-ry)^2)>d&&t<19.3)
plot(dx,dy,rx,ry,'y*')
pause(0.00001)
hold on
t=dt+t;
dx=dx-v*dt*dx/sqrt(dx^2+(a*t-dy)^2);
dy=dy+v*dt*(a*t-dy)/sqrt(dx^2+(a*t-dy)^2); ry=a*t;
plot(dx,dy,rx,ry,'y*')
end
五、模型的评价
5.1模型的优缺点
模型的优点。
(1)模型的使用围比较广泛,可以类推到其他许多模型中。
(2)模型具有很高的使用价值。
(3)模型对题目中的问题解决合适,模型使用得当。
这里写模型的缺点。
(4)题目中增加了一些理想化的假设,致使模型的波动比较大。
(5)不同兔子和猎狗的情况会有差异。
5.2模型的改进
可使用仿生学原理,建立我们更加准确的模型。
六、参考文献
[1]书来,MATLAB编程与最优化问题,:电子工业,2013。
[2]邬学军,周凯,宋军全,数学建模竞赛辅导教程,,大学,2009。
[3]志林,欧宜贵,数学建模及其典型案例分析,,化学工业,2006.
[4]Matlab入门教程,wenku.baidu./view/daf8592fff00bed5b9f31d5d.htl 2014.06
附录1:Matlab的截图