追击问题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.5 3 2.5 2 1.5 1 0.5 0 -0.5 0 0.5 1 1.5 2 2.5 3 b=0.8 b=1.2
追赶时间分别为: 追赶时间分别为: 9.0000 5.0000 2.8125
2):当r=1时 ):当r=1时 即走私船的速度a等于缉私艇的速度b 即走私船的速度a等于缉私艇的速度b时, 方程的解为: 方程的解为:
1 x −c x y= ( − c ln ) 2 2c c
2 2
式中当x 式中当x(0)时,y(inf)说明这种情 inf) 况下,缉私艇不可能追上走私船。 况下,缉私艇不可能追上走私船。
3)当r>1时 r>1时 此时走私船的速度a大于缉私艇的速度b 此时走私船的速度a大于缉私艇的速度b 方程的解为: 方程的解为:
c 1 x 1 c y= + 2 1+ r c r −1 x
1+r
r−1
cr Байду номын сангаас 2 r −1
式中当x(0)时 式中当x(0)时,y(inf)这种情况下缉 x(0) inf) 私艇不可能追上走私船。 私艇不可能追上走私船。
MATLAB软件求解 3 用MATLAB软件求解 对降阶的微分方程
jstxb=[jstxb,jstx]; jsty=jsty+b*dt*(a*tsqrt(jstx^2+(a*tjsty=jsty+b*dt*(a*t-jsty)/ sqrt(jstx^2+(a*t-jsty)^2); jstyb=[jstyb,jsty]; zscy=a*t; zscyb=[zscyb,zscy];
应用、 追击问题, 应用、思考和练习(追击问题,如果雷达失效)
当缉私舰雷达发现d处有一走私船后, 当缉私舰雷达发现d处有一走私船后,雷 达突然损坏 若假定走私船作匀速直线运动( 但不知 若假定走私船作匀速直线运动 ( 方向) 且缉私舰艇速度v 方向),且缉私舰艇速度v大于走私船速 度a, 则缉私舰应采用什么样的航行路线, 则缉私舰应采用什么样的航行路线 , 不 管走私船从哪个方向逃跑, 都能追捕上 管走私船从哪个方向逃跑 , 它?
这又是一个一阶微分方程的初值问题, 这又是一个一阶微分方程的初值问题,此方程 的解依赖于参数r 的解依赖于参数r 1)当r<1(即走私船的速度a小于缉私艇 r<1(即走私船的速度a 的速度b 方程的解为: 的速度b)时,方程的解为:
c 1 x 1+r 1 x 1−r cr y = ( ) − ( ) + 2 21+r c 1−r c 1−r
实际过程: 实际过程: 一步步的进行模拟,动态过程。 一步步的进行模拟,动态过程。
cos k = θ
0 − xk (0 − xk ) + (atk − yk )
2 2
,
sinθk =
atk − y (0 − xk ) + (atk − yk )
2 2
取时间步长 ∆t , 则在时刻 缉私艇的位置: 缉私艇的位置:
t k + ∆t
(xk+1, yk+1) = (xk + ∆xk , yk + ∆yk )
从而: 从而:
xk+1 − xk = ∆xk ≈ b∆t cosθk , yk+1 − yk = ∆yk ≈ b∆t sinθk
计算过程中,直线段代替了曲线段, 计算过程中,直线段代替了曲线段,当 时间段划分较细时,计算近似准确。 时间段划分较细时,计算近似准确。
2 求解析解 前面给出的二阶微分方程初值问题是属于 可降阶方程,故令: 可降阶方程,故令:
dy = p, dx
d y dp = 2 dx dx
2
可得微分方程: 可得微分方程: r r dy 1 x c = − 2 c x dx y (c ) = 0
0
0.5
1
1.5
2
2.5
3
ode45(‘zx',3,0.0005,0)
5
追 击 路 线 图
4.5 4 3.5 3 2.5 2 1.5 1 0.5 0
0
0.5
1
1.5
2
2.5
3
5 计算机仿真算法 一般情况下建立动态微分方程是比较困难 的,我们可以用计算机仿真法对系统进行 分析研究。 分析研究。 所谓计算机仿真就是利用计算机对实际动 态系统的结构和行为进行编程, 态系统的结构和行为进行编程,模拟和计 由此预测系统的行为效果。 算,由此预测系统的行为效果。 下面我们对缉私艇追击走私船的过程进行 计算机仿真。 计算机仿真。
end zscxb=zeros(length(zscyb)); plot(jstxb,jstyb,'o',zscxb,zscyb,'.');
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
0
0.5
1
1.5
2
2.5
3
>> size(zscyb) ans = 1 148 在追上距离设定下,本程序执行的结果是: 在追上距离设定下,本程序执行的结果是: 整个追击过程历时296s 约为4.9333 整个追击过程历时296s,约为4.9333 296 min,与解析解5十分相近。 min,与解析解5十分相近。
1:数学建模
dy y−at =tan = θ , dx x−0
ds dt
= b
为找出x 为找出x与y的关系,我们设法消除变量t。 的关系,我们设法消除变量t 对第一个式子关于x求导。 对第一个式子关于x求导。
d y dt x 2 = −a d x dx
由于: 由于: dt
2
dt ds 1 dy = = − 1+ dx ds dx b dx
function y=zx(t,y) y=0.5*((t/3))^0.5y=0.5*((t/3))^0.5-(3/t)^0.5; ode23('zx',3,0.0005,0) %注意该命令中终值0.0005可以选择的 注意该命令中终值0.0005可以选择的 0.0005 追 击 路 线 图
5 4 3 2 1 0
两条曲线即为缉私艇和走私船走过的轨迹。 两条曲线即为缉私艇和走私船走过的轨迹。 实验过程: 实验过程: 取 c=3, a=0.4, b=0.8, r=a/b=0.5
c=3;a=0.4/60;b=0.8/60; jstxb=[];jstyb=[];zscxb=[];zscyb=[]; d=0.01;dt=2;t=0; jstx=3;jsty=0;zscx=0;zscy=0; (sqrt((jstxwhile (sqrt((jstx-zscx)^2+ (jsty-zscy)^2)>=d) … (jstyt=t+dt; jstx=jstxjstx=jstx-b*dt*jstx/ sqrt(jstx^2+(a*t… sqrt(jstx^2+(a*t-jsty)^2);
即为缉私艇的追赶的路线函数
当x=0时,缉私艇追赶上走私船,此时走 缉私艇追赶上走私船, 私船走过的距离: 私船走过的距离:
cr y= 2 1− r
追赶时间: 追赶时间:
y cr bc t= = = 2 2 2 a a(1− r ) b − a
如图: 如图:c=3km, a=0.4km/min, 分别取 b=0.6,0.8,1.2km/min时 b=0.6,0.8,1.2km/min时,缉私艇追赶 路线图形。 路线图形。 4 b=0.6
r r dy 1 x c = − 2 c x dx y (c ) = 0
可用MATLAB求解 可用MATLAB求解 MATLAB
>> syms x y r c; dsolve('Dy=1/2*((x/c)^r>> dsolve('Dy=1/2*((x/c)^r-(c/x)^r)', 'y(c)=0','x') ans = 1/2*(x/c)^(r+1)*c/(r+1)+ 1/2/(-1+r)*x*(c/x)^r-c*r/(r^21/2/(-1+r)*x*(c/x)^r-c*r/(r^2-1)
2 k 2
t 计算缉私艇在时刻 tk+1 =tk +∆ 坐标 t 对走私船在时刻 tk+1 =tk +∆ 坐标
(xk+1, yk+1) ~ ,~ ) (x y
k +1 k +1
第三步: 第三步: 计算缉私艇与走私船这两个动点之间 的距离: 的距离:
~ )2 +(y −~ )2 dk = (xk+1 −xk+1 k+ y +1 1 k
小于事先给定的距离, 如果 d k 小于事先给定的距离,则认为缉私 艇已经追上了走私船,退出循环, 艇已经追上了走私船,退出循环,否则让时 间产生一个步长,进入下一循环。 间产生一个步长,进入下一循环。
第四步: 当从述循环退出后, 第四步: 当从述循环退出后,将点列(xk +1, yk +1)
~ , ~ ), 与 (xk+1 yk+1 k = 1,2,3, L , 分别绘制
仿真算法: 仿真算法: 第一步: 速度a,b及初始位置 第一步: 设置时间步长 ∆t , 速度a,b及初始位置 a,b 第二步: 第二步:
x y
0 0
= c = 0 − xk x + (atk − yk )
2 k 2
xk +1 = xk + b∆t yk +1 = yk + b∆t
atk − yk x + (at k − yk )
2
(式子中的-是由于s随x的增大而减小) 式子中的-是由于s 的增大而减小) 从而可以得到二阶微分方程的初值问题
d2y dy 2 = r 1+ ( ) x 2 dx dx y (c ) = 0, y , (c ) = 0
a 其中: 其中: r = , b
即为缉私艇追击走私船的 数学模型。 数学模型。
追击问题
我缉私雷达发现,距离c 我缉私雷达发现,距离c处有一走 私船正以匀速a沿直线行驶, 私船正以匀速a沿直线行驶,缉私 舰立即以最大速度(匀速b 追赶。 舰立即以最大速度(匀速b)追赶。 若用雷达进行跟踪, 若用雷达进行跟踪,保持船的瞬时 速度方向始终指向走私船, 速度方向始终指向走私船, 缉私舰的运动轨迹是怎样的? 缉私舰的运动轨迹是怎样的?是否 能够追上走私船? 能够追上走私船? 如果能追上,需要用多长时间? 如果能追上,需要用多长时间?
c 1 x 1+r 1 x 1−r cr y = ( ) − ( ) + 2 2 1+r c 1−r c 1−r
MATLAB软件求数值解 4 用MATLAB软件求数值解 我们可以根据MATLAB提供的数值求解命 我们可以根据MATLAB提供的数值求解命 MATLAB 令求初值问题的数值解, 令求初值问题的数值解,多数情况要求我们 利用MATLAB MATLAB软件自己编程计算问题的数 利用MATLAB软件自己编程计算问题的数 值解, 值解,这里我们使用二三阶龙格库塔算法和 四五阶龙格库塔算法求解。 四五阶龙格库塔算法求解。 取 c=3, a=0.4, b=0.8, r=a/b=0.5
追赶时间分别为: 追赶时间分别为: 9.0000 5.0000 2.8125
2):当r=1时 ):当r=1时 即走私船的速度a等于缉私艇的速度b 即走私船的速度a等于缉私艇的速度b时, 方程的解为: 方程的解为:
1 x −c x y= ( − c ln ) 2 2c c
2 2
式中当x 式中当x(0)时,y(inf)说明这种情 inf) 况下,缉私艇不可能追上走私船。 况下,缉私艇不可能追上走私船。
3)当r>1时 r>1时 此时走私船的速度a大于缉私艇的速度b 此时走私船的速度a大于缉私艇的速度b 方程的解为: 方程的解为:
c 1 x 1 c y= + 2 1+ r c r −1 x
1+r
r−1
cr Байду номын сангаас 2 r −1
式中当x(0)时 式中当x(0)时,y(inf)这种情况下缉 x(0) inf) 私艇不可能追上走私船。 私艇不可能追上走私船。
MATLAB软件求解 3 用MATLAB软件求解 对降阶的微分方程
jstxb=[jstxb,jstx]; jsty=jsty+b*dt*(a*tsqrt(jstx^2+(a*tjsty=jsty+b*dt*(a*t-jsty)/ sqrt(jstx^2+(a*t-jsty)^2); jstyb=[jstyb,jsty]; zscy=a*t; zscyb=[zscyb,zscy];
应用、 追击问题, 应用、思考和练习(追击问题,如果雷达失效)
当缉私舰雷达发现d处有一走私船后, 当缉私舰雷达发现d处有一走私船后,雷 达突然损坏 若假定走私船作匀速直线运动( 但不知 若假定走私船作匀速直线运动 ( 方向) 且缉私舰艇速度v 方向),且缉私舰艇速度v大于走私船速 度a, 则缉私舰应采用什么样的航行路线, 则缉私舰应采用什么样的航行路线 , 不 管走私船从哪个方向逃跑, 都能追捕上 管走私船从哪个方向逃跑 , 它?
这又是一个一阶微分方程的初值问题, 这又是一个一阶微分方程的初值问题,此方程 的解依赖于参数r 的解依赖于参数r 1)当r<1(即走私船的速度a小于缉私艇 r<1(即走私船的速度a 的速度b 方程的解为: 的速度b)时,方程的解为:
c 1 x 1+r 1 x 1−r cr y = ( ) − ( ) + 2 21+r c 1−r c 1−r
实际过程: 实际过程: 一步步的进行模拟,动态过程。 一步步的进行模拟,动态过程。
cos k = θ
0 − xk (0 − xk ) + (atk − yk )
2 2
,
sinθk =
atk − y (0 − xk ) + (atk − yk )
2 2
取时间步长 ∆t , 则在时刻 缉私艇的位置: 缉私艇的位置:
t k + ∆t
(xk+1, yk+1) = (xk + ∆xk , yk + ∆yk )
从而: 从而:
xk+1 − xk = ∆xk ≈ b∆t cosθk , yk+1 − yk = ∆yk ≈ b∆t sinθk
计算过程中,直线段代替了曲线段, 计算过程中,直线段代替了曲线段,当 时间段划分较细时,计算近似准确。 时间段划分较细时,计算近似准确。
2 求解析解 前面给出的二阶微分方程初值问题是属于 可降阶方程,故令: 可降阶方程,故令:
dy = p, dx
d y dp = 2 dx dx
2
可得微分方程: 可得微分方程: r r dy 1 x c = − 2 c x dx y (c ) = 0
0
0.5
1
1.5
2
2.5
3
ode45(‘zx',3,0.0005,0)
5
追 击 路 线 图
4.5 4 3.5 3 2.5 2 1.5 1 0.5 0
0
0.5
1
1.5
2
2.5
3
5 计算机仿真算法 一般情况下建立动态微分方程是比较困难 的,我们可以用计算机仿真法对系统进行 分析研究。 分析研究。 所谓计算机仿真就是利用计算机对实际动 态系统的结构和行为进行编程, 态系统的结构和行为进行编程,模拟和计 由此预测系统的行为效果。 算,由此预测系统的行为效果。 下面我们对缉私艇追击走私船的过程进行 计算机仿真。 计算机仿真。
end zscxb=zeros(length(zscyb)); plot(jstxb,jstyb,'o',zscxb,zscyb,'.');
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
0
0.5
1
1.5
2
2.5
3
>> size(zscyb) ans = 1 148 在追上距离设定下,本程序执行的结果是: 在追上距离设定下,本程序执行的结果是: 整个追击过程历时296s 约为4.9333 整个追击过程历时296s,约为4.9333 296 min,与解析解5十分相近。 min,与解析解5十分相近。
1:数学建模
dy y−at =tan = θ , dx x−0
ds dt
= b
为找出x 为找出x与y的关系,我们设法消除变量t。 的关系,我们设法消除变量t 对第一个式子关于x求导。 对第一个式子关于x求导。
d y dt x 2 = −a d x dx
由于: 由于: dt
2
dt ds 1 dy = = − 1+ dx ds dx b dx
function y=zx(t,y) y=0.5*((t/3))^0.5y=0.5*((t/3))^0.5-(3/t)^0.5; ode23('zx',3,0.0005,0) %注意该命令中终值0.0005可以选择的 注意该命令中终值0.0005可以选择的 0.0005 追 击 路 线 图
5 4 3 2 1 0
两条曲线即为缉私艇和走私船走过的轨迹。 两条曲线即为缉私艇和走私船走过的轨迹。 实验过程: 实验过程: 取 c=3, a=0.4, b=0.8, r=a/b=0.5
c=3;a=0.4/60;b=0.8/60; jstxb=[];jstyb=[];zscxb=[];zscyb=[]; d=0.01;dt=2;t=0; jstx=3;jsty=0;zscx=0;zscy=0; (sqrt((jstxwhile (sqrt((jstx-zscx)^2+ (jsty-zscy)^2)>=d) … (jstyt=t+dt; jstx=jstxjstx=jstx-b*dt*jstx/ sqrt(jstx^2+(a*t… sqrt(jstx^2+(a*t-jsty)^2);
即为缉私艇的追赶的路线函数
当x=0时,缉私艇追赶上走私船,此时走 缉私艇追赶上走私船, 私船走过的距离: 私船走过的距离:
cr y= 2 1− r
追赶时间: 追赶时间:
y cr bc t= = = 2 2 2 a a(1− r ) b − a
如图: 如图:c=3km, a=0.4km/min, 分别取 b=0.6,0.8,1.2km/min时 b=0.6,0.8,1.2km/min时,缉私艇追赶 路线图形。 路线图形。 4 b=0.6
r r dy 1 x c = − 2 c x dx y (c ) = 0
可用MATLAB求解 可用MATLAB求解 MATLAB
>> syms x y r c; dsolve('Dy=1/2*((x/c)^r>> dsolve('Dy=1/2*((x/c)^r-(c/x)^r)', 'y(c)=0','x') ans = 1/2*(x/c)^(r+1)*c/(r+1)+ 1/2/(-1+r)*x*(c/x)^r-c*r/(r^21/2/(-1+r)*x*(c/x)^r-c*r/(r^2-1)
2 k 2
t 计算缉私艇在时刻 tk+1 =tk +∆ 坐标 t 对走私船在时刻 tk+1 =tk +∆ 坐标
(xk+1, yk+1) ~ ,~ ) (x y
k +1 k +1
第三步: 第三步: 计算缉私艇与走私船这两个动点之间 的距离: 的距离:
~ )2 +(y −~ )2 dk = (xk+1 −xk+1 k+ y +1 1 k
小于事先给定的距离, 如果 d k 小于事先给定的距离,则认为缉私 艇已经追上了走私船,退出循环, 艇已经追上了走私船,退出循环,否则让时 间产生一个步长,进入下一循环。 间产生一个步长,进入下一循环。
第四步: 当从述循环退出后, 第四步: 当从述循环退出后,将点列(xk +1, yk +1)
~ , ~ ), 与 (xk+1 yk+1 k = 1,2,3, L , 分别绘制
仿真算法: 仿真算法: 第一步: 速度a,b及初始位置 第一步: 设置时间步长 ∆t , 速度a,b及初始位置 a,b 第二步: 第二步:
x y
0 0
= c = 0 − xk x + (atk − yk )
2 k 2
xk +1 = xk + b∆t yk +1 = yk + b∆t
atk − yk x + (at k − yk )
2
(式子中的-是由于s随x的增大而减小) 式子中的-是由于s 的增大而减小) 从而可以得到二阶微分方程的初值问题
d2y dy 2 = r 1+ ( ) x 2 dx dx y (c ) = 0, y , (c ) = 0
a 其中: 其中: r = , b
即为缉私艇追击走私船的 数学模型。 数学模型。
追击问题
我缉私雷达发现,距离c 我缉私雷达发现,距离c处有一走 私船正以匀速a沿直线行驶, 私船正以匀速a沿直线行驶,缉私 舰立即以最大速度(匀速b 追赶。 舰立即以最大速度(匀速b)追赶。 若用雷达进行跟踪, 若用雷达进行跟踪,保持船的瞬时 速度方向始终指向走私船, 速度方向始终指向走私船, 缉私舰的运动轨迹是怎样的? 缉私舰的运动轨迹是怎样的?是否 能够追上走私船? 能够追上走私船? 如果能追上,需要用多长时间? 如果能追上,需要用多长时间?
c 1 x 1+r 1 x 1−r cr y = ( ) − ( ) + 2 2 1+r c 1−r c 1−r
MATLAB软件求数值解 4 用MATLAB软件求数值解 我们可以根据MATLAB提供的数值求解命 我们可以根据MATLAB提供的数值求解命 MATLAB 令求初值问题的数值解, 令求初值问题的数值解,多数情况要求我们 利用MATLAB MATLAB软件自己编程计算问题的数 利用MATLAB软件自己编程计算问题的数 值解, 值解,这里我们使用二三阶龙格库塔算法和 四五阶龙格库塔算法求解。 四五阶龙格库塔算法求解。 取 c=3, a=0.4, b=0.8, r=a/b=0.5