猎狗追兔子问题仿真实验报告.docx

上传人:b****5 文档编号:6541651 上传时间:2023-01-07 格式:DOCX 页数:11 大小:158.96KB
下载 相关 举报
猎狗追兔子问题仿真实验报告.docx_第1页
第1页 / 共11页
猎狗追兔子问题仿真实验报告.docx_第2页
第2页 / 共11页
猎狗追兔子问题仿真实验报告.docx_第3页
第3页 / 共11页
猎狗追兔子问题仿真实验报告.docx_第4页
第4页 / 共11页
猎狗追兔子问题仿真实验报告.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

猎狗追兔子问题仿真实验报告.docx

《猎狗追兔子问题仿真实验报告.docx》由会员分享,可在线阅读,更多相关《猎狗追兔子问题仿真实验报告.docx(11页珍藏版)》请在冰豆网上搜索。

猎狗追兔子问题仿真实验报告.docx

猎狗追兔子问题仿真实验报告

1.有一只猎狗在B点位置发现了一只兔子在正东北方距离它200米的地方O处,此时兔子开始以8米/秒的速度向正西北方距离为120米的洞口A全速跑去,假设猎狗在追赶兔子的时候始终朝着兔子的方向全速奔跑,用计算机仿真法等多种方法完成下面的实验:

(1)问猎狗能追上兔子的最小速度是多少?

(2)在猎狗能追上兔子的情况下,猎狗跑过的路程是多少?

(3)画出猎狗追赶兔子奔跑的曲线图。

(4)假设在追赶过程中,当猎狗与兔

子之间的距离为30米时,兔子由于害怕,

奔跑的速度每秒减半,而猎狗却由于兴

奋奔跑的速度每秒增加0.1倍,在这种情

况下,再按前面的

(1)—(3)完成实验任务。

Ø问题分析:

(1)以O点为原点,OA为y轴正方向建立平面直角坐标系。

用T(X,Y),G(x,y)分别表示兔子和狗的位置。

用e来表示猎狗速度方向的单位向量。

则有

由于兔子的速度是8m/s,狗要追上兔子,速度一定大于8m/s。

我们根据常识估算狗的速度不会超过100m/s。

不妨建立一个for循环,逐个尝试从8开始的速度。

直到得到一个可以使追击到时,T的纵坐标小于等于120的速度。

(2)由于狗是匀速运动,路程s即

(1)中得到的v和t的积。

(3)根据

(1)中的思路,以dt=0.1为时间步长我们可以算得每个时间点T与G的坐标。

这里为了方便描点,不再用向量表示,而是直接用坐标x,y,X,Y表示。

(4)只需要在前面的基础上加上:

①一个if条件,当距离d≤30时,狗的速度vk+1=vk·1.1^dt,兔子的速度uk+1=uk·0.5^dt;②s的计算改为sk+1=sk+vdt。

 

Ø程序设计:

(1)~

(2)问:

流程图:

 

否否

 

 

程序代码:

G=[-200,0];

T=[0,0];%用向量G,T分别表示狗和兔子的坐标

d=0.1;

t=0;dt=0.01;

forv=8:

0.05:

100

G=[-200,0];

T=[0,0];

t=0;

while(norm(G-T)>d&&norm(T)<120)

t=t+dt;

e=T-G;

D=norm(T-G);

e=e/D;

G=G+v*dt*e;

T

(2)=8*t;

end

ifT

(2)<=120

break

end

end

fprintf('狗的最小速度是:

%.2f',v)

s=v*t;

fprintf('狗跑过的距离是:

%.2f',s)

第(3)问:

流程图:

 

程序代码:

c=-200;

u=8;

v=17.1;

xb=[];yb=[];Xb=[];Yb=[];

d=1;

dt=0.1;

t=0;

x=c;y=0;X=0;Y=0;

holdon

axis([-200,0,0,150])

title('猎狗追兔子')

text(0,120,'A')

text(-200,0,'B')

text(0,0,'O')

while(sqrt((x-X)^2+(y-Y)^2)>d)

t=t+dt;

x=x-v*dt*x/sqrt(x^2+(u*t-y)^2);

xb=[xb,x];

y=y+v*dt*(u*t-y)/sqrt(x^2+(u*t-y)^2);

yb=[yb,y];

Y=u*t;

Yb=[Yb,Y];

end

xb;

yb;

Yb;

Xb=zeros(length(Yb));

plot(xb,yb,'m*',Xb,Yb,'c*')

gtext('猎狗')

gtext('兔子')

第(4)问:

1最小速度:

流程图:

(1)的高亮部分后方加上:

是否

 

程序代码:

u=8;

G=[-200,0];

T=[0,0];%用向量G,T分别表示狗和兔子的坐标

d=0.1;

t=0;dt=0.01;

forv=8:

0.05:

100

G=[-200,0];

T=[0,0];

t=0;

c=v;

u=8;

while(norm(G-T)>d&&norm(T)<120)

if(norm(G-T)<=30)

v=v*1.1^dt;

u=u*0.5^dt;

end

t=t+dt;

e=T-G;

D=norm(T-G);

e=e/D;

G=G+v*dt*e;

T

(2)=T

(2)+u*dt;

end

ifT

(2)<=120

v=c;

break

end

end

fprintf('狗的最小速度是:

%.2f',v)

2模拟及跑过的距离:

流程图:

同上

程序代码:

u=8;

v=15.45;

dt=0.1;

t=0;

s=0;

D=30;

d=1;

m=0;

x=-200;y=0;X=0;Y=0;

holdon

axis([-200,0,0,150])

title('猎狗追兔子')

text(0,120,'A')

text(-200,0,'B')

text(0,0,'O')

while(sqrt((x-X)^2+(y-Y)^2)>d)

if(sqrt((x-X)^2+(y-Y)^2)>D)

t=t+dt;

x=x-v*dt*x/sqrt(x^2+(u*t-y)^2);

y=y+v*dt*(u*t-y)/sqrt(x^2+(u*t-y)^2);

Y=Y+u*dt;

plot(x,y,'r*',X,Y,'b*')

pause(0.1)

else

t=t+dt;

if(m==0||m==1)

u=u/2;

v=1.1*v;

m=0;

end

m=m+dt;

x=x-v*dt*x/sqrt(x^2+(Y+u*dt-y)^2);

y=y+v*dt*(Y+u*dt-y)/sqrt(x^2+(Y+u*dt-y)^2);

Y=Y+u*dt;

plot(x,y,'r+',X,Y,'b+')

pause(0.1)

end

s=s+v*dt;

end

gtext('猎狗')

gtext('兔子')

x,y,X,Y,t,s

 

Ø结果分析和结论:

(1)~

(2)问

第(3)问:

第(4)问:

1

2

 

Ø总结和体会:

本题其实整体上采取的一个模拟的思想。

通过一次一次迭代模拟追捕过程。

从本题速度和仿真时,我们可以发现,在单纯的计算时,直接用向量计算可以简化很多步骤。

但是在仿真时,直接描述各个坐标会更为方便。

我们要根据自己的需求选择表示方法。

2.使用计算机仿真方法求解下述问题:

在正方形的四个顶点上各有一人,如下图所示,在某一时刻,四人同时出发以匀速按顺时针方向追赶下一个人,如果他们始终保持对准目标,试确定每个人的行进路线。

问题分析:

以左边为y轴,下边为x轴建立平面直角坐标系。

可以得到四个人的点坐标为O(0,0),A(200,0),B(,200,200),C(0,200)。

以点O为例:

设t时刻,点O,C的坐标分别为

,点O的速度沿单位向量:

,从而得出

其他四个点也用类似的方法,即可得到所有点在每个时间点的坐标。

Ø程序设计:

流程图:

 

 

程序代码:

holdon

axis([0,200,0,200])

O=[0,0];

A=[200,0];

B=[200,200];

C=[0,200];

d1=norm(C-O);

d2=norm(O-A);

d3=norm(A-B);

d4=norm(B-C);

v=10;

t=0.1;

whiled1>2

plot(O

(1),O

(2),'r+');

plot(A

(1),A

(2),'b*');

plot(B

(1),B

(2),'gp');

plot(C

(1),C

(2),'yo');

e1=C-O;d1=norm(e1);

e2=O-A;d2=norm(e2);

e3=A-B;d3=norm(e3);

e4=B-C;d4=norm(e4);

e1=e1/d1;%表示点O的方向,下同

e2=e2/d2;

e3=e3/d3;

e4=e4/d4;

O=O+v*t*e1;

A=A+v*t*e2;

B=B+v*t*e3;

C=C+v*t*e4;

pause(0.1)

end

Ø结果分析和结论:

Ø总结和体会:

由于题中并没有给出具体数据,在设计程序时,许多标准都要自己考虑。

因为本题我们给正方形设定的边长为200,因此为了缩短模拟时间,速度设定为10,同时,由于边长较大,如果按照上题,判别精度d设为1的话,将会进入死循环。

因此,我们在设计时应当注意模拟的精度的选择。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1