饿狼追兔问题数学建模Word格式.doc

上传人:wj 文档编号:1349129 上传时间:2023-04-30 格式:DOC 页数:6 大小:52KB
下载 相关 举报
饿狼追兔问题数学建模Word格式.doc_第1页
第1页 / 共6页
饿狼追兔问题数学建模Word格式.doc_第2页
第2页 / 共6页
饿狼追兔问题数学建模Word格式.doc_第3页
第3页 / 共6页
饿狼追兔问题数学建模Word格式.doc_第4页
第4页 / 共6页
饿狼追兔问题数学建模Word格式.doc_第5页
第5页 / 共6页
饿狼追兔问题数学建模Word格式.doc_第6页
第6页 / 共6页
亲,该文档总共6页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

饿狼追兔问题数学建模Word格式.doc

《饿狼追兔问题数学建模Word格式.doc》由会员分享,可在线阅读,更多相关《饿狼追兔问题数学建模Word格式.doc(6页珍藏版)》请在冰点文库上搜索。

饿狼追兔问题数学建模Word格式.doc

1.1问题的提出

在自然界中,各种生物都有它的生活规律,它们钩心斗角,各项神通,在饿狼追野兔的工程中,饿狼的速度是野兔的二倍,但是野兔有自己的洞穴,野兔在跑到自己洞穴之前被狼捉住,野兔就将会成为饿狼的囊中之物;

如果野兔在饿狼捉住自己之前跑回到自己的洞穴,那么野兔就保住小命,得以生还。

图1-1-1为饿狼追野兔的两条曲线,其中绿线表示野兔,图中的箭头表示的是野兔的奔跑方向,野兔从远点开始沿y轴正方向运动,其洞穴在坐标为(0,60)的位置;

红线为饿狼的运动轨迹,,图中的剪头表示饿狼追逐野兔的方向,饿狼从坐标为(100,0)的方向追逐野兔,饿狼的速度是野兔速度的二倍。

建立数学模型需研究一下几个问题:

(1)设野兔的速度我v0,饿狼的速度为v1,野兔的奔跑方向是沿y轴正方向奔跑,而饿狼的方向是一直指向野兔的方向,即饿狼的运动的轨迹某一时候的切线指向同一时刻的野兔的位置。

建立饿狼追野兔的运动轨迹微分模型。

(2)根据建立的饿狼运动轨迹得微分模型,作出饿狼与野兔的运动轨迹图形。

(3)用解析方法求解,即根据第二步作出的饿狼渔业突地运动轨迹图形,分析兔子能否安全回到巢穴,即野兔的运动曲线与饿狼的运动曲线的交点是在点(0,60)-野兔巢穴的上面还是下面。

(4)用数值方法求解。

根据第一步建立的关于二郎追野兔的运动轨迹微分模型,进行数学运算,讨论兔子能否安全回到巢穴,即所求交点的y值大于60还是小于60.

1.2问题的分析

(1)分析饿狼追野兔的运动模型。

在1.1中已经说了,饿狼追野兔过程中,野兔的目的是要在饿狼捉住自己之前跑到自己的巢穴,假如恶狼知道野兔巢穴的具体位置,根据题目所给,饿狼完全可以先兔子跑到其巢穴,然后在那里守株待兔,野兔则难逃饿狼之口。

那样饿狼的轨迹就是一条直线,只需简单的数学计算就可以完成。

(2)但这是一个理想化的实际问题,在这个问题中由于饿狼不可能知道兔子巢穴的具体位置,因此它的速度的方向永远是朝着兔子的,兔子一直向北跑,相对于饿狼来说兔的角度在时刻的变化,所以最终饿狼的轨迹是一条曲线。

而兔子能否活下来,还是一个需要经过具体较复杂计算的问题。

1.3数值方法求解

初始时刻(t=0)兔子位于原点(0,0),饿狼位于(100,0);

兔子以常速度v0沿y轴跑,饿狼在t时刻的位置为(x,y),其速度为v1=2v0;

饿狼在追兔子过程中一直向着兔子的方向,则:

饿狼在t时刻其追赶曲线的切线方程为

Y-y=(dy/dx)*(X-x)=[(dy/dt)/(dx/dt)]*(X-x)

其中(X,Y)为切线上动点。

又饿狼在追兔子过程中一直向着兔子的方向,则t时刻兔子(0,v0t)在切线上,所以v0t-y=[(dy/dt)/(dx/dt)]*(0-x)

从而饿狼追赶轨迹由下方程组确定

(dx/dt)*(v0t-y)=(dy/dt)*(-x)

(1)

(dx/dt)2+(dy/dt)2=v12

(2)

(1)有(dy/dx)*(-x)=v0t-y,两边对t求导并化简

(d2y/dx2)*(dx/dt)*(-x)=v0(3)

(2)有(dx/dt)2{1+[(dy/dt)/(dx/dt)]2}=v12

即dx/dt=-v1/[1+(dy/dx)2]1/2(注这里去负号,是由这个追赶曲线——上图,决定的)

代入(3),并把v1=2v0代入并化简得

(d2y/dx2)*x=[1+(dy/dx)2]1/2/2(4)

这是一个二阶微分方程,它满足初始条件y(100)=0

令p=dy/dx,这dp/dx=d2y/dx2,这(4)化为

(dp/dx)*x=[1+p2]1/2/2,可分离变量求得

ln{p+[1+p2]1/2/2}=0.5*lnx+c

又p(100)=0,所以c=-ln10,从而

p+[1+p2]1/2/2=x1/2/10

这p=(x1/2/10-10/x1/2)/2

即dy/dx=(x1/2/10-10/x1/2)/2,从而

y=(x-300)*x1/2/30+c,又y(100)=0

y=(x-300)*x1/2/30+200/3

令x=0,得

y(0)=200/3>

60

故兔子没有有危险

1.4解析方法求解(matlab创新求解)

在本题题目中给出了参考的matlab的方程式

【注】常微分方程高阶初值问题的MATLAB库函数为:

ode45。

语法为:

[t,Y]=ode45(odefun,tspan,y0)

例如函数:

functiondy=rigid(t,y)

dy=zeros(3,1);

%acolumnvector

dy

(1)=y

(2)*y(3);

dy

(2)=-y

(1)*y(3);

dy(3)=-0.51*y

(1)*y

(2);

设置选项:

options=odeset('

RelTol'

1e-4,'

AbsTol'

[1e-41e-41e-5]);

求解得:

[t,Y]=ode45(@rigid,[012],[011],options);

画出解函数曲线图形:

plot(T,Y(:

1),'

-'

T,Y(:

2),'

-.'

3),'

.'

但是我们决定不用题目中给的函数,而是采用另一个函数:

r=dsolve('

eq1,eq2,...'

'

cond1,cond2,...'

v'

),这个函数的作用是把常微分方程(无论是一阶还是高阶)转化成不带有求导的一般性方程,但是一般情况下经过这种函数转化之后,得到的方程式比较复杂,但是如果把已知条件也带进dsolve函数中,得到的函数就会比较简单。

另外还要注意的一点就是在matlab中的Dy,D2y都默认为是对t的求导,所以在用desolve函数的时候,要把所有的x换成t,然后还要借助y=subs(y,t,’x’)函数,把求得的函数式的自变量改为x。

下面开始分析问题模型。

由§

1.3中的(4)方程(d2y/dx2)*x=[1+(dy/dx)2]1/2/2,并且有已知条件:

y(100)=0;

dy/dx(100)=0。

故编写的matlab程序如下:

>

y=desolve(‘t*D2y=sqrt(1+Dy^2)/2’,’y(100)=0’‘Dy(100)=0’);

y=subs(y,t,‘x’);

得到y=sqrt(x).*(x-300)/30+200/3

在饿狼的运动曲线上取点x=25,并借助matlab:

y=sqrt(x).*(x-300)/30+200/3,x=25,y

得到y=20.833,并且求得切线在(25,20.833)点的斜率为-3/4,故求得饿狼运动曲线在点(25,20.833)处的切线方程:

z=0.75*(25-x)+20.833。

在matlab环境下运行得到函数y=sqrt(x).*(x-300)/30+200/3,然后再编辑elang.m文件:

x=linspace(0,100,500);

y=sqrt(x).*(x-300)/30+200/3;

z=0.75*(25-x)+20.833;

plot(0,y,'

y'

x,y,'

r'

x,z,'

c'

在matlab环境下调用elang.m文件

elang

得到如下图:

由题意知,野兔的巢穴在点(0,60)处,由图中可以看出,在野兔到达自己的巢穴点(0,60)时,饿狼的运动曲线与y轴还没有交点,即饿狼还没有追上兔子,所以,由此可以回答课题提出的问题:

野兔可以安全回到巢穴。

1.5模型的优点与改进

优点:

本模型适用范围较广,追击问题中可以较多应用,在辅助软件的求解下,结果很容易得出。

改进:

由于问题有些理想化,没有考虑实际的具体环境因素和自然因素对野兔和饿狼速度的影响。

所以较问题复杂程度较低。

在真正的实际问题中,本模型可以作为参考,把相关因素考虑进来,同时借助辅助软件同样能很快求解。

参考文献:

[1]方道元(1958.4~)编著

常微分方程

[2]刘会灯(计算机)编著

MATLAB编程基础与典型应用

[3]数学建模原理与案例

冯杰(计算机教授)编著

-5-

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2