实验案例 狼追击兔子的问题

1.1 狼追击兔子问题的建模

1.1.1 问题重述与分析

狼追击兔子问题是欧洲文艺复兴时代的著名人物达.芬奇提出的一个数学问题。当一个兔子正在它的洞穴南面60码处觅食时,一只恶狼出现在兔子正东的100码处。当两只动物同时发现对方以后,兔子奔向自己的洞穴,狼以快于兔子一倍的速度紧追兔子不放。狼在追赶过程中所形成的轨迹就是追击曲线。狼是否会在兔子跑回洞穴之前追赶上兔子?

为了研究狼是否能够追上兔子,可以先考虑求出狼追兔子形成的追击曲线,然后根据曲线来确定狼是否能够追上兔子。

1.1.2 变量说明

1.1.3 模型假设

1、 狼在追击过程中始终朝向兔子;

2、 狼追击兔子的轨迹看作是一条光滑的曲线,即将动点P(x,y) 的轨迹看作一条曲线,曲线方程表示为 。

1.1.4 模型建立

(一)建模准备

以t=0时,兔子的位置作为直角坐标原点,兔子朝向狼的方向为x轴正向;

则显然有兔子位置的横坐标 。

对狼来说,当x=100,y=0,即

在t=0刚开始追击时,狼的奔跑方向朝向兔子,此时即x轴负方向,

则有

(二)建立模型

3、是否追上的判断

要判定狼是否追上兔子,可以通过(7)式判定。

对(7)式,

当x=0,如果计算求解得到 ,则视为没有追上;

当x=0,如果计算求解得到 ,则视为兔子被追上;

1.1.5 模型求解

由微分方程得到其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; %以狼的x坐标为自变量

y0=[0 0];

%下面只知道狼是否追上兔子,但是不易推得兔子刚刚到达窝边时,狼与兔之间的距离

[T,Y] = ode45(‘odefunlt’,tspan,y0);

n=size(Y,1);

disp(‘狼的坐标(x=0.1)’)

disp(Y(n,1)) %通过追击曲线计算当狼的横坐标为0.1(即tspan=0.1)时,狼的纵坐标

1.1.6 模型结果与分析

运行结果:

狼的坐标(x=0.1)

62.1932

通过上面运行结果可知,狼并没有追上兔子。

1.1.7 思考题

通过上面的结果已经知道狼并没有追上兔子。那么兔子跑回窝边时,狼与兔子之间的距离是多少?上面的程序不能解决此问题,那么用什么办法解决呢?

(一)解决思路

可以对狼与兔子的追击过程通过计算机进行模拟,然后从模拟结果获取。

模拟程序如下,程序文件名sim_langtu.m:

function sim_langtu

%《狼兔追击问题》

%(离散模拟)

%这里没有具体考虑狼、兔的具体速度

%主要通过二者的速度倍速关系及方向向量奔跑过程

Q=[0 0];%兔子坐标

P=[100 0];%狼坐标

PQ=Q-P;%狼兔方向向量

step =1;%模拟步长:兔子奔跑的距离,step越小就越精确

count = 60/step;%以兔子的奔跑距离划分

PQ=PQ/norm(PQ)*step;%归一化,单位向量

trackP=P;

trackQ=Q;

for k=1:count;

P = P + 2*PQ;%2倍速度

Q = Q + step*[0 1];%[0 1]为兔子奔跑方向的单位方向向量

PQ = Q - P;

trackP(1+k,:)=P;

trackQ(1+k,:)=Q;

PQ=PQ/norm(PQ)*step;%归一化,单位向量

dis= sqrt(sum((P-Q).^2));

plot(trackP(:,1),trackP(:,2),'*',Q(1),Q(2),'rp',0,60,'r+');

pause(0.5)

end%for

dis%兔子到达窝边时,狼兔之间的距离

P %兔子到达窝边时,狼的坐标

Q %兔子到达窝边时,兔子的坐标

(二)模拟程序运行结果

dis =

7.0619

P =

1.6805 53.1410

Q =

0 60

注:如果修改程序中的step赋值,则结果稍有不同。

程序结束后,输出狼兔的位置图如下。通过下图可以直观的看到,当兔子回到窝边时,狼还与兔子有一段距离,这表示兔子成功逃脱。

matlab兔子问题,【matlab】狼追击兔子问题的建模相关推荐

  1. matlab恶狼追兔问题,数学建模之狼追击兔子的问题

    案例:狼追击兔子的问题 1.1 狼追击兔子问题的建模 1.1.1 问题重述与分析 狼追兔子问题是欧洲文艺复兴时代的著名人物达.芬奇提出的一个数学问题.当一个兔子正在它的洞穴南面60码处觅食时,一只恶狼 ...

  2. Java简单编程题:大小写转换、兔子生兔子问题、狼追兔子问题、判断英文句子。

    Java简单编程题 1.大小写转换 2.兔子生兔子问题 3.狼追兔子问题 4.判断英文句子 1.大小写转换 输入一串字母 1.将大写转换为小写,小写转换为大写 2.将其全转换为小写 3.将其全转换为大 ...

  3. php编程狼追兔子,C语言狼追兔子问题

    一只兔子躲进了 10 个环形分布的洞的某一个,狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找,也没有找到,就隔两个洞,到第六个洞去找,以后每次多隔一个洞 去找兔子--这样下去,结果一直找不到兔子 ...

  4. 狼追击兔matlab,狼兔追击问题-数学建模

    狼追击兔子的问题 1.1 问题重述与分析 狼追击兔子问题是欧洲文艺复兴时代的著名人物达.芬奇提出的一个数学问题.当一个兔子正在它的洞穴南面60码处觅食时,一只恶狼出现在兔子正东的100码处.当两只动物 ...

  5. 兔子繁殖MATLAB,2011-2012数学建模题

    数学建模试题 一.传染病模型 医学科学的发展已经能够有效地预防和控制许多传染病,但是仍然有一些传染病暴发或流行,危害人们的健康和生命. 社会.经济.文化.风俗习惯等因素都会影响传染病的传播,而最直接的 ...

  6. matlab狗抓兔子,怎样训成年犬捉兔子-怎样训狗抓兔子

    我的格力犬五六个月了怎样训练它捉兔子 第一:训练幼犬猎兔法:为了训练幼犬追踪猎兔,开始,可由一人抱着死免奔跑,然后放开幼犬追捕.训练幼犬猎兔法:为了训练幼犬追踪猎兔,开始,可由一人抱着死免奔跑,然后放 ...

  7. 饿狼追兔的可视化matlab,高阶常微分方程模型饿狼追兔问题数学建模实例

    高阶常微分方程模型饿狼追兔问题数学建模实例 现有一只兔子.一匹狼,兔子位于狼的正西110米处,假设兔子与狼同时发现对方并一起起跑,兔子往正北70米处的巢穴跑,而狼在追兔子.已知兔子.狼是匀速跑且狼的速 ...

  8. 狼追兔子问题C模拟解

    说,一只兔子在O点处,它的洞穴在正北20m的B点处,一只狼位于兔子正东33米的A点处,模拟如下追逐问题:狼以一倍于兔子的速度紧盯兔子追击,问兔子到达洞口前是否会被狼逮住? 网上很多人说能被追上,包括类 ...

  9. 狼抓兔子(平面图转对偶图)

    狼抓兔子(平面图转对偶图) 面对下面这样一个网格的地形: 道路上的权值表示这条路上最多能够通过的兔子数,道路是无向的. 左上角和右下角为兔子的两个窝,开始时所有的兔子都聚集在左上角(1,1)的窝里,现 ...

  10. BZOJ 1001: [BeiJing2006]狼抓兔子【最大流/SPFA+最小割,多解】

    1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec  Memory Limit: 162 MB Submit: 23822  Solved: 6012 [Submit ...

最新文章

  1. python常考题_python面试总结2(函数常考题和异常处理)
  2. Examples_06_02(android)DDMS的data文件中没有显示文件。
  3. FileReader类型之文字读取
  4. hdu2133: What day is it
  5. c语言编写经验逐步积累3
  6. springboot项目中日志分类
  7. Java注解研究之@Required
  8. tonardo做web服务器播放大视频内存泄露问题的解决
  9. centos7安装rabbitmq简单方式
  10. ubuntu下查看CPU/GPU/内存使用率
  11. c 创建mysql实体模型_ADO.Net实体数据模型添加DB-First/Code First报错
  12. Linux下安装python27
  13. dell网卡linux驱动,Dell R720上安装linux网卡驱动
  14. reset.css normalize.css,normalize与css reset的区别
  15. MATLAB | 经典力学框架下的三体运动数值模拟软件
  16. 再次携号转网_再次确认,全国携号转网时间定了 不用等到2020,就在今年!
  17. 如何把一个字符串的大小写取反?(大写转小写/小写转大写)
  18. 以空间换时间——动态规划算法及其应用:矩阵链相乘
  19. HTML网页设计:电影网站设计——电影我不是药神(4页) HTML+CSS+JavaScript
  20. Matlab GUI编程技巧(十三):checkbox创建复选框

热门文章

  1. Android8怎么格式化内存卡,安卓手机怎么格式化存储内存 Android手机SD内存卡格式化方法...
  2. 改进YOLOv7系列:26.CVPR2022. ConvNeXt结合YOLOv7 | 基于ConvNeXt结构 构建 CNeB 模块
  3. 计算机发展对文学的影响,论计算机技术对文学接受的影响
  4. Android Studio Gradle build daemon disappeared unexpectedly
  5. python乒乓球比赛规则介绍_乒乓球比赛规则及赛制
  6. [ZZ] Adventures with Gamma-Correct Rendering
  7. c语言错误c1083是什么意思,fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directo...
  8. (转)怎样更好地理解并记忆泰勒展开式?
  9. MATLAB---绘制三维图形函数实例介绍
  10. GCJ-02转WGS84