趣味数模问题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

  • 结果:
    在这里插入图片描述
  • 10
    点赞
  • 105
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值