数学实验期末作业(缉私艇问题)

问题:缉私艇问题续。 (1)在本问题的求解过程中,假定了走私艇的逃跑方向是正北方向, 而初始缉私艇的位置在 x 轴正向。如果放宽这个假定,也就是当这个夹角是任意角度时,如 何建立方程进行求解。以下面数值为例进行求解:b=40,a=20,c=15,其中坐标系如课件上所 述,走私船的方向为 45°。 (2)如果有多个走私艇在一个位置上进行交易,而缉私艇向该方 向追赶。这些走私艇向不同方向四散逃走,问如何安排追赶路线?(假定缉私艇追上一个立 刻掉头追赶另外一个, 中间没有时间停留) 。 以下面数值为例进行求解: b=40,a1=20, a2=25, a3=30,c=15,三个角度分别为 45°,90°和-60°。

y

缉私艇 走私船

Q(c+atcosθ,atsinθ)

(x,y)

α θ

R(c+ycotθ,y)

0
(1)

C

x

缉私艇速度为 b,走私船速度为 a,初始距离为 c。设走私船的速度方向与缉私 艇初始速度方向呈θ角, 因为缉私艇速度方向始终指向走私船方向, 故两者大致轨迹 如图所示。根据 x 与 y 的速度关系可列出以下微分方程:

vx ?

dx ? b cos ? dt dy vy ? ? b sin ? dt

即:

dx b(c ? at cos ? ? x) ? dt (c ? at cos ? ? x)2 ? (at sin ? ? y)2 dy b(at sin ? ? y) ? dt (c ? at cos ? ? x)2 ? (at sin ? ? y)2
由 dsolve 列方程无法得到 x(t), y(t)的解析解, 通过变换消去 t 可得到以下微分函数关系:

y??[(c ? x) sin ? ? y cos ? ] ?

a 1 ? y?2 (sin ? ? cos ? y?) 2 b

再通过 dsolve 函数求解,仍无法得到 y(x)的解析解。 因此只能用数值解法求其解。 给定初值:a=20,b=40,c=15,θ=45°。 使用 MATLAB 求解可得: 模型的数值解 t x(t) (海里) y(t) (海里) x1(t) (海里) y1(t) (海里)

(其中 x(t),y(t)表示缉私艇的坐标,x1(t),y1(t)表示走私船的坐标。 ) 0 0.5000 1.0000 1.5000 2.0000 2.5000 0 19.0471 29.1232 36.0926 43.2513 50.1123 0 5.1827 14.1302 21.1865 28.2486 35.3109 15.0000 22.0711 29.1421 36.2132 43.2843 50.3553 0 7.0711 14.1421 21.2132 28.2843 35.3553

3.0000 3.5000 4.0000 4.5000 5.0000 5.5000 6.0000 6.5000 7.0000 7.5000 8.0000 8.5000 9.0000 9.5000 10.0000

57.2754 64.4952 71.4307 78.6886 85.7673 92.4395 99.6232 106.7177 113.8251 120.9647 127.5442 134.9007 142.2377 149.5407 156.2282

42.5237 49.1952 56.4860 63.5181 70.6534 77.5945 84.8025 91.6557 98.8215 105.9589 112.8577 119.1727 127.1158 134.1205 141.2136

57.4264 64.4975 71.5685 78.6396 85.7107 92.7817 99.8528 106.9239 113.9949 121.0660 128.1371 135.2082 142.2792 149.3503 156.4214

42.4264 49.4975 56.5685 63.6396 70.7107 77.7817 84.8528 91.9239 98.9949 106.0660 113.1371 120.2082 127.2792 134.3503 141.4214

轨迹图

由图和数据初步判断大约在 t=0.5 到 t=1 之间缉私艇追上走私船。将 t 的范围缩小到 7-8 之 间并提高精度使用 matlab 求出其数值解如下: 模型的数值解(0.5-0.7 精确) t(h) x(t)海里) y(t) (海里) x1(t) (海里) y1(t) (海里)

0.5210 0.5460 0.5710 0.5960 0.6075 0.6190 0.6305 0.6420 0.6456 0.6492 0.6528 0.6564

19.7581 20.5848 21.3843 22.1662 22.5245 22.8773 23.2227 23.5640 23.6705 23.7766 23.8821 23.9870

5.6313 6.1953 6.7948 7.4174 7.7064 8.0020 8.3058 8.6143 8.7109 8.8082 8.9060 9.0043

22.3681 22.7216 23.0752 23.4287 23.5914 23.7541 23.9168 24.0795 24.1303 24.1812 24.2321 24.2829

7.3681 7.7216 8.0752 8.4287 8.5914 8.7541 8.9168 9.0795 9.1303 9.1812 9.2321 9.2829

0.6600 0.6636 0.6672 0.6708 0.6723 0.6739 0.6755 0.6770 0.6786 0.6801 0.6817 0.6833 0.6846 0.6859 0.6872 0.6885 0.6898 0.6911 0.6924 0.6936 0.6948 0.6960 0.6972 0.6984 0.6996 0.7009 0.7022 0.7034 0.7046 0.7058 0.7070 0.7082 0.7097

24.0926 24.1968 24.2982 24.4001 24.4334 24.4858 24.5628 24.5915 24.5344 24.5048 24.5398 24.6026 24.6637 24.6843 24.6330 24.6076 24.6622 24.7105 24.7463 24.7847 24.8404 24.8650 24.8413 24.8304 24.8942 24.9144 24.8533 24.8171 24.8632 24.9064 24.9438 24.9804 25.0551

9.1022 9.2015 9.3033 9.4046 9.4578 9.5030 9.5264 9.5539 9.6178 9.6481 9.6202 9.6068 9.6461 9.6832 9.7094 9.7218 9.7216 9.7411 9.7879 9.8152 9.7821 9.7608 9.7874 9.8344 9.8766 9.9038 9.9018 9.8993 9.9163 9.9378 9.9650 9.9931 9.9847

24.3338 24.3846 24.4355 24.4863 24.5084 24.5304 24.5525 24.5745 24.5965 24.6186 24.6406 24.6627 24.6813 24.6999 24.7186 24.7372 24.7553 24.7733 24.7913 24.8094 24.8262 24.8430 24.8598 24.8766 24.8945 24.9123 24.9302 24.9481 24.9649 24.9817 24.9985 25.0153 25.0367

9.3338 9.3846 9.4355 9.4863 9.5084 9.5304 9.5525 9.5745 9.5965 9.6186 9.6406 9.6627 9.6813 9.6999 9.7186 9.7372 9.7553 9.7733 9.7913 9.8094 9.8262 9.8430 9.8598 9.8766 9.8945 9.9123 9.9302 9.9481 9.9649 9.9817 9.9985 10.0153 10.0367

可以判断出:大约在第 0.6755h 时,缉私艇追上走私船。 (在计算中通过改变函数 ode45 中 t 的取值区间来提高其结果的精度,在 0.6755h 时,x 已略微超过 x1,y 也十分接 近 y1,所以判定为在这个时刻缉私艇追上走私船。 )

y V2=25 V1=20 Vj=40 0 (15,0)

45° 60°

x

V3=30

(2) 在这个问题中,三艘走私船各自以恒定的速度、恒定的方向行进。从第一问中能够知 道缉私艇在追一艘走私船时,走私船的速度和方向都对时间有所影响。 因为三艘船都不停地在各自所在的直线上匀速运动, 所以初步猜测为: 在追第一艘船

时,选择一艘在最短时间内能够追上的船,追上后剩下的一艘最短时间内能够追上的船,最 后再追第三艘走私船,这样所用时间会最短。 简单的理论依据:三艘走私船在从一个点向四周匀速扩散开来,以不变的速度追赶, 要在最短时间内追到, 则要使他们的相对距离在每被追上一个时保持最小, 则每次追赶应该 从最好追的一个点开始追赶。 从以上思想出发,计算(标记第 i 艘走私船为 Zi,缉私艇为 J)从零点开始分别追上 Z1,Z2,Z3 的时间: t1 在第一问已求出 t1=0.6755h。 对于 t2,改变 a=25,θ=90°,通过数值法求出:

t(h)

x(t)海里)

y(t) (海里)

x1(t) (海里)

y1(t) (海里)

0.5049 0.5180 0.5312 0.5444 0.5532 0.5620 0.5708 0.5796 0.5855 0.5914

14.7250 14.8056 14.8662 14.9129 14.9410 14.9622 14.9748 14.9839 14.9968 15.0025

10.9901 11.5111 12.0346 12.5596 12.9108 13.2625 13.6143 13.9662 14.2020 14.4373

15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000

12.6218 12.9511 13.2804 13.6097 13.8298 14.0499 14.2700 14.4901 14.6369 14.7838

0.5972 0.6031 0.6050 0.6069 0.6087 0.6106 0.6125 0.6144 0.6163 0.6181 0.6196 0.6212 0.6227 0.6242 0.6258 0.6274 0.6290 0.6306 0.6320 0.6333 0.6347 0.6360

14.9934 14.9901 14.9964 14.9996 14.9969 14.9960 15.0336 15.0231 14.9243 14.8712 14.9197 14.9524 14.9628 14.9752 15.0409 15.0637 14.9954 14.9487 15.0015 15.0108 14.9512 14.9215

14.6707 14.9040 14.9796 15.0549 15.1293 15.2036 15.2970 15.3557 15.3489 15.3463 15.3868 15.4375 15.4990 15.5594 15.6198 15.6629 15.6806 15.7052 15.7503 15.7965 15.8358 15.8643

15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000

14.9306 15.0774 15.1244 15.1714 15.2184 15.2654 15.3124 15.3594 15.4064 15.4534 15.4911 15.5289 15.5666 15.6044 15.6445 15.6847 15.7249 15.7650 15.7989 15.8327 15.8666 15.9005

0.6372 0.6384 0.6395 0.6407 0.6418 0.6429 0.6439 0.6450 0.6460

14.9775 14.9980 14.9626 14.9478 15.0051 15.0284 14.9929 14.9722 15.0225

15.8855 15.9212 15.9697 16.0041 16.0198 16.0452 16.0769 16.1065 16.1269

15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000 15.0000

15.9298 15.9591 15.9885 16.0178 16.0448 16.0717 16.0986 16.1256 16.1505

可以判断出:大约在第 0.6125h 时,缉私艇追上走私船。 (在计算中通过改变函数 ode45 中 t 的取值区间来提高其结果的精度,在 0.6125h 时,x 刚略微超过 x1,y 也十分接 近 y1,所以判定为在这个时刻缉私艇追上走私船。 ) 即 t2=0.6125h 同理,对于 t3,改变 a=30,θ=-60°,通过数值法求出: t(h) x(t)海里) y(t) (海里) x1(t) (海里) y1(t) (海里)

0.5299 0.5799 0.6299

18.5227 19.8364 21.0848

8.9398 10.4510 12.0161

22.9492 23.6992 24.4492

13.7685 15.0675 16.3666

0.6799 0.7299 0.7799 0.8299 0.8630 0.8960 0.9290 0.9621 0.9865 1.0110 1.0355 1.0599 1.0745 1.0891 1.1037 1.1182 1.1285 1.1387 1.1490 1.1592 1.1628 1.1664

22.2931 23.4452 24.5339 25.5943 26.2976 26.9883 27.6642 28.3348 28.8351 29.3309 29.8195 30.3082 30.6036 30.8970 31.1869 31.4776 31.7075 31.9154 32.0760 32.2683 32.3931 32.4546

13.6119 15.2495 16.9302 18.6279 19.7466 20.8731 22.0085 23.1470 23.9881 24.8318 25.6796 26.5272 27.0301 27.5341 28.0400 28.5455 28.8897 29.2445 29.6186 29.9716 30.0550 30.1842

25.1992 25.9492 26.6992 27.4492 27.9447 28.4402 28.9356 29.4311 29.7980 30.1650 30.5319 30.8989 31.1176 31.3362 31.5549 31.7736 31.9273 32.0811 32.2348 32.3886 32.4421 32.4956

17.6656 18.9646 20.2637 21.5627 22.4209 23.2790 24.1372 24.9953 25.6309 26.2665 26.9021 27.5377 27.9164 28.2952 28.6740 29.0527 29.3190 29.5853 29.8516 30.1179 30.2105 30.3032

1.1699 1.1735 1.1771 1.1806 1.1842 1.1878

32.4091 32.4185 32.6081 32.7070 32.6445 32.6260

30.3817 30.5014 30.4929 30.5615 30.7166 30.8323

32.5491 32.6026 32.6561 32.7095 32.7630 32.8165

30.3959 30.4885 30.5812 30.6738 30.7665 30.8592

可以判断出:大约在第 1.1699h 时,缉私艇追上走私船。 (在计算中通过改变函数 ode45 中 t 的取值区间来提高其结果的精度,在 1.1699h 时,y 刚略微超过 y1,x 也十分接 近 x1 且有略微下降,所以判定为在这个时刻缉私艇追上走私船。 ) 即 t3=1.1699h 因为 t1=0.6755h,t2=0.6125h,可判断:t2<t1<t3 所以首先追赶 Z2 用时最短 T1=0.6125h。 由此,可以知道:走私船与缉私艇速度方向夹角越小,追赶时间越长;走私船速度越 大,追赶时间越长。 此 时 , 已 追 赶 上 Z2 , 各 点 位 置 已 发 生 变 化 , 在 原 坐 标 系 中 , 缉 私 艇 坐 标

J(15,15.3125),Z1(23.6621,8.6621),Z3(24.1875,-15.9132),如图所示:

y x1 Vj=40 V1=20

θ 1

45°

0 x2

(15,0)

60°

x

θ 3

V3=30

y

缉私艇 J Z1

θ1

0
以缉私艇为原点建立坐标系如下图:

x1

x

因为 v1 与 v2 夹角为 45°,v2 与 v3 夹角为 60+90=150 度,所以当缉私艇追 上 Z2 后调转方向时, (若指向 Z1, 与其方向夹角为θ 1, 距离为 x1; 若指向 Z3, 与其夹角为θ 3,距离为 x3),很容易判断:x3>x1,θ 1>θ 3。
前面已推出:走私船与缉私艇速度方向夹角越小,追赶时间越长;走私船速度越大,追 赶时间越长。因为 v3>v1,θ1>θ3,x3>x1,所以要在最短时间内追上第二个目标的话,应

选择追赶 Z1。通过坐标 J(15,15.3125)与 Z1(23.6621,8.6621)容易求出:

x1 ? (15 ? 23.6621) 2 ? (15.3125 ? 8.6621) 2 ? 10.9206

海里

通过向量法求出

? 1 ? 180 ? 45 ? arctan(

8.6621 ) ? 82.52o 6.6504 。

对于追赶 Z1 所用时间 T2, 改变 a=20, θ =82.52°, c=10.9206 通过数值法求出:
t(h) x(t)海里) y(t) (海里) x1(t) (海里) y1(t) (海里)

0.2848 0.2973 0.3097 0.3222 0.3303 0.3383 0.3464 0.3544 0.3596 0.3648 0.3700 0.3752 0.3768 0.3784 0.3800

10.2891 10.5943 10.8721 11.1228 11.2713 11.4065 11.5262 11.6327 11.6988 11.7566 11.8017 11.8429 11.8570 11.8702 11.8824

3.9741 4.3692 4.7837 5.2152 5.5012 5.7937 6.0926 6.3964 6.5940 6.7936 6.9952 7.1978 7.2612 7.3248 7.3887

11.6621 11.6945 11.7270 11.7595 11.7805 11.8014 11.8224 11.8434 11.8569 11.8704 11.8839 11.8974 11.9016 11.9058 11.9100

5.6472 5.8946 6.1420 6.3894 6.5491 6.7087 6.8683 7.0280 7.1308 7.2336 7.3365 7.4393 7.4715 7.5037 7.5359

0.3817 0.3833 0.3849 0.3865 0.3882 0.3895 0.3909 0.3923 0.3937 0.3949 0.3962 0.3974 0.3987 0.3999 0.4012 0.4024 0.4037 0.4050 0.4063 0.4076 0.4089

11.8938 11.8945 11.9048 11.9343 11.9436 11.9149 11.8982 11.9077 11.9269 11.9254 11.9359 11.9669 11.9692 11.9092 11.8741 11.8981 11.9410 11.9849 11.9877 11.9195 11.8839

7.4526 7.4990 7.5736 7.6848 7.7254 7.6627 7.6275 7.6527 7.7127 7.7536 7.8096 7.8824 7.9126 7.8926 7.8879 7.9019 7.9367 7.9899 8.0332 8.0548 8.0680

11.9143 11.9185 11.9227 11.9270 11.9312 11.9348 11.9384 11.9420 11.9456 11.9489 11.9521 11.9554 11.9587 11.9619 11.9652 11.9684 11.9717 11.9751 11.9785 11.9819 11.9853

7.5681 7.6003 7.6325 7.6648 7.6970 7.7245 7.7519 7.7794 7.8069 7.8317 7.8565 7.8813 7.9061 7.9309 7.9557 7.9805 8.0053 8.0312 8.0572 8.0831 8.1091

可以判断出:大约在第 0.3865h 时,缉私艇追上走私船 Z1。 (在计算中通过改变函数 ode45 中 t 的取值区间来提高其结果的精度,在 0.3865h 时,x 刚略微超过 x1,y 也十分接 近 y1,所以判定为在这个时刻缉私艇追上走私船。 ) 即 T1=0.6125hT2=0.3865h。

此时,缉私艇已追上 Z1,所有点位置已改变,此时在最初的坐标系中 J(29.1280,

y

Vj=40
45°

0

(15,0)

60°

x

X3

θ 3
14.1280),Z3(29.9850,-25.9548),最后,缉私艇开始追赶 Z3。

V3=30

通过坐标 J(29.1280,14.1280),Z3(29.9850,-25.9548)易求得:

X 3 ? (29.1280 ? 29.9850) 2 ? (14.1280 ? 25.9548) 2 ? 11.8578

海里。

通过向量法可求得

? 3 ? 180 ? 60 ? 45 ? 45 ? arctan

0.857 ? 28.78o 40.0828 。

以缉私艇为原点建立坐标系如下图:

y

缉私艇 J Z3
θ1

0

X3

x

对于追赶 Z3 所用时间 T3, 改变 a=30, θ =28.78°, c=11.8578 通过数值法求出:
t(h) x(t)海里) y(t) (海里) x1(t) (海里) y1(t) (海里)

0.2916 0.3314 0.3712 0.4159 0.4607 0.5055 0.5503 0.5964 0.6426 0.6887 0.7349 0.7788 0.8227 0.8667 0.9106 0.9315 0.9525 0.9734

11.4796 12.9984 14.5036 16.1815 17.8432 19.4892 21.1215 22.7932 24.4527 26.0999 27.7392 29.3004 30.8530 32.3917 33.9304 34.6682 35.4048 36.1399

1.8104 2.2881 2.8072 3.4339 4.1025 4.8092 5.5470 6.3308 7.1402 7.9747 8.8245 9.6319 10.4550 11.3021 12.1489 12.5450 12.9433 13.3443

19.5242 20.5708 21.6174 22.7948 23.9722 25.1496 26.3270 27.5406 28.7541 29.9677 31.1813 32.3362 33.4911 34.6460 35.8009 36.3514 36.9018 37.4523

4.2111 4.7861 5.3610 6.0077 6.6544 7.3012 7.9479 8.6145 9.2812 9.9478 10.6144 11.2488 11.8832 12.5176 13.1520 13.4543 13.7567 14.0591

0.9943 1.0153 1.0362 1.0571 1.0781 1.0830 1.0879 1.0928 1.0977 1.1025 1.1074 1.1123 1.1172 1.1203 1.1233 1.1264 1.1294

36.8746 37.6185 38.3542 39.0716 39.7996 39.9760 40.1507 40.3227 40.4946 40.6881 40.8695 41.0111 41.1525 41.2918 41.3823 41.3715 41.3644

13.7461 14.1331 14.5338 14.9635 15.3732 15.4589 15.5479 15.6415 15.7353 15.8326 15.9260 16.0077 16.0914 16.1910 16.2098 16.0926 16.0351

38.0027 38.5532 39.1036 39.6541 40.2046 40.3333 40.4621 40.5909 40.7197 40.8485 40.9772 41.1060 41.2348 41.3149 41.3950 41.4751 41.5552

14.3614 14.6638 14.9661 15.2685 15.5709 15.6416 15.7124 15.7831 15.8538 15.9246 15.9953 16.0661 16.1368 16.1808 16.2248 16.2688 16.3128

可以判断出:大约在第 1.1203h 时,缉私艇追上走私船 Z3。 (在计算中通过改变函数 ode45 中 t 的取值区间来提高其结果的精度,在 1.1203h 时,y 刚略微超过 y1,x 也十分接 近 x1,所以判定为在这个时刻缉私艇追上走私船。 )

即 T1=0.6125hT2=0.3865hT3=1.1203h T=T1+T2+T3=2.1193h 综上所述,最佳追赶顺序:Z2???Z1???Z3,所用总时间为 T=2.1193h。 附: 代码:
function dx=jisi(t,x,a,b,c,e) s=sqrt((c+a*t*cos(e)-x(1))^2+(a*t*sin(e)-x(2))^2); dx=[b*(c+a*t*cos(e)-x(1))/s;b*(a*t*sin(e)-x(2))/s];

x0=[0 0]; a=20; b=40; c=15; e=pi/3; [t,x]=ode45(@jisi,[0 2],x0,[],a,b,c,e); x1=c+a*t*cos(e); y1=a*t*sin(e); [t,x,x1,y1] plot(x(:,1),x(:,2),'r*',x1,y1,'g*'),grid xlabel('x','FontSize',16), ylabel('y','FontSize',16) axis([0 100 0 100]);

x0=[0 0]; a=20; b=40; c=15; e=pi/4; opt=odeset('RelTol',1e-6,'AbsTol',1e-9); [t,x]=ode45(@jisi,[0 1],x0,opt,a,b,c,e); x1=c+a*t*cos(e); y1=a*t*sin(e); [t,x,x1,y1]; plot(x(:,1),x(:,2),'r',x1,y1,'g'),grid

xlabel('x','FontSize',16), ylabel('y','FontSize',16) axis([0 200 0 200]);(提高精度)

y=dsolve('D2y=(sqrt(1+(Dy)^2)*(sin(e)-cos(e)*Dy)^2)*a/b/((c-x)*sin(e) +y*cos(e))','y(0)=0','Dy(0)=0','x')(求解y(x)的微分方程,无法解出。)

[x,y]=dsolve('Dx=b*(c+a*t*cos(e)-x)/sqrt((c+a*t*cos(e)-x(1))^2+(a*t*s in(e)-x(2))^2)','Dy=b*(a*t*sin(e)-y)/sqrt((c+a*t*cos(e)-x(1))^2+(a*t* sin(e)-x(2))^2)','Dy(0)=0','Dx(0)=b','t')(求解y(t),x(t)的微分方程,无法 解出。)


相关文档

数学实验期末作业
数学实验期末作业新
《Matlab与数学实验》期末作业
数学建模综合实验缉私艇走私艇
西安交大 数学实验七 用matlab计算 缉私艇追走私船问题
2-数学实验举例:缉私艇追击走私船
数学实验-期末作业
2014工程数学实验期末大作业
工程数学实验期末作业
工程数学实验期末大作业
电脑版