matlab追击问题

 我来答
twang_buaa
2008-06-30 · TA获得超过1062个赞
知道小有建树答主
回答量:389
采纳率:0%
帮助的人:352万
展开全部
% 正方形追击问题:
%
% 在正方形的四个顶点上各有一人.在某一时刻四人同时出发以匀速v按顺时针方向追赶下一个人,
% 如果他们始终保持对准目标,试确定每个人的行进路线.
%
% 假设A追B,B追C,C追D,D追A;
% 以B作为参考系,那么A就朝B方向做速度为v的匀速直线运动,显然当他追上B时,
% 需要走的路程是初始条件下AB的距离,即正方形边长,设为L,时间则为L/v
% 求轨迹解析的方法需要解微分方程组,在matlab下可以用数值方法来做。
% 假设正方形边长为1,将整个过程分为1000步来实现:
% 1.确定初始值;
% 2.根据t时刻4个点的的坐标,求出t+1时刻的坐标
% 3.绘制曲线
% 当然这样做存在误差,减小误差的方法是减小步长。
clear all;clc;close all;
Ax=zeros(1,1000);Ay=Ax;% 存放四个点的轨迹坐标
Bx=zeros(1,1000);By=Bx;
Cx=zeros(1,1000);Cy=Cx;
Dx=zeros(1,1000);Dy=Dx;

Ax(1)=0;Ay(1)=0; %初始坐标
Bx(1)=1;By(1)=0;
Cx(1)=1;Cy(1)=1;
Dx(1)=0;Dy(1)=1;

for t=1:999
Ax(t+1)=Ax(t)+0.001*(Bx(t)-Ax(t))/sqrt((Bx(t)-Ax(t))^2+(By(t)-Ay(t))^2);%A向B前进了千分之一
Ay(t+1)=Ay(t)+0.001*(By(t)-Ay(t))/sqrt((Bx(t)-Ax(t))^2+(By(t)-Ay(t))^2);

Bx(t+1)=Bx(t)+0.001*(Cx(t)-Bx(t))/sqrt((Cx(t)-Bx(t))^2+(Cy(t)-By(t))^2);
By(t+1)=By(t)+0.001*(Cy(t)-By(t))/sqrt((Cx(t)-Bx(t))^2+(Cy(t)-By(t))^2);

Cx(t+1)=Cx(t)+0.001*(Dx(t)-Cx(t))/sqrt((Dx(t)-Cx(t))^2+(Dy(t)-Cy(t))^2);
Cy(t+1)=Cy(t)+0.001*(Dy(t)-Cy(t))/sqrt((Dx(t)-Cx(t))^2+(Dy(t)-Cy(t))^2);

Dx(t+1)=Dx(t)+0.001*(Ax(t)-Dx(t))/sqrt((Ax(t)-Dx(t))^2+(Ay(t)-Dy(t))^2);
Dy(t+1)=Dy(t)+0.001*(Ay(t)-Dy(t))/sqrt((Ax(t)-Dx(t))^2+(Ay(t)-Dy(t))^2);
end
figure;
plot(Ax,Ay,Bx,By,Cx,Cy,Dx,Dy);

自己执行上面程序,看看画出的图!
tanarri
推荐于2016-06-14 · TA获得超过1.1万个赞
知道大有可为答主
回答量:5123
采纳率:33%
帮助的人:8149万
展开全部
%追击问题
clear
zb=[0,0;10,0;10,10;0,10];%原始坐标点设置
v=[0.3,0.3,0.3,0.3];%速度设置
t=0.01;%最小时间步长
d0=0.05;%判断追到的最小距离
s=size(zb);%确认追击人数
for i=1:10000
zb(s(1,1)+1,:,i)=zb(1,:,i);%使最后一人的追击对象变成第一人,做成环式追击
zbjl(:,:,i)=zb(:,:,i);%坐标数据记录
if sqrt((zb(1,1,i)-zb(2,1,i))^2+(zb(1,2,i)-zb(2,2,i))^2)<d0%判断结束条件,这里是第一人追到第二人为结束条件
break
end
for j=1:s(1,1)
x=zb(j+1,1,i)-zb(j,1,i);%计算追击2人的坐标差
y=zb(j+1,2,i)-zb(j,2,i);
zb(j,1,i+1)=zb(j,1,i)+v(j)*t*x/sqrt(x^2+y^2);%通过坐标差计算和速度计算出在时间步长的时间内坐标移动的位移
zb(j,2,i+1)=zb(j,2,i)+v(j)*t*y/sqrt(x^2+y^2);
end
end
s=size(zbjl);
hold on
for j=1:s(1,1)-1%绘图
for i=1:s(1,3)
x(i)=zbjl(j,1,i);
y(i)=zbjl(j,2,i);
end
plot(x,y)
end

参考资料: http://www.labfans.com/showthread.php?t=2090

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式