1 / 14

实验 2 缉私艇追击走私船

实验 2 缉私艇追击走私船. 2.1 实验目的 通过本次实验,目的在于提高学生根据实际问题建立微分方程模型的能力,学会求微分方程解析解与数值解的方法,并会做简单的计算机仿真 。. 2.2 实验问题 海上边防缉私艇发现距 c 公里处有一走私船正以匀速 a 沿直线行驶 , 缉私艇 立即以最大速度 b 追赶 , 在雷达的引导下,缉私艇的方向始终指向走私船。问 缉私艇何时追赶上走私船 ? 并求出缉私艇追赶的路线。. y. x. o. c. y. 2.3 建立模型. 走私船初始位置在点 (0,0) ,. 行驶方向为 y 轴正方向 ,.

sailor
Download Presentation

实验 2 缉私艇追击走私船

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 实验2 缉私艇追击走私船 2.1实验目的 通过本次实验,目的在于提高学生根据实际问题建立微分方程模型的能力,学会求微分方程解析解与数值解的方法,并会做简单的计算机仿真。 2.2实验问题 海上边防缉私艇发现距c公里处有一走私船正以匀速a沿直线行驶,缉私艇 立即以最大速度b追赶,在雷达的引导下,缉私艇的方向始终指向走私船。问 缉私艇何时追赶上走私船?并求出缉私艇追赶的路线。 y x o c

  2. y 2.3建立模型 走私船初始位置在点(0,0), 行驶方向为y轴正方向, 缉私艇的初始位置在点(c,0), 缉私艇行驶的历程为s。 o c x 在时刻t: 走私船的位置到达点 缉私艇到达点

  3. 2.4模型求解 (1)求解析解 令: , ,

  4. 1) , 当x = 0时, , c=3千米,a=0.4千米/秒, 分别取b=0.6,0.8,1.2千米/秒时, 缉私艇追赶路线的图形。 追赶时间分别为: t=9,5,2.8125(分钟) Matlab

  5. 2) , 当 时, 缉私艇不可能追赶上走私船。 3) , , 当 时, 缉私艇不可能追赶上走私船。

  6. (2)用MATLAB软件求解析解 MATLAB软件5.3以上版本提供的解常微分方程解析解的指令是 dsolve,完整的调用格式是: dsolve('eqn1','eqn2', ...) 其中‘eqn1’,‘eqn2’, ...是输入宗量,包括三部分:微分方程、初始 条件、指定变量,若不指定变量,则默认小写字母t为独立变量。 微分方程的书写格式规定:当y是因变量时,用“Dny”表示y的n阶导数。 的通解。 例 求微分方程 dsolve('Dy=x+x*y','x') Matlab Ans=-1+exp(1/2*x^2)*C1 dsolve('Dy=1/2*((x/c)^r-(c/x)^r)','y(c)=0','x') ans=1/2*exp(-r*(log(c)-log(x)))*c^r*(1/c)^r/(r+1)*x+ 1/2*exp(r*(log(c)-log(x)))/(-1+r)*x- 1/2*c*(-(1/c)^r*c^r+c^r*(1/c)^r*r+r+1)/(r^2-1)

  7. (3)用MATLAB软件求数值解 c=3,a=0.4,b=0.8, 程序zx.m function y=zx(t,y) y=0.5*((t/3)^0.5-(3/t)^0.5) 执行下面的命令:ode23('zx',3,0.0005,0) matlab 若想看图中“o”点的坐标可执行下面的命令: [t,y]=ode23('zx',3,0.0005,0) plot(t,y) 此时缉私艇的位置坐标是(0.00050000000000,1.96013657712118) 执行下面的命令: ode45('zx',3,0.0005,0) 若想看图中“o”点的坐标可执行下面的命令: [t,y]=ode45('zx',3,0.0005,0) plot(t,y) 此时缉私艇的位置坐标是(0.0005,1.9675 )

  8. y (4) 用MATLAB软件防真法 当建立动态系统的微分方程模型很困难时, 我们可以用计算机仿真法对系统进行分析研究。 所谓计算机仿真就是利用计算机对实际动态系 统的结构和行为进行编程、模拟和计算,以此 来预测系统的行为效果。 o c x 方向为y轴正方向, 走私船初始位在点(0,0), 缉私艇的初始位在点(c,0), , : 走私船的位置: 缉私艇的位置: 追赶方向可用方向余弦表示为: 时: , 则在时刻 时间步长为

  9. 仿真算法: , 第一步:设置时间步长 , 速度a, b及初始位置 时的坐标 第二步: 计算动点缉私艇D在时刻 , compare 时的坐标 计算走私船R在时刻 , 第三步:计算缉私艇与走私船这两个动点之间的距离: 根据事先给定的距离,判断缉私艇是否已经追上了走私船,从而判断 退出循环还是让时间产生一个步长,返回到第二步继续进入下一次循环; 第四步:当从上述循环退出后,由点列 和 可分别绘 制成两条曲线即为缉私艇和走私船走过的轨迹曲线。

  10. 取c=3千米,a=0.4千米/分钟,b=0.8千米/分钟, 程序zhuixiantu.m c=3; a=0.4/60; b=0.8/60; jstxb=[];jstyb=[];zscxb=[];zscyb=[]; d=0.01;dt=2;t=0; jstx=c;jsty=0;zscx=0;zscy=0; while (sqrt((jstx-zscx)^2+(jsty-zscy)^2)>d) t=t+dt; jstx=jstx-b*dt*jstx/sqrt(jstx^2+(a*t-jsty)^2); jstxb=[jstxb,jstx]; jsty=jsty+b*dt*(a*t-jsty)/sqrt(jstx^2+(a*t-jsty)^2); jstyb=[jstyb,jsty]; zscy=a*t; zscyb=[zscyb,zscy]; end zscxb=zeros(length(zscyb)); plot(jstxb,jstyb,zscxb,zscyb,'*') matlab 历时:296秒, 艇:(0.00004135527497,1.97150212967435) 船:(0,1.97333333333333)

  11. 2.5结果分析 用求解析解的方法算得的解是最为精确的;用数值方法计算的结果 依赖于迭代终值的设定,减小迭代终值可以提高计算精度;用计算机仿 真法计算的结果依赖于时间迭代步长的选取和程序终止条件的设定,修 改终止条件的设定和减小时间迭代步长可以提高计算精度,减小误差。

  12. 2.6 实验任务 1.有一只猎狗在B点位置发现了一只兔子在正东北方距离它200米的地 方O处,此时兔子开始以8米/秒的速度向正西北方距离为120米的洞口A全 速跑去,假设猎狗在追赶兔子的时候始终朝着兔子的方向全速奔跑,用计 算机仿真法等多种方法完成下面的实验: (1) 问猎狗能追上兔子的最小速度是多少? (2) 在猎狗能追上兔子的情况下,猎狗跑过的路程是多少? (3) 画出猎狗追赶兔子奔跑的曲线图。 (4) 假设在追赶过程中,当猎狗与兔子之间的距离为30米时,兔子由于 害怕, 奔跑的速度每秒减半,而猎狗却由于兴奋奔跑的速度每秒增 加0.1倍,在这种情况下,再按前面的(1)—(3)完成实验任务。 N A W O B

  13. 2. 使用计算机仿真方法求解下述问题:在正方形的四个顶点上 各有一人,如下图所示,在某一时刻,四人同时出发以匀速按顺时 针方向追赶下一个人,如果他们始终保持对准目标,试确定每个人的 行进路线。

  14. Thank you for your cooperation

More Related