饿狼追兔问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高阶常微分方程模型—饿狼追兔问
题
第一章摘要
概述
本文以狼追击兔子这一现实情况为背景,并合理的加以数学假设,着重实际与模型的结合,现有一只兔子和一匹狼,兔子位于狼的正西100米处,假设当狼发现兔子时,兔子同时也发现了狼,这时二者一起起跑,兔子往正北60米处的巢穴跑,狼朝同样的方向在追兔子。已知兔子、狼是匀速跑且狼的速度是兔子的两倍。建立狼的运动轨迹微分模型。通过画出的兔子与狼的运动轨迹图形,用解析方法及数值方法求解,兔子能否安全回到巢穴?经过分析与求解,得知兔子无危险。在自然科学和技术科学中往往遇到大量的微分方程问题。通过对高阶微分方程的分析,我们对题目里提出的问题建立了符合实际的数学模型,在模型的求解过程中应用数学软件MATLAB等计算工具,编写相应的程序,解决实际问题。论文最后对模型的优缺点进行了分析和评价,并提出了模型的改进方向和思路。关键字微分方程饿狼追兔数学建模
第二章模型的背景问题描述
随着课改的深入开展,实际情景问题应运而生,并迅速发展成为命题的亮点、热点。实际情景问题是复杂多变的,它贴近生活,为学生所熟悉,且以一定的知识为依托。恶狼追兔的问题属于实际的情景问题,具有一定的时代气息。
数学模型一般是实际事物的一种数学简化。它常常是以某种意义上接近实际事物的抽象形式存在的,但它和真实的事物有着本质的区别。是研究现实世界数量关系和空间形式的科学,建立教学模型的过程,是把错综复杂的实际问题简化、抽象为合理的数学结构的过程。有助于我们提高用数学理论和方法去分析和解决问题的全过程,提高我们分析问题和解决问题的能力,提高我们学习数学的兴趣和应用数学的意识与能力,使我们在今后的工作中能经常性地想到用数学去解决问题,提高我们尽量利用计算机软件及当代高新科技成果的意识,能将数学、计算机有机地结合起来去解决实际问题。
利用高阶常微分方程模型—饿狼追兔问题
现有一只兔子、一匹狼,兔子位于狼的正西100米处,假设兔子与狼同时发现对方并一起起跑,兔子往正北60米处的巢穴跑,而狼在追兔子。已知兔子、狼是匀速跑且狼的速度是兔子的两倍。
要求:(1)建立狼的运动轨迹微分模型。
(2)画出兔子与狼的运动轨迹图形。
(3)用解析方法求解,问兔子能否安全回到巢穴?
(4)用数值方法求解,问兔子能否安全回到巢穴?
微分方程就是联系着自变量,未知函数以及他的导数的关系式。在自然科学
和技术科学中往往遇到大量的微分方程问题。通过对高阶微分方程的分析,我们对题目里提出的问题建立了符合实际的数学模型,在模型的求解过程中应用数学软件MATLAB等计算工具,编写相应的程序,解决实际问题。
第三章模型假设及符号说明
1.狼和兔子是匀速运动的。
2.狼追击兔子的轨迹看作是一条光滑的曲线,即将动点P 的轨迹看作一条曲线。
3.在兔子未达到巢穴前狼和兔子都是运动的。
4.狼在追击过程中始终朝向兔子
V: 狼的速度
V0: 兔子的速度
S1:兔子运动的路程
S2: 狼运动的路程
T: 狼追击兔子的时刻
P:T时刻兔子的坐标
Q:T时刻狼的坐标
第四章分析与建立模型
狼追兔子问题是欧洲文艺复兴时代的著名人物达.芬奇提出的一个数学问题。当一个兔子正在它的洞穴南面60码处觅食时,一只恶狼出现在兔子正东的100码处。当两只动物同时发现对方以后,兔子奔向自己的洞穴,狼以快于兔子一倍的速度紧追兔子不放。狼在追赶过程中所形成的轨迹就是追击曲线。狼是否会在兔子跑回洞穴之前追赶上兔子?
一个兔子正在悠闲的吃草,它的洞在距离它现在吃草处正北方的60米处,在兔子的正东面100米处有一头饿狼正潜伏着观察兔子多时了.突然,兔子发现了狼的存在.兔子拼命的沿直线向洞逃跑,兔子知道不赶快进洞命休已,狼和兔子同时启动并且死死盯着兔子扑去.兔子跑的虽然快,但狼的速度是兔子速度的2倍.假如兔子和狼都匀速运动.
图4-1
初始时刻(t=0)兔子位于原点(0,0),饿狼位于(100,0);兔子以常速度v0沿y 轴跑,饿狼在t时刻的位置为(x,y),其速度为v-=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)
function dy = rigid(t,y)
dy = zeros(3,1); % a column vector
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-4 1e-4 1e-5]);
求解得: