
微分方程模型(缉私艇追击走私船问题).ppt
15页一. 建模目的 目的在于提高学生根据实际问题建立微分方程模型的能力,学会求微分 方程解析解与数值解的方法,并会做简单的计算机仿真 二. 问题的提出 海上边防缉私艇发现距c公里处有一走私船正以匀速a沿直线行驶,缉私艇 立即以最大速度b追赶,在雷达的引导下,缉私艇的方向始终指向走私船问 缉私艇何时追赶上走私船?并求出缉私艇追赶的路线 x y co 5.3.2 缉私艇追击走私船问题 假设: 0 (c, 0) x y D (1) 建立坐标系; (2) 缉私船在(c,0)处发现走私船在 (0,0)处; (3) 走私船逃跑方向为y轴方向; (4) t时刻,走私船到达R(0,at) 缉私舰到达D(x,y); (5) 缉私舰的运动轨迹为y=y(x) 三.模型的建立 R 0 (c, 0) x y D R y x (0, at) α 化简: 对t求导: 化简: (1) 三.模型的建立 (2) 结合(1)、(2)得到如下微分方程: 问题:是否存在解析解? 四. 模型求解 (1) 求解析解 令: ,, 1) 当 x = 0 时, , c=3千米,a=0.4千米/秒, 分别取b=0.6,0.8,1.2千米/秒时, 缉私艇追赶路线的图形。
追赶时间分别为: t=9,5,2.8125(分钟) Matlab绘图 2) , 当时,缉私艇不可能追赶上走私船 3) , 当 时, ,缉私艇不可能追赶上走私船 (2) 用MATLAB软件求解析解 MATLAB软件5.3以上版本提供的解常微分方程解析解的指令是 dsolve,完整的调用格式是: dsolve(eqn1,eqn2, ...) 其中‘eqn1’,‘eqn2’, ...是输入宗量,包括三部分:微分方程、初始 条件、指定变量,若不指定变量,则默认小写字母t为独立变量 微分方程的书写格式规定:当y是因变量时,用“Dny”表示y的n阶导数 例 求微分方程 的通解 dsolve(Dy=x+x*y,x) 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) Matlab (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 ) (4) 用MATLAB软件仿真法 当建立动态系统的微分方程模型很困难时, 我们可以用计算机仿真法对系统进行分析研究。
所谓计算机仿真就是利用计算机对实际动态系 统的结构和行为进行编程、模拟和计算,以此 来预测系统的行为效果 方向为y轴正方向, : 缉私艇的位置: 走私船的位置: 走私船初始位在点 (0,0),缉私艇的初始位在点 (c,0), , 追赶方向可用方向余弦表示为: 时间步长为,则在时刻 时: 0 (c, 0) x y D R y x (0, at) 仿真算法: 第一步:设置时间步长, 速度a, b及初始位置, 第二步:计算动点缉私艇D在时刻 时的坐标 , compare 计算走私船R在时刻 时的坐标 , 第三步:计算缉私艇与走私船这两个动点之间的距离: 根据事先给定的距离,判断缉私艇是否已经追上了走私船,从而判断 退出循环还是让时间产生一个步长,返回到第二步继续进入下一次循环; 第四步:当从上述循环退出后,由点列 和可分别绘 制成两条曲线即为缉私艇和走私船走过的轨迹曲线 取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) 五. 结果分析 用求解析解的方法算得的解是最为精确的; 用数值方法计算的结果依赖于迭代终值的设定,减小迭代 终值可以提高计算精度; 用计算机仿真法计算的结果依赖于时间迭代步长的选取和 程序终止条件的设定,修改终止条件的设定和减小时间迭 代步长可以提高计算精度,减小误差。
六. 实验任务 1. 有一只猎狗在B点位置发现了一只兔子在正东北方距离它200米的地 方O处,此时兔子开始以8米/秒的速度向正西北方距离为120米的洞口A全 速跑去,假设猎狗在追赶兔子的时候始终朝着兔子的方向全速奔跑,用计 算机仿真法等多种方法完成下面的实验: (1) 问猎狗能追上兔子的最小速度是多少? (2) 在猎狗能追上兔子的情况下,猎狗跑过的路程是多少? (3) 画出猎狗追赶兔子奔跑的曲线图 (4) 假设在追赶过程中,当猎狗与兔子之间的距离为30米时,兔子由于 害怕, 奔跑的速度每秒减半,而猎狗却由于兴奋奔跑的速度每秒增 加0.1倍,在这种情况下,再按前面的(1)—(3)完成实验任务 A B N W O 2. 使用计算机仿真方法求解下述问题:在正方形的四个顶点上 各有一人,如下图所示,在某一时刻,四人同时出发以匀速按顺时 针方向追赶下一个人,如果他们始终保持对准目标,试确定每个人的 行进路线 六. 实验任务 。












