数学模型--狼追击兔子的问题.docx

上传人:scccc 文档编号:14079730 上传时间:2022-02-01 格式:DOCX 页数:9 大小:70.95KB
返回 下载 相关 举报
数学模型--狼追击兔子的问题.docx_第1页
第1页 / 共9页
数学模型--狼追击兔子的问题.docx_第2页
第2页 / 共9页
数学模型--狼追击兔子的问题.docx_第3页
第3页 / 共9页
数学模型--狼追击兔子的问题.docx_第4页
第4页 / 共9页
数学模型--狼追击兔子的问题.docx_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《数学模型--狼追击兔子的问题.docx》由会员分享,可在线阅读,更多相关《数学模型--狼追击兔子的问题.docx(9页珍藏版)》请在三一文库上搜索。

1、数学模型狼追击兔子的问题一、问题重述与分析(一)问题描述神秘的大自然里,处处暗藏杀机,捕猎和逃生对动物的生存起着至 关重要的作用,而奔跑速度和路线是能否追上和逃生的关键因素。狼追击兔子问题是欧洲文艺复兴时代的着名人物达 .芬奇提出的一个 数学问题。当一个兔子正在它的洞穴南面 60码处觅食时,一只恶狼 出现在兔子正东的100码处。当两只动物同时发现对方以后,兔子奔 向自己的洞穴,狼以快于兔子一倍的速度紧追兔子不放。 狼在追赶过 程中所形成的轨迹就是追击曲线。狼是否会在兔子跑回洞穴之前追赶 上兔子?为了研究狼是否能够追上兔子,可以先考虑求出狼追兔子形成的 追击曲线,然后根据曲线来确定狼是否能够追上

2、兔子。(二)问题分析1、本题目是在限定条件下求极值的问题,可以通过建立有约束条件的 微分方程加以模拟。2、通过运用欧拉公式及改进欧拉公式的原理,结合高等数学的有关知 识,对微分方程进行求解。3、将数学求解用Matlab程序语言进行实现彳导山方.程的近似解口4、最后解方程的解结合实际问题转化为具体问题的实际结果。二、变量说明Vi:兔子的速度(单位:码/秒)r:狼与兔子速度的倍数;V2:狼的速度(单位:码/秒),显然有V2=rvit:狼追击兔子的时刻(t=0时,表示狼开始追兔子的时刻)Si:在时刻t,兔子跑过的路程(单位:码),si = si(t)S2:在时刻t ,狼跑过的路程(单位:码),S2=

3、S2(t)Qxi,yJ:表示在时刻t时,兔子的坐标P(x,y):表示在时刻t时,狼子的坐标三、模型假设1、狼在追击过程中始终朝向兔子;2、狼追击兔子的轨迹看作是一条光滑的曲线, 即将动点P(x,y)的轨迹 看作一条曲线,曲线方程表示为y = y(x)。3、当猎狗与兔工之间的距离相当小时 认为猎狗已经追上兔人四、模型建立(一)建模准备以t=0时,兔子的位置作为直角坐标原点,兔子朝向狼的方向为x轴正向;则显然有兔子位置的横坐标xi =0。对狼来说,当x=100, y = 0,即yx+00=0在t=0刚开始追击时,狼的奔跑方向朝向兔子,此时即x轴负方向,则有 y;,00=0(二)建立模型1、追击方向

4、的讨论由于狼始终朝向兔子,则在狼所在位置P(x, y)点过狼的轨迹处的切线 方向在y轴上的截距为,。设切线上的动点坐标为(X, Y),则切线方程为Yy = y1X x) (1)在(1)中,令X= 0,则截距Y = y-yx。此时 y1 = v1t。则此时截距等于兔子所跑过的路程,即:Y = y1 ,从而可得y = y1 = y -yX 2、狼与兔子速度关系的建模在t时刻,兔子跑过的路程为s1 = y1 = v1t (3)由于狼的速度是兔子的r倍,则狼跑的路程为S2 =0=171狼跑过的路程可以用对弧长的曲线积分知识得到,如下。100S2 =U1 + ydx (5)X联立(2)、(4)、(5)得

5、100 、;1 + y dx = ry 1 = r( y - yx) (6)x对(6)两边求对x的导数,化简得包rx微分方程(7)式的初始条件有:3、是否追上的判断要判定狼是否追上兔子,可以通过(7)式判定。对(7)式,当x=0,如果计算求解得到y之60,则视为没有追上;当x=0,如果计算求解得到y60,则视为兔子被追上;五、模型求解由微分方程得到其 Matlab函数function yy=odefunlt(x,y)%以狼在追击过程中的横坐标为自变量yy(1,1)=y(2);yy(2,1)=sqrt(1+y(2).八2)./(2.*x);主程序:tspan=100:-0.1:0.1;%&M 的

6、 x 坐标为自变量y0=00;%不面只知道狼是否追上兔子,但是不易推得兔子刚刚到达窝边时,狼与兔之间的距离T,Y=ode45( odefunlt ,tspan,y0);n=size(Y,1);disp(狼的坐标(x=0.1) _)disp(Y(n,1) %通过追击曲线计算当狼的横坐标为 0.1(即tspan=0.1)时,狼的纵坐标六、模型结果与分析运行结果:狼的坐标(x=0.1)62.1932通过上面运行结果可知,狼并没有追上兔子。七、思考题通过上面的结果已经知道狼并没有追上兔子。那么兔子跑回窝边时,狼与兔子之间的距离是多少?上面的程序不能解决此问题,那么用什么办法解决呢?(一)解决思路可以对

7、狼与兔子的追击过程通过计算机进行模拟,然后从模拟结果获取。模拟程序如下,程序文件名 sim_langtu.m :function sim_langtu%狼兔追击问题% (离散模拟)%这里没有具体考虑狼、兔的具体速度%主要通过二者的速度倍速关系及方向向量奔跑过程Q=00;嘴子坐标P=1000; %良坐标PQ=Q-P%良兔方向向量step=1; %(拟步长:兔子奔跑的距离,step越小就越精确count=60/step; %以兔子的奔跑距离划分PQ=PQ/norm(PQ)*step;%9一化,单位向量trackP=P;trackQ=Q;for k=1:count;P=P+2*PQ%第速度Q=Q+s

8、tep*01; %01为兔子奔跑方向的单位方向向量PQ=Q-P;trackP(1+k,:)=P;trackQ(1+k,:)=Q;PQ=PQ/norm(PQ)*step;%9一化,单位向量dis=sqrt(sum(P-Q).八2);plot(trackP(:,1),trackP(:,2), * ,Q(1),Q(2), rp ,0,60, r+);pause(0.5)end%fordis嘴子到达窝边时,狼兔之间的距离P%兔子到达窝边时,狼的坐标Q%兔子到达窝边时,兔子的坐标(二)模拟程序运行结果dis=7.0619P=1.680553.1410Q二060注:如果修改程序中的step赋值,则结果稍有

9、不同。程序结束后,输出狼兔的位置图如下。通过下图可以直观的看到,当 兔子回到窝边时,狼还与兔子有一段距离,这表示兔子成功逃脱。八、模型评价1、优点可以熟练的运用Matlab解决一些问题,对用Matlab编程有了更加深 刻的了解。懂得了使用数学软件求解极限,积分等问题的方法。对于 追击问题的数学模型有了一定的了解, 并能简单的运用。对遇到的一 些编程问题有:切身的解决办法 提高了自己的编程能力口2、缺点许多数学公式的符号十分难输入, 致使数学理论表述十分困难。需要 输入的数据太多,容易出现输入错误,特别是容易遗漏标点符号。3、改进方向应考虑向简单模型优化,现有的模型还是很复杂,尤其是一些数学的 计算要能非常熟练的运用微积分知识。所以应考虑更加简便易懂的模

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1