当前位置:文档之家› 数值分析追赶曲线的计算机模拟

数值分析追赶曲线的计算机模拟

3.3追赶曲线的计算机模拟
问题描述:欧洲文艺复兴时期的著名人物达·芬奇曾经提出一个有趣的“狼追兔子”问题,当一只兔子正在它的洞穴南面60码处觅食时,一只饿狼出现在兔子正东的100码处。

兔子急忙奔向自己的洞穴,狼立即以快于兔子一倍的速度紧追兔子不放。

兔子一旦回到洞穴便逃脱厄,问狼是否会追赶上兔子?
这一问题的研究方法可以推广到如鱼雷追击潜艇、地对空导弹击飞机等问题上去。

在对真实系统做实验时,可能时间太长、费用太高、危险太大、甚至很难进行。

计算机模拟是用计算机模仿实物系统,对系统的结构和行为进行动态演示,以评价或预测系统的行为效果。

根据模拟对象的不同特点,分为确定性模拟和随机性模拟两大类。

模拟通常所用的是时间步长法,即按照时间流逝的顺序一步一步对所研究的系统进行动态演示,以提取所需要的数据。

问题分析:首先计算狼的初始位置到兔子洞穴的直线距离:
由于狼奔跑的速度是兔子速度的两倍,兔子跑60码的时间狼可以跑120码。

如果狼沿直线奔向兔窝,应该是可以追上兔子的。

但是,有人推导出狼在追赶兔子过程中的运动曲线为
根据曲线方程,当时,。

也就是说,在没有兔窝的情况下兔子一直往北跑,在跑到大约66码处将被狼追上。

由此可知,在有兔窝时狼是追赶不上兔子的。

用计算机模拟的方法也可以得到同样的结论。

取时间步长为1s ,随时间步长的增加,考虑这一系统中的各个元素(狼和兔子)所处的位置变化规律,用计算机作出模拟。

最后,根据第60s 时狼所在的位置的坐标,判断狼是否能追上兔子。

问题思考与实验:
(1)设兔子奔跑的速度为,则狼运动的速度为。

建立平面直角坐标系,若当时刻,兔子位于点处,狼位于点处。

试根据,的坐标确定一个单位向量描述狼在时段内的运动方向。

(2)根据狼的运动方向和速度推导到的坐标的具体表达式;
(3)用计算机绘制追赶曲线的图形(包括静态和动态的图形)。

【问题求解】
由于P 点的运动方向始终指向Q,设在t=t k 时刻的位置为P k (x k ,y k ) ,则P 点的运动方向可以由下面的单位向量表示
116.6190D =≈31221200()10303
y x x x =-+0x =200/3y =01m/s υ=102υυ=k t t =0(0,)k k Q t υ(,)k k k P x y k P k Q k e 1[,]k k t t +(,)k k k P x y 111(,)k k k P x y +++
E k =
P k Q k P k Q k = k k 2k k 2k k k 2k k 2
P 点的速度是2m/s ,取时间步长为∆t ,设在t=t k+1时刻,P 点的位置为P k+1(x k+1,y k+1),于是P 点的位置变化规律为 x k+1=x k +
k (0−x k )2+(t k −y k )2 y k+1=y k +k k k 2k k 2
【编程实现】
建立M 脚本文件 m3_3.m
x2(1)=100;
y2(1)=0;
t(1)=0;
tstep=1;
for k=1:60
t(k+1)=t(k)+tstep;
x2(k+1)=x2(k)+2*(0-x2(k))/sqrt((0-x2(k))^2+(t(k)-y2(k))^2);
y2(k+1)=y2(k)+2*(t(k)-y2(k))/sqrt((0-x2(k))^2+(t(k)-y2(k))^2); x1(k)=0;
y1(k)=t(k);
end
axis([0,100,0,60])
hold on
for k=1:61
plot(x2(k),y2(k),'*',x1(k),y1(k),'o')
pause(0.5)
end
hold off
d=sqrt((0-x(61))^2+(t(61)-y(61))^2);
fprintf('狼与兔子的距离为%5.4\n',d)
运行程序可以出现动态的图形
去掉语句pause(0.5)后,可以显示静态的图形如下图:
解决本题时,使用了计算机模拟的方法,动态演示了系统的过程,使得问题的解决大大地简化了。

相关主题