matlab兔子问题,【matlab】狼追击兔子问题的建模
实验案例 狼追击兔子的问题
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】狼追击兔子问题的建模相关推荐
- matlab恶狼追兔问题,数学建模之狼追击兔子的问题
案例:狼追击兔子的问题 1.1 狼追击兔子问题的建模 1.1.1 问题重述与分析 狼追兔子问题是欧洲文艺复兴时代的著名人物达.芬奇提出的一个数学问题.当一个兔子正在它的洞穴南面60码处觅食时,一只恶狼 ...
- Java简单编程题:大小写转换、兔子生兔子问题、狼追兔子问题、判断英文句子。
Java简单编程题 1.大小写转换 2.兔子生兔子问题 3.狼追兔子问题 4.判断英文句子 1.大小写转换 输入一串字母 1.将大写转换为小写,小写转换为大写 2.将其全转换为小写 3.将其全转换为大 ...
- php编程狼追兔子,C语言狼追兔子问题
一只兔子躲进了 10 个环形分布的洞的某一个,狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找,也没有找到,就隔两个洞,到第六个洞去找,以后每次多隔一个洞 去找兔子--这样下去,结果一直找不到兔子 ...
- 狼追击兔matlab,狼兔追击问题-数学建模
狼追击兔子的问题 1.1 问题重述与分析 狼追击兔子问题是欧洲文艺复兴时代的著名人物达.芬奇提出的一个数学问题.当一个兔子正在它的洞穴南面60码处觅食时,一只恶狼出现在兔子正东的100码处.当两只动物 ...
- 兔子繁殖MATLAB,2011-2012数学建模题
数学建模试题 一.传染病模型 医学科学的发展已经能够有效地预防和控制许多传染病,但是仍然有一些传染病暴发或流行,危害人们的健康和生命. 社会.经济.文化.风俗习惯等因素都会影响传染病的传播,而最直接的 ...
- matlab狗抓兔子,怎样训成年犬捉兔子-怎样训狗抓兔子
我的格力犬五六个月了怎样训练它捉兔子 第一:训练幼犬猎兔法:为了训练幼犬追踪猎兔,开始,可由一人抱着死免奔跑,然后放开幼犬追捕.训练幼犬猎兔法:为了训练幼犬追踪猎兔,开始,可由一人抱着死免奔跑,然后放 ...
- 饿狼追兔的可视化matlab,高阶常微分方程模型饿狼追兔问题数学建模实例
高阶常微分方程模型饿狼追兔问题数学建模实例 现有一只兔子.一匹狼,兔子位于狼的正西110米处,假设兔子与狼同时发现对方并一起起跑,兔子往正北70米处的巢穴跑,而狼在追兔子.已知兔子.狼是匀速跑且狼的速 ...
- 狼追兔子问题C模拟解
说,一只兔子在O点处,它的洞穴在正北20m的B点处,一只狼位于兔子正东33米的A点处,模拟如下追逐问题:狼以一倍于兔子的速度紧盯兔子追击,问兔子到达洞口前是否会被狼逮住? 网上很多人说能被追上,包括类 ...
- 狼抓兔子(平面图转对偶图)
狼抓兔子(平面图转对偶图) 面对下面这样一个网格的地形: 道路上的权值表示这条路上最多能够通过的兔子数,道路是无向的. 左上角和右下角为兔子的两个窝,开始时所有的兔子都聚集在左上角(1,1)的窝里,现 ...
- BZOJ 1001: [BeiJing2006]狼抓兔子【最大流/SPFA+最小割,多解】
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MB Submit: 23822 Solved: 6012 [Submit ...
最新文章
- python常考题_python面试总结2(函数常考题和异常处理)
- Examples_06_02(android)DDMS的data文件中没有显示文件。
- FileReader类型之文字读取
- hdu2133: What day is it
- c语言编写经验逐步积累3
- springboot项目中日志分类
- Java注解研究之@Required
- tonardo做web服务器播放大视频内存泄露问题的解决
- centos7安装rabbitmq简单方式
- ubuntu下查看CPU/GPU/内存使用率
- c 创建mysql实体模型_ADO.Net实体数据模型添加DB-First/Code First报错
- Linux下安装python27
- dell网卡linux驱动,Dell R720上安装linux网卡驱动
- reset.css normalize.css,normalize与css reset的区别
- MATLAB | 经典力学框架下的三体运动数值模拟软件
- 再次携号转网_再次确认,全国携号转网时间定了 不用等到2020,就在今年!
- 如何把一个字符串的大小写取反?(大写转小写/小写转大写)
- 以空间换时间——动态规划算法及其应用:矩阵链相乘
- HTML网页设计:电影网站设计——电影我不是药神(4页) HTML+CSS+JavaScript
- Matlab GUI编程技巧(十三):checkbox创建复选框
热门文章
- Android8怎么格式化内存卡,安卓手机怎么格式化存储内存 Android手机SD内存卡格式化方法...
- 改进YOLOv7系列:26.CVPR2022. ConvNeXt结合YOLOv7 | 基于ConvNeXt结构 构建 CNeB 模块
- 计算机发展对文学的影响,论计算机技术对文学接受的影响
- Android Studio Gradle build daemon disappeared unexpectedly
- python乒乓球比赛规则介绍_乒乓球比赛规则及赛制
- [ZZ] Adventures with Gamma-Correct Rendering
- c语言错误c1083是什么意思,fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directo...
- (转)怎样更好地理解并记忆泰勒展开式?
- MATLAB---绘制三维图形函数实例介绍
- GCJ-02转WGS84