Bootstrap

趣味数模问题2-四人追逐问题(利用matlab进行模拟)

如图1,在正方形ABCD的四个顶点各有一个人。设在初始时刻t=0时,四人同时出发匀速以v沿顺时针走向下一个人。如果他们始终对准下一个人为目标行进,最终结果会如何。作出各自的运动轨迹。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • matlab模拟脚本的代码:
n=500;          %总时刻数
x=zeros(4,n);   %产生4行n列个零来放置坐标矩阵
y=zeros(4,n);
dt=0.02;        %时间间隔
v=10;           %速度
%四个人初始位置的横,纵坐标:
x(1,1)=100; y(1,1)=0;
x(2,1)=0;   y(2,1)=0;
x(3,1)=0;   y(3,1)=100;
x(4,1)=100; y(4,1)=100;

for j=1:n-1
    for i=1:3   %前三个人的位置更新:
        d=sqrt((x(i+1,j)-x(i,j))^2+(y(i+1,j)-y(i,j))^2);    %第i个人和第i+1个人之间j时刻的距离
        dircos=(x(i+1,j)-x(i,j))/d;   %第i个人j时刻运动方向的cos和sin值
        dirsin=(y(i+1,j)-y(i,j))/d;
        x(i,j+1)=x(i,j)+v*dt*dircos;    %第i个人j+1时刻的位置的横,纵坐标
        y(i,j+1)=y(i,j)+v*dt*dirsin;
    end
                %第四个人的位置更新:
    d=sqrt((x(1,j)-x(4,j))^2+(y(1,j)-y(4,j))^2);    %4个人和第1个人之间j时刻的距离
    dircos=(x(1,j)-x(4,j))/d;   %4个人j时刻运动方向的cos和sin值
    dirsin=(y(1,j)-y(4,j))/d;
    x(4,j+1)=x(4,j)+v*dt*dircos;    %4个人j+1时刻的位置的横,纵坐标
    y(4,j+1)=y(4,j)+v*dt*dirsin;
    
                %给第j时刻四个人的位置作图:
    plot(x(1,j),y(1,j),'r*',x(2,j),y(2,j),'y*',x(3,j),y(3,j),'b*',x(4,j),y(4,j),'g*')
    hold on
    pause(0.001)  %暂停0.001秒
end

  • 结果:
    在这里插入图片描述
;