资源描述:
《数学建模第三次作业上课讲义.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数学建模第三次作业精品文档院系:数学学院专业:信息与计算科学年级:2014级学生姓名:王继禹学号:201401050335教师姓名:徐霞收集于网络,如有侵权请联系管理员删除精品文档6.6习题3.一个慢跑者在平面上沿着他喜欢的路径跑步,突然一只狗攻击他,这只狗以恒定速率跑向慢跑者,狗的运动方向始终指向慢跑者,计算并画出狗的轨迹。解:(1)模型分析建立:狗的轨迹:在任意时刻,狗的速度向量都指向它的目标慢跑者。假设1:慢跑者在某路径上跑步,他的运动由两个函数X(t)和Y(t)描述。假设2:当t=0时,狗是在点(x
2、0,y0)处,在时刻t时,它的位置是(x(t),y(t))那么下列方程成立:(1)狗以恒定速率跑:X’2+y’2=w2(2)狗的速度向量平行于慢跑者与狗的位置的差向量:将上述方程带入等式:,可得:再将λ代入第二个方程,可得狗的轨迹的微分方程:(2)程序及结果dog函数[dog.m]function[zs,isterminal,direction]=dog(t,z,flag)globalw;%w=speedofthedogX=jogger(t);h=X-z;nh=norm(h);ifnargin<3
3、
4、ise
5、mpty(flag)zs=(w/nh)*h;elseswitch(flag)case'events'zs=nh-1e-3;isterminal=1;direction=0;otherwiseerror(['Unknowflag:'flag]);end收集于网络,如有侵权请联系管理员删除精品文档end慢跑者的运动轨迹方程,水平向右[jogger.m]functions=jogger(t);s=[8*t;0];标记的函数[cross.m]functioncross(Cx,Cy,v)Kx=[CxCxCxCx-vC
6、x+v];Ky=[CyCy+2.5*vCy+1.5*vCy+1.5*vCy+1.5*v]plot(Kx,Ky);plot(Cx,Cy,'o');主程序:静态显示[main1.m]globalwy0=[60;70];w=10;options=odeset('RelTol',1e-5,'Events','on');[t,Y]=ode23('dog',[0,20],y0,options);clf;holdon;axis([-10,100,-10,70]);plot(Y(:,1),Y(:,2));J=[];forh
7、=1:length(t),w=jogger(t(h));J=[J;w'];endplot(J(:,1),J(:,2),':');p=max(size(Y));cross(Y(p,1),Y(p,2),2)holdoff;动态显示[main2.m]globalw;y0=[60;70];w=10;options=odeset('RelTol',1e-5,'Events','on');[t,Y]=ode23('dog',[0,20],y0,options);J=[];forh=1:length(t);w=jogge
8、r(t(h));J=[J;w'];收集于网络,如有侵权请联系管理员删除精品文档endxmin=min(min(Y(:,1)),min(J(:,1)));xmax=max(max(Y(:,1)),max(J(:,1)));ymin=min(min(Y(:,2)),min(J(:,2)));ymax=max(max(Y(:,2)),max(J(:,2)));clf;holdon;axis([xmin-10xmaxymin-10ymax]);title('ThejoggerandtheDog');forh=1:l
9、ength(t)-1,plot([Y(h,1),Y(h+1,1)],[Y(h,2),Y(h+1,2)],'-','Color','red','EraseMode','none');plot([J(h,1),J(h+1,1)],[J(h,2),J(h+1,2)],'-','Color','green','EraseMode','none');drawnow;pause(0.1);endplot(J(:,1),J(:,2),':');p=max(size(Y));cross(Y(p,1),Y(p,2),2)ho
10、ldoff;结果t=12.2761812635281,在12.27秒后狗追上慢跑者。慢跑者轨迹是椭圆轨迹[jogger2.m]收集于网络,如有侵权请联系管理员删除精品文档functions=jogger2(t)s=[10+20*cos(t)20+15*sin(t)];狗的微分方程[dog.m]function[zs,isterminal,direction]=dog(t,z,flag)globalw;%w=spe