数学建模第三次作业.docxVIP

  • 40
  • 0
  • 约3.37千字
  • 约 4页
  • 2021-10-12 发布于湖南
  • 举报
数学建模第三次作业 院 系: 数学学院 专 业: 信息与计算科学 年 级: 2021级 学生姓名: 王继禹 学 号: 202101050335 教师姓名: 徐霞 6.6 习题 3.一个慢跑者在平面上沿着他喜欢的路径跑步,突然一只狗攻击他,这只狗以恒定速率跑向慢跑者,狗的运动方向始终指向慢跑者,计算并画出狗的轨迹。 解: (1)模型分析建立: 狗的轨迹:在任意时刻,狗的速度向量都指向它的目标慢跑者。 假设1:慢跑者在某路径上跑步,他的运动由两个函数X(t)和Y(t)描述。 假设2:当t=0时,狗是在点(x0,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) global w;% w=speed of the dog X=jogger(t); h = X-z; nh=norm(h); if nargin3 || isempty(flag) zs=(w/nh)*h; else switch(flag) case events zs = nh-1e-3; isterminal = 1; direction = 0; otherwise error([Unknow flag: flag]); end end 慢跑者的运动轨迹方程,水平向右 [jogger.m] function s = jogger(t); s = [8*t;0]; 标记的函数 [cross.m] function cross(Cx,Cy,v) Kx = [Cx Cx Cx Cx-v Cx+v]; Ky = [Cy Cy+2.5*v Cy+1.5*v Cy+1.5*v Cy+1.5*v] plot(Kx,Ky); plot(Cx,Cy,o); 主程序: 静态显示 [main1.m] global w y0 = [60;70]; w=10; options = odeset(RelTol,1e-5,Events,on); [t,Y] = ode23(dog,[0,20],y0,options); clf;hold on; axis([-10,100,-10,70]); plot(Y(:,1),Y(:,2)); J=[]; for h=1:length(t), w = jogger(t(h)); J=[J;w]; end plot(J(:,1),J(:,2),:); p = max(size(Y)); cross(Y(p,1),Y(p,2),2) hold off; 动态显示 [main2.m] global w; y0=[60;70]; w=10; options = odeset(RelTol,1e-5,Events,on); [t,Y]=ode23(dog,[0,20],y0,options); J=[]; for h=1:length(t); w= jogger(t(h)); J=[J;w]; end xmin = 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;hold on; axis([xmin-10 xmax ymin-10 ymax]); title(The jogger an

文档评论(0)

1亿VIP精品文档

相关文档