您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 3.微分方程模型(缉私艇追击走私船问题)
微分方程模型实例2——缉私艇追击走私船问题一.建模目的目的在于提高学生根据实际问题建立微分方程模型的能力,学会求微分方程解析解与数值解的方法,并会做简单的计算机仿真。二.问题的提出海上边防缉私艇发现距c公里处有一走私船正以匀速a沿直线行驶,缉私艇立即以最大速度b追赶,在雷达的引导下,缉私艇的方向始终指向走私船。问缉私艇何时追赶上走私船?并求出缉私艇追赶的路线。xyco5.3.2缉私艇追击走私船问题微分方程模型实例2——缉私艇追击走私船问题假设:0(c,0)xyD(1)建立坐标系;(2)缉私船在(c,0)处发现走私船在(0,0)处;(3)走私船逃跑方向为y轴方向;(4)t时刻,走私船到达R(0,at)缉私舰到达D(x,y);(5)缉私舰的运动轨迹为y=y(x)三.模型的建立R微分方程模型实例2——缉私艇追击走私船问题0(c,0)xyDRyx(0,at)dtan()dyyatxxαddyxyatx化简:adtdydtdxdxydxdxdydtdx22对t求导:dxdtadxydx22化简:(1)三.模型的建立微分方程模型实例2——缉私艇追击走私船问题2)(11dxdybdxdsdsdtdxdtsbdtds表示弧长又(2)barcycydxdyrdxydx其中0)(',0)()(1222结合(1)、(2)得到如下微分方程:dxdtadxydx22问题:是否存在解析解?微分方程模型实例2——缉私艇追击走私船问题四.模型求解0)(,0)(1222cycydxdyrdxydxbar/(1)求解析解令:pdxdy,dxdpdxyd22,0)(12cpxdxrpdprcxpp21rxcpp210)(21cyxccxdxdyrr微分方程模型实例2——缉私艇追击走私船问题0)(21cyxccxdxdyrr1bar1)211111112rcrcxrcxrcyrr当x=0时,21rcry,)()1(222abbcracrayt00.511.522.533.500.511.522.533.54c=3千米,a=0.4千米/秒,分别取b=0.6,0.8,1.2千米/秒时,缉私艇追赶路线的图形。追赶时间分别为:t=9,5,2.8125(分钟)Matlab绘图微分方程模型实例2——缉私艇追击走私船问题2)1bar0)(21cyxccxdxdyrr111112211rcrxcrcxrcyrr,当0x时,y缉私艇不可能追赶上走私船。3)1r,cxcccxyln22122当0x时,y,缉私艇不可能追赶上走私船。微分方程模型实例2——缉私艇追击走私船问题(2)用MATLAB软件求解析解MATLAB软件5.3以上版本提供的解常微分方程解析解的指令是dsolve,完整的调用格式是:dsolve('eqn1','eqn2',...)其中‘eqn1’,‘eqn2’,...是输入宗量,包括三部分:微分方程、初始条件、指定变量,若不指定变量,则默认小写字母t为独立变量。微分方程的书写格式规定:当y是因变量时,用“Dny”表示y的n阶导数。例求微分方程xyxy的通解。dsolve('Dy=x+x*y','x')Ans=-1+exp(1/2*x^2)*C10)(21cyxccxdxdyrrdsolve('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微分方程模型实例2——缉私艇追击走私船问题(3)用MATLAB软件求数值解0)(21cyxccxdxdyrrc=3,a=0.4,b=0.8,5.0/bar程序zx.mfunctiony=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)微分方程模型实例2——缉私艇追击走私船问题(4)用MATLAB软件仿真法当建立动态系统的微分方程模型很困难时,我们可以用计算机仿真法对系统进行分析研究。所谓计算机仿真就是利用计算机对实际动态系统的结构和行为进行编程、模拟和计算,以此来预测系统的行为效果。方向为y轴正方向,:缉私艇的位置:走私船的位置:走私船初始位在点(0,0),缉私艇的初始位在点(c,0),),0(kat,ktt),(kkyx追赶方向可用方向余弦表示为:22)()0(0coskkkkkyatxx22)()0(sinkkkkkkyatxyat时间步长为t,则在时刻ttk时:,cos1kkkktbxxxkkkktbyyysin10(c,0)xyDRyx(0,at)微分方程模型实例2——缉私艇追击走私船问题仿真算法:第一步:设置时间步长,速度a,b及初始位置tcx0,00y第二步:计算动点缉私艇D在时刻tttkk1时的坐标),(11kkyx221)(kkkkkkyatxxtbxx221)(kkkkkkyatxyattbyy,compare计算走私船R在时刻tttkk1时的坐标)~,~(11kkyx0~1kx)(~1ttaykk,第三步:计算缉私艇与走私船这两个动点之间的距离:211211)~()~(kkkkkyyxxd根据事先给定的距离,判断缉私艇是否已经追上了走私船,从而判断退出循环还是让时间产生一个步长,返回到第二步继续进入下一次循环;第四步:当从上述循环退出后,由点列),(11kkyx和)~,~(11kkyx可分别绘制成两条曲线即为缉私艇和走私船走过的轨迹曲线。微分方程模型实例2——缉私艇追击走私船问题取c=3千米,a=0.4千米/分钟,b=0.8千米/分钟,5.0/bar程序zhuixiantu.mc=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];endzscxb=zeros(length(zscyb));plot(jstxb,jstyb,zscxb,zscyb,'*')matlab历时:296秒,艇:(0.00004135527497,1.97150212967435)船:(0,1.97333333333333)微分方程模型实例2——缉私艇追击走私船问题五.结果分析用求解析解的方法算得的解是最为精确的;用数值方法计算的结果依赖于迭代终值的设定,减小迭代终值可以提高计算精度;用计算机仿真法计算的结果依赖于时间迭代步长的选取和程序终止条件的设定,修改终止条件的设定和减小时间迭代步长可以提高计算精度,减小误差。微分方程模型实例2——缉私艇追击走私船问题六.实验任务1.有一只猎狗在B点位置发现了一只兔子在正东北方距离它200米的地方O处,此时兔子开始以8米/秒的速度向正西北方距离为120米的洞口A全速跑去,假设猎狗在追赶兔子的时候始终朝着兔子的方向全速奔跑,用计算机仿真法等多种方法完成下面的实验:(1)问猎狗能追上兔子的最小速度是多少?(2)在猎狗能追上兔子的情况下,猎狗跑过的路程是多少?(3)画出猎狗追赶兔子奔跑的曲线图。(4)假设在追赶过程中,当猎狗与兔子之间的距离为30米时,兔子由于害怕,奔跑的速度每秒减半,而猎狗却由于兴奋奔跑的速度每秒增加0.1倍,在这种情况下,再按前面的(1)—(3)完成实验任务。ABNWO微分方程模型实例2——缉私艇追击走私船问题2.使用计算机仿真方法求解下述问题:在正方形的四个顶点上各有一人,如下图所示,在某一时刻,四人同时出发以匀速按顺时针方向追赶下一个人,如果他们始终保持对准目标,试确定每个人的行进路线。六.实验任务
本文标题:3.微分方程模型(缉私艇追击走私船问题)
链接地址:https://www.777doc.com/doc-3492908 .html