数学建模-猎狗追兔子问题

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数学建模》(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 ,得到;

228d y x dx v =

设:

8q v

=

若猎狗可以追上兔子则有当兔子在OA,猎狗在OB 之间运动时此方程有解,设:

dy

p dx = 22

d y dp dx

dx = 得到:

dp

dx

q x =

(250)0p =

得到:

()

250q

x p +=

250()

q

p x -=-

两式联立相加得到:

1250[()()]2250q q

dy x dx x =-

(250)0y =

1.如果q=1即v=8 m/s 得到

21250[250ln()]2500250x x y -=-

0,x y →→∞ 所以此情况无交点,所以v=8m/s 猎狗无法追上兔子; 2.如果q<1即v>8m/s 得到

12250112502[()()]2125011q q x q y q q x q -=-++--

22500,1q

x y q →→

- 此情况有交点,所以有可能能够追上兔子,如果要追上兔子需要y<=150;

解得到:

1

q ≤< 即

8v ≥>

所以这种情况下能够追上的最小速度是

/s

.

3.如果q>1 利用上式得到0,x y →→∞,所以这种情况不能追上兔子。

3.3 模型二的建立与求解

如果猎狗可以追上兔子那么猎狗的轨迹和兔子的轨迹必相交与一点,此时兔子的路

251q y q =

-,所用放的时间2588(1)y q

t q ==

-,那么猎狗的的路程a=tv;

带入数值解得

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=[];

相关文档
最新文档