登录论坛

查看完整版本 : 【求助】已知人运动的椭圆方程,matlab求狗狗追人的运动轨迹


shncoco
2007-06-25, 00:12
一个慢跑者在平面上沿椭圆跑步,该慢跑者在时间t时刻的坐标为: x=10+20cost,y=20+5sint ,突然有一只狗攻击他. 这只狗从原点出发,以恒定速率20跑向慢跑者,狗的运动方向始终指向慢跑者.求出狗的运动轨迹.

请大家帮忙!

labhunter
2007-06-25, 22:40
这个问题有点意思,大家都来想想

chenhuips2
2007-06-29, 11:08
一个慢跑者在平面上沿椭圆跑步,该慢跑者在时间t时刻的坐标为: x=10+20cost,y=20+5sint ,突然有一只狗攻击他. 这只狗从原点出发,以恒定速率20跑向慢跑者,狗的运动方向始终指向慢跑者.求出狗的运动轨迹.

请大家帮忙!

速度20是一直永远无法咬到人的笨狗~

chenhuips2
2007-06-29, 18:59
额~
早上敲错一个步长~
所以算错了~
果然不是笨狗~
很快可以咬到人了~
运行下面程序可知:
clear
t=0;
d0=0.1;
r=0.01;
s=20;
gx=0;gy=0;
for i=1:1000
rx(i)=10+20*cos(t+r*(i-1));
ry(i)=20+5*sin(t+r*(i-1));
d(i)=sqrt((rx(i)-gx(i))^2+(ry(i)-gy(i))^2);
if d(i)<d0;
break
end
x=rx(i)-gx(i);
y=ry(i)-gy(i);
gx(i+1)=r*s*x/sqrt(x^2+y^2);
gy(i+1)=r*s*y/sqrt(x^2+y^2);
gx(i+1)=gx(i)+gx(i+1);
gy(i+1)=gy(i)+gy(i+1);
end
plot(gx,gy,rx,ry)