- 在线时间
- 791 小时
- 最后登录
- 2022-11-28
- 注册时间
- 2017-6-12
- 听众数
- 15
- 收听数
- 0
- 能力
- 120 分
- 体力
- 36041 点
- 威望
- 11 点
- 阅读权限
- 255
- 积分
- 13753
- 相册
- 0
- 日志
- 0
- 记录
- 1
- 帖子
- 616
- 主题
- 542
- 精华
- 10
- 分享
- 0
- 好友
- 225
TA的每日心情 | 开心 2020-11-14 17:15 |
---|
签到天数: 74 天 [LV.6]常住居民II
 群组: 2019美赛冲刺课程 群组: 站长地区赛培训 群组: 2019考研数学 桃子老师 群组: 2018教师培训(呼伦贝 群组: 2019考研数学 站长系列 |
问题描述:飞机在飞行过程中,能够收到地面上各个监控台发来的关于飞机当前位置的 信息,根据这些信息可以比较精确地确定飞机的位置。如图3所示,VOR 是高频多向导航设备的英文缩写,它能够得到飞机与该设备连线的角度信息;DME 是距离测量装 置的英文缩写,它能够得到飞机与该设备的举例信息。图中飞机接收到来自 3 个 VOR 给出的角度和 1 个 DME 给出的距离(括号内是测量误差限),并已知这 4 种设备的 x, y 坐标(假设飞机和这些设备在同一平面上)。如何根据这些信息精确地确定当前飞机的 位置?
6 _. o; C. q( y8 b* G8 m8 f7 d7 m7 G; g
![]()
& @8 d6 W. }4 T0 s. k: H
" _3 w8 o; p9 ~
2 J( h( \0 {6 q b# I (1)问题分析 0 Z; g6 O: J4 a; R* u/ p- H
$ Q }" z5 L. v3 L! B7 n9 P
记 4 种设备 VOR1、VOR2、VOR3、DME 的坐标为 (以 km 为单位),i=1,2,3,4 ;VOR1、VOR2、VOR3 测量得到的角度为 (从图中可以看出,按照航空飞行管理的惯例,该角度是从北开始,沿顺时针方向的角度,取值在 之间),角度的误差限为 ;DME 测量得到的距离为 (单位:km),距离的误差限为 4 σ。设飞机当前位置的坐标为 ,则问题就是在表 9 的已知数据下计算 。7 p1 c m0 r; g& h9 b
. q) J/ N( `5 S1 t* z
: S. e/ j# U/ y w- {4 n. z![]()
2 F( B5 L3 `6 q(2)模型 1 及求解
0 Q- W6 R# |3 S( R; l9 U/ g6 ^; t, i ^: ]1 d( i g
图中角度 是点 和点 的连线与 y 轴的夹角(以 y 轴正向为基准,顺时针方向夹角为正,而不考虑逆时针方向的夹角),于是角度 的正切 ( 1 )
( P% T' @6 \1 E! h8 m& y/ _
0 b0 y( D5 u1 I! ^( [对 DME 测量得到的距离,显然有 ( 2 )8 h, B. w9 `$ v5 D4 p% D
& {4 r( X4 ^) v- Y; _8 g
直接利用上面得到的 4 个等式确定飞机的坐标 y x, ,这是一个求解超定(非线性) 方程组的问题,在最小二乘准则下使计算值与测量值的误差平方和最小(越接近 0 越 好),则需要求解 ( v! y# w; q- Q7 K3 d; T( Z
; R7 h+ y6 a1 T1 l
( 3 )
0 d2 S8 v! T1 z' K: m, b式(3)是一个非线性(无约束)最小二乘拟合问题。很容易写出其 LINGO 程序 如下:/ c) a8 f) ~0 i/ ~7 q& S. r
8 L9 o! [ @+ p8 m, n# D, }& DMODEL:
* @) j* n, ?& p* G+ e" qTITLE 飞机定位模型1;
& w/ w4 b7 L. b" FSETS: # I t7 g' Z$ q A, T( m3 K0 z+ `! l
VOR/1..3/:x0,y0,cita,sigma; $ h2 w q8 h9 Q6 K0 s1 |
ENDSETS
! `; R7 D8 I3 hDATA: 4 ?; r. f4 [- O+ a6 u ^: S4 M
x0, y0, cita, sigma = ; @1 [0 N* i' [
746 1393 161.2 0.8 " u( |, r, a$ N+ M
629 375 45.1 0.6
7 p u) _$ u. \9 P1 c' s1571 259 309.0 1.3; 6 J2 q2 U( k: o5 M( s; B v
x4 y4 d4 sigma4=155,987,864.3,2.0; & N# R* j9 e7 E
ENDDATA & |, U/ X* ?/ u2 Z/ e6 u
calc: 7 E) k1 S* L! n4 ^; \
@for(VOR:cita=cita*3.14159/180;sigma=sigma*3.14159/180); 5 R6 {9 I3 x. s. Y% V s
endcalc
0 d6 A2 t/ m+ u- Pmin=@sum(VOR:@sqr((x-x0)/(y-y0)-@tan(cita)))+@sqr(d4-@sqrt(@sqr(x -x4)+@sqr(y-y4))); + b6 `- Z7 `- A2 z0 m9 Q# D- {
END% Z( N# B& u' d( A0 `( {
上述程序必须使用全局求解器进行求解,否则求得的是一个局部最优解。用 “LINGO|OPTIONS”菜单命令启动“Global Solver”选项卡上的“Use Global Solver”选项,然后求解,可以得到全局最优解 x=1019.306 ,y= 987.2909 ,对应的目标函
/ {7 ^6 ^; d5 E+ @数值为 0.4729562,这里的解受π 的取值影响很大。
( s4 c9 n( \$ |9 r# p; c; W* z0 Y, \/ V# G/ z0 {2 a! O
(3)模型 2 及求解 `8 H Y) D0 P
% D, w8 U# i* g, k9 l
注意到这个问题中角度和距离的单位是不一致的(角度为弧度,距离为公里),因 此将这 4 个误差平方和同等对待(相加)不是很合适。并且,4 种设备测量的精度(误差限)不同,而上面的方法根本没有考虑测量误差问题。如何利用测量设备的精度信息? 这就需要看对例中给出的设备精度如何理解。 一种可能的理解是:设备的测量误差是均匀分布的。以 VOR1 为例,目前测得的角度为 ,测量精度为 ,所以实际的角度应该位于区间 内。对其它设备也可以类似理解。由于 很少,即测量精度很高,所以在相应区间内正切函数 tan 的单调性成立。于是可以得到一组不等式:: U) c9 T0 ]* U& ]% `" z# w3 Z! P E
* K- a% O' b9 |3 z. A! V
8 M9 [$ S7 v* {% @3 G
( J* p; Q" |3 x& {8 T
也就是说,飞机坐标应该位于上述不等式组成的区域内。 由于这里假设设备的测量误差是均匀分布的,所以飞机坐标在这个区域内的每个 点上的可能性应该也是一样的,我们最好应该给出这个区域的 x和 y 坐标的最大值和最小值。于是我们可以分别以 min x , max x , min y, max y为目标,以上面的区域限制条件为约束,求出x 和 y 坐标的最大值和最小值。
$ r" l- p9 f% J- N+ n* P0 G5 I 以 min x 为例,相应的 LINGO 程序为: 4 |9 z+ e7 e) s
% _" N: f, i5 y, v: ~( i+ `, u
MODEL: 2 y5 A9 P1 K, s _' B( ~' t
TITLE 飞机定位模型2;
$ k0 p2 f$ {7 u' K0 C v$ v2 rSETS: VOR/1..3/:x0,y0,cita,sigma; : b( [2 ?& H0 a) R& s; G! n
ENDSETS 1 G% h8 ~, T; l, R( N# p
INIT:
2 |, X+ o) E- t1 p/ N0 V4 z0 [x=1000; y=900;
+ w; b! Q+ B5 k6 AENDINIT 5 {5 N& r' _* N
DATA: 9 N& ~1 q* I/ x% z9 M; |, y$ s5 {
x0, y0, cita, sigma = 0 L0 W5 a1 w: U
746 1393 161.2 0.8 + o, y* |' h7 u3 \) W
629 375 45.1 0.6 5 D! p Y1 H7 |) w( T2 k# Y1 a% ?
1571 259 309.0 1.3; ' B! |& |4 J( c" ^! _2 }, ]/ E
x4 y4 d4 sigma4=155,987,864.3,2.0;
) K. P: b: g+ t' \ENDDATA ) g" u/ x2 |4 S5 \8 u. ]* B
calc:
) f% w" h! O2 X9 E" q' C2 c@for(VOR:cita=cita*3.14159/180;sigma=sigma*3.14159/180); 6 Y& i' X2 V( s/ D4 m, q' V' T- ~
endcalc " s+ `0 V6 L" ~% R5 E" c
min=x;
7 t/ @) D5 i) Z1 J@for(VOR:(x-x0)/(y-y0)>@tan(cita-sigma)); ! |: I7 }" B o( C/ L L
@for(VOR:(x-x0)/(y-y0)<@tan(cita+sigma)); 6 V( u3 `2 m5 G/ o. e f
d4-sigma4 <((x-x4)^2+(y-y4)^2)^.5 ;
* [9 r1 `* t+ h: jd4+sigma4 >((x-x4)^2+(y-y4)^2)^.5 ;
* H' R, b) B p! q! j7 G3 @# L5 aEND
0 M; t1 b6 D& |- s' I1 ^& @8 Y0 E注意:用 LINGO9 求解非线性问题,必须对决策变量进行初始化,否则 LINGO 可 能找不到可行解。决策变量的初值也有范围限制,取的不合适也可能找不到可行解。 求得的 x的最小值为 974. 8433。类似地(只需要换目标函数就可以了),可得 到 x的最大值为 982.2005, y 的最小值为 717.1614, y 的最大值为 733.1582。 因此,最后得到的解是一个比较大的矩形区域,大致为 .
. ]) U5 v o% m5 {: I$ R/ ?9 Z, }4 ?2 q, y
(4)模型 3 及求解
! k! B. Q2 D* @3 h$ t" u) U$ B
模型 2 得到的只是一个很大的矩形区域,仍不能令人满意。实际上,模型 2 假设 设备的测量误差是均匀分布的,这是很不合理的。一般来说,在多次测量中,应该假设设备的测量误差是正态分布的,而且均值为 0。本例中给出的精度 可以认为是测量
. v/ a- r' L) H% F" m& j6 R误差的标准差。 : H% ]- g3 v4 }$ U" u7 z
/ Z, `7 ^; q( V+ c* n( L4 \( D5 p( D
在这种理解下,用各自的误差限 对测量误差进行无量纲化(也可以看成是一种加权法)处理是合理的,即求解如下的无约束优化问题更合理。 * l3 J) o* Q3 F: D- e" H; e5 A5 Y
4 B: p5 z4 D1 u9 @1 N7 N
& O# t% E1 V; x7 r& K+ ]$ J
+ G+ b8 g1 y& r9 S$ }4 F 由于目标函数是平方和的形式,因此这是一个非线性最小二乘拟合问题。相应的 LINGO 程序为: ' _+ n* p# m1 w8 } i# j
- T2 }4 N( W9 @+ i5 K: X
MODEL:
) }( G3 m7 r7 H- j8 ITITLE 飞机定位模型3; & ]0 d8 z/ E H3 H
SETS:
" p* P6 k- [! W; G; C6 J+ f% _5 UVOR/1..3/:x0,y0,cita,sigma,alpha; ( c* L1 e0 j2 W. [+ K
ENDSETS 9 ?" K4 I3 X* Y1 U& {1 E3 r$ E
INIT: # T5 H4 d2 ~+ t d2 {8 ~
x=1000; y=900; ) ~) `. W2 M+ z% N
ENDINIT : ?. G. G, n: x, R9 S
DATA: ' i. Z2 g. i/ \+ e4 h) _9 y
x0, y0, cita, sigma =
$ Q) a3 f! t+ y* q2 t746 1393 161.2 0.8
; V0 G1 e+ `* c$ s- N3 X7 [- {629 375 45.1 0.6
2 ^3 O" o# m! g" N; M1571 259 309.0 1.3; % ]% D' d( p8 W: h8 H* ~
x4 y4 d4 sigma4=155,987,864.3,2.0; ' d0 ]- A1 a% B3 p8 {( k
ENDDATA 4 W% g& M9 E, k& q l1 u
calc: - [$ d! l/ _* c; N2 G
@for(VOR:cita=cita*3.14159/180;sigma=sigma*3.14159/180); $ L& N8 j" O& }
endcalc + Z! `. H# ?0 o" B; q
min=@sum(VOR:((alpha-cita)/sigma)^2)+((d4-((x-x4)^2+(y-y4)^2)^.5 )/ sigma4 )^2;
/ o/ } e C5 P@for(VOR: @tan(alpha)=(x-x0)/(y-y0) ); 9 e* g2 n C8 v, ]. a: ^, z
END' V& ]; ^% ~3 l- V+ R+ k
启动 LINGO 的全局最优求解程序求解,得到全局最优解 x=978.3071,y= 723.9841,对应的目标函数的值为 0.668035。 这里得到的误差比模型 1 的大,这是因为模型 1 中使用的是绝对误差,而这里使用的是相对于精度 的误差。对角度而言,分母 很少,所以相对误差比绝对误差大,这是可以理解的。
$ ]1 z2 n( l" y; H4 V* h! A————————————————# J/ f0 ~, n2 {* c8 `" x
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。! F- h# Y% P9 p D+ C2 ]
原文链接:https://blog.csdn.net/qq_29831163/java/article/details/893890443 c1 K7 _; {* Q8 V/ Y; W( d$ P2 C
8 m% V% G7 m, i5 v
' S3 L3 |8 @ `
/ u1 R* y8 u4 P }, _! c. z$ | |
zan
|