数学模型之慢跑者与狗
时间:2026-01-22
时间:2026-01-22
慢跑者与狗
1.问题的提出
一个慢跑者在平面上沿椭圆以恒定的速率v=1跑步,设椭圆方程为:x=10+20cost, y=20+5sint.突然有一只狗攻击他. 这只狗从原点出发,以恒定速率w跑向慢跑者,狗的运动方向始终指向慢跑者.分别求出w=20,w=5时狗的运动轨迹.
2. 模型建立
设时刻t慢跑者的坐标为(X(t),Y(t)),狗的坐标为(x(t),y(t)).则X=10+20cost, Y=20+15sint, 狗从(0,0)出发,建立狗的运动轨迹的参数方程:
w dx (10 20cost x) dt22(10 20cost x) (20 15sint y) dyw (20 15sint y)22 dt (10 20cost x) (20 15sint y) x(0) 0, y(0) 0
3. 模型求解
3.1
3.1.1
w=20时,建立m-文件eq3.m如下:
function dy=eq3(t,y)
dy=zeros(2,1);
dy(1)=20*(10+20*cos(t)-y(1))/sqrt((10+20*cos(t)-y(1))^2+(20+15*sin(t)-y(2))^2);
dy(2)=20*(20+15*sin(t)-y(2))/sqrt((10+20*cos(t)-y(1))^2+(20+15*sin(t)-y(2))^2);
3.1.2
再取t0=0,tf=10,输入如下命令:
[t,y]=ode45('eq3',[0,10],[0;0]);
T=0:0.1:2*pi;
X=10+20*cos(T);
Y=20+15*sin(T);
plot(X,Y,'-')
plot(y(:,1),y(:,2),'r*')
相应图形如下图一所示:
1
图1. w=20时小狗与慢跑者的运动轨迹
3.1.3
在3.1.2所示命令中不断修改tf的值,二分法分别取tf=5,2.5,3.75,…,至3.15时,狗刚好追上慢跑者。此时的图像为:
图2. w=20时小狗刚好追上慢跑者的运动轨迹
附:相应程序段如下:
[t,y]=ode45('eq3',[0,3.15],[0;0]);
T=0:0.1:2*pi;
X=10+20*cos(T);
Y=20+15*sin(T);
plot(X,Y,'r*')
plot(X,Y,'b*',y(:,1),y(:,2),'r*')
2
3.2
3.2.1
w=5时,建立m-文件eq4.m如下:
function dy=eq4(t,y)
dy=zeros(2,1);
dy(1)=5*(10+20*cos(t)-y(1))/sqrt((10+20*cos(t)-y(1))^2+(20+15*sin(t)-y(2))^2);
dy(2)=5*(20+15*sin(t)-y(2))/sqrt((10+20*cos(t)-y(1))^2+(20+15*sin(t)-y(2))^2);
3.2.2
再取t0=0,tf=10,输入如下命令:
[t,y]=ode45('eq4',[0,10],[0;0]);
T=0:0.1:2*pi;
X=10+20*cos(T);
Y=20+15*sin(T);
plot(X,Y,'b+',y(:,1),y(:,2),'r*')
相应图形如下图三所示:
图3. w=5时小狗与慢跑者的运动轨迹
3.2.3
在3.2.2所示命令中不断修改tf的值,二分法分别取tf=20,40,80,…, 可以看出狗永远追不上上慢跑者。此时的图像为:
注:+椭圆为慢跑者的轨迹,*线为狗的轨迹,随时间增加,狗沿着一个小椭圆奔跑,永远追不上人。
3
图4. w=5时小狗永远追不上慢跑者的运动轨迹
附:相应程序段如下:
[t,y]=ode45('eq4',[0,800],[0;0]);
T=0:0.1:2*pi;
X=10+20*cos(T);
Y=20+15*sin(T);
plot(X,Y,'b+',y(:,1),y(:,2),'r*')
4
下一篇:青少年自护教育进班级