1、实验 追逐问题Matlab 程序如下:%取 v=1,t=12,A,B,C,D 点的坐标分另为(0,10) , (10,10) , (10,0) ,(0, 0)v=1;dt=0.05;d=20;x=0 0 0 10 10 10 10 0;x(9)=x(1);x(10)=x(2);holdaxis(equal)axis(0 10 0 10);for k=1:2:7plot(x(k),x(k+1),. )endwhile(d0.1)for i=1:2:7d=sqrt(x(i)-x(i+1)2+(x(i+1)-x(i+3)2);x(i)=x(i)+v*dt*(x(i+2)-x(i)/d;x(i+1)=
2、x(i+1)+v*dt*(x(i+3)-x(i+1)/d;plot(x(i),x(i+1),.)endx(9)= x(1);x(10)= x(2);endhold运行结果如下:狼追击兔子的问题狼追击兔子问题是欧洲文艺复兴时代的著名人物达.芬奇提出的一个数学问题。当一个兔子正在它的洞穴南面 60 码处觅食时,一只恶狼出现在兔子正东的 100 码处。当两只动物同时发现对方以后,兔子奔向自己的洞穴,狼以快于兔子一倍的速度紧追兔子不放。狼在追赶过程中所形成的轨迹就是追击曲线。狼是否会在兔子跑回洞穴之前追赶上兔子?为了研究狼是否能够追上兔子,可以先考虑求出狼追兔子形成的追击曲线,然后根据曲线来确定狼是否
3、能够追上兔子。可以对狼与兔子的追击过程通过计算机进行模拟,然后从模拟结果获取。模拟程序如下,程序文件名 sim_langtu.m:function sim_langtu%狼兔追击问题 %(离散模拟)%这里没有具体考虑狼、兔的具体速度%主要通过二者的速度倍速关系及方向向量奔跑过程Q=0 0;%兔子坐标P=100 0;%狼坐标PQ=Q-P;%狼兔方向向量 step =1;%模拟步长:兔子奔跑的距离,step越小就越精确count = 60/step;%以兔子的奔跑距离划分PQ=PQ/norm(PQ)*step;%归一化,单位向量trackP=P;trackQ=Q;for k=1:count; P
4、= P + 2*PQ;%2倍速度Q = Q + step*0 1;%0 1为兔子奔跑方向的单位方向向量PQ = Q - P;trackP(1+k,:)=P;trackQ(1+k,:)=Q;PQ=PQ/norm(PQ)*step;%归一化,单位向量 dis= sqrt(sum(P-Q).2);plot(trackP(:,1),trackP(:,2),*,Q(1),Q(2),rp,0,60,r+);pause(0.5)end%fordis%兔子到达窝边时,狼兔之间的距离P %兔子到达窝边时,狼的坐标Q %兔子到达窝边时,兔子的坐标(二)模拟程序运行结果dis =7.0619P =1.6805 53.1410Q =0 60注:如果修改程序中的 step 赋值,则结果稍有不同。程序结束后,输出狼兔的位置图如下。通过下图可以直观的看到,当兔子回到窝边时,狼还与兔子有一段距离,这表示兔子成功逃脱。0