微分方程建模之二
导弹跟踪问题的数学模型
(狗兔追逃的数学模型)
一、本案例主要涉及常微分方程,介绍常微分方程的建模和求解方
法。
刻画同一现实问题的不同数学模型的好坏,除了用是否准确反映现实去衡量之外,另一重要的衡量准则是模型是否易于求解。
大多数现实问题的数学模型难以求得精确解,因而对某些问题,是否易于用计算机求得高精度的数值解就成为评价数学模型好坏的重要标准之一。
本案例中,我们介绍两种解微分方程的数值方法:Euler法和改进的Euler法。
知道有仿真方法(指的是模仿真实事件行为和过程的方法)。
二、实际问题
某军的一导弹基地发现正北方向120km处海面上有敌艇一艘以
90km/h的速度向正东方向行驶。该基地立即发射导弹跟踪追击
敌艇,导弹速度为450km/h,自动导航系统使导弹在任一时刻都
能对准敌艇。试问导弹在何时何处击中敌艇?
三、数学模型——常微分方程的建立
建立直角坐标系:导弹基地为原点)0,0(O ,x 轴指向正东方,
y 轴指向正北方。
当时间0=t ,导弹位于原点O ,敌艇位于点),0(H A ,
km H 120=。
设导弹在t 时刻的位置为))(),((t y t x P 。由条件知:
222)()(
w V dt
dy dt dx =+, 其中h km V w /450= 为导弹速度。
在t 时刻,敌艇位置应在),(H t V M e ,其中h km V e /90=。
由于导弹轨迹的切线方向必须指向敌艇,故有
x t V y
H dx dy e --=
或 )(x
t V y H dt dx dt dy e --=。 因此微分方程模型为:
????
??
???==--==+)
3(0)0(,0)0()2()(
)1()()(222y x x t V y
H dt dx dt dy V dt dy dt dx e w 是一个关于时间t 的一阶微分方程组的初值问题。
消去变量t ,求x 与y 的关系:
x t V y H dy
dx
e -=-)(, 两边对t 求导得
e V y H dt dy
dy
x d =-)(22, 而 1)(2+=dy
dx V dt
dy w
,
故
????
?
?
?????===+-==)
6(0|)5(0|)
4(1
)()(0022
2y y w e
dy dx x V V dy dx y H dy x d 此二阶非线性微分方程,加上初值条件,也是导弹轨迹的数学模型。 三、 模型的求解
设导弹击中敌艇于),(H L B ,时间e
V L
T =。
目前有两种解法:解析方法、数值方法。 下面我们用数值方法求解
将初值问题(4)、(5)、(6)化为一阶微分方程组
?????
???
???==-+=
=0)0(,0)0(1
2p x y H p dy
dp p dy dx λ 其中w
e
V V =λ。
取变量y 的步长为n H
h =,于是得分点:
H nh y h y h y y n =====,,2,
,0210 ,
相应点上的x 的值和p 的值记为:
n x x x ,,,10 和 n p p p ,,,10 。
而有初值条件 0,000==p x 。
下介绍两种算法来进行数值处理: I.
Euler 方法——用差商代替微商
h
x x dy dx k
k -≈
+1, h
p p dy dp k
k -≈
+1,1,,1,0-=n k , 则有
???
?
??
??
?-===-+=-=-++)1,,1,0(,0,01
00211n k p x y H p h p p p h x x k k k k k
k
k λ 那么得到计算的迭代格式:
??
?
?
???==-++=+=++0,01002
11p x y H p h
p p p h x x k k k k k k k λ 于是 n x L ≈,e
n
V x T =
。
表3.1是取n=4时
此时 ),(5.11km L ≈ )(128.0h T ≈
表3.2是对于不同的n 值所对应的计算结果。显然,n 越大(即h 越小),结果就越精确。 表3.2
下面直接对初值问题(1)、(2)、(3)进行数值处理。
???
???
???
????==--+=
--+=)
9(0)0(,0)0()8()
(1)
7()
(122y x y H x t V V dt dy x t V y H V dt dx e w e w
取时间步长 τ=?t ,对应τk t k =时导弹轨迹上点的坐标为),(k k y x ,则Euler 迭代格式为:
???
???
?
??
????
==--++
=--++=++0,0)
(1)
(1002121y x y H x t V V y y x t V y H V x x k k k e w k k k k e k w k k ττ 当计算到H y H y k k ≥<+1,
时停止,于是
1
+≈k x L 或k x ,
e
V L
T ≈。
表3.3 1.0=τ
此时取 ,67495.223=≈x L 25194.0≈T 表3.4 05.0=τ
此时取 ,19480.296=≈x L 32439.0≈T
表3.5是对应不同的τ,用Euler法所得相应的步长推进次数n和计算结果。
表3.5
Euler 方法较为简单,但也较为粗糙,对形式较复杂的微分方程更易有较大的误差。这里我们介绍更精确的近似算法---改进的E uler 方法。
II. 改进的Euler 方法(预报—校正法)
对问题?????==0
0)(),(x t x t x f dt dx
Euler 迭代格式是
),(1k k k k t x f h x x +=+,
其中,t h ?= h k t k =,n k ,,1,0 =。 而改进的Euler 迭代格式则是
)],(),([2
1*
11+++++=k k k k k k t x f t x f h x x
)],([2
11*1*1+++++=k k k k t x f h x x , 其中),(*
1k k k k h x f h x x +=+。
对问题(7)、(8)、(9),写出相应的改进的Euler 迭代格式:
????
?
???
???
??
?????
?????
==--++
=--++
=--+++=--+++=++++++++++++0,0)(1)
(1])(1[21])(1[21002
*12*
12
*1*11*112*1
1*
1*11y x y H x t V V y y x t V y H V x x y H x t V V y y y x t V y H V x x x k k k e w k k k k e k w k k k k k e w k k k k k e k w k k k ττττ 当计算到H y H y k k ≥<+1,
时停止,于是
1
+≈k x L 或k x ,
e
V L T ≈。
表3.6 1.0=τ
此时取 ,07242.273=≈x L 30080.0≈T
表3.7 05.0=τ
此时取 ,24089.246=≈x L 26934.0≈T
表3.8是对应不同的τ,用改进的Euler 法所得相应的步长推进次数n 和计算结果。 表3.8
任务:如果当基地发射导弹的同时,敌艇立即由仪器发觉。假定敌艇为一高速快艇,它即刻以135km/h 的速度与导弹方向垂直的方向逃逸,问导弹何时何地击中敌艇?试建立数学模型并求解。