- 在线时间
- 791 小时
- 最后登录
- 2022-11-28
- 注册时间
- 2017-6-12
- 听众数
- 15
- 收听数
- 0
- 能力
- 120 分
- 体力
- 35382 点
- 威望
- 11 点
- 阅读权限
- 255
- 积分
- 13558
- 相册
- 0
- 日志
- 0
- 记录
- 1
- 帖子
- 621
- 主题
- 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 坐标(假设飞机和这些设备在同一平面上)。如何根据这些信息精确地确定当前飞机的 位置?
1 T( u/ p; {" u' @6 V( K
2 `, M& k9 r9 p- i: s( d( j
. R3 J" S$ [/ y1 U, D; x0 n0 |# S3 g% c5 o$ [
& l4 h( i+ o, F- V8 H1 B$ y: i3 z( X
(1)问题分析
. x! T2 M, L) x" G0 O. G% Q/ F, s" `( f8 f f. E
记 4 种设备 VOR1、VOR2、VOR3、DME 的坐标为 (以 km 为单位),i=1,2,3,4 ;VOR1、VOR2、VOR3 测量得到的角度为 (从图中可以看出,按照航空飞行管理的惯例,该角度是从北开始,沿顺时针方向的角度,取值在 之间),角度的误差限为;DME 测量得到的距离为 (单位:km),距离的误差限为 4 σ。设飞机当前位置的坐标为 ,则问题就是在表 9 的已知数据下计算 。- h" F. G( ]$ S( ~4 W
/ ?& D* W: N* R; m O+ L/ W4 j' k% L- z3 r7 D: ]
/ Y& @- k5 {/ o& |9 h! s
(2)模型 1 及求解 3 z% F2 n- X8 d4 q% {& x( x
% x" ~1 Z& @$ k4 @+ j
图中角度 是点 和点 的连线与 y 轴的夹角(以 y 轴正向为基准,顺时针方向夹角为正,而不考虑逆时针方向的夹角),于是角度 的正切 ( 1 )! ?) e* [" q- I0 j
1 l# Z! E* b5 j对 DME 测量得到的距离,显然有 ( 2 )
2 T9 |- ]5 R. C# n% }3 Q( \. n3 [0 x+ M6 x' O4 x
直接利用上面得到的 4 个等式确定飞机的坐标 y x, ,这是一个求解超定(非线性) 方程组的问题,在最小二乘准则下使计算值与测量值的误差平方和最小(越接近 0 越 好),则需要求解
% k6 K5 b: o( ~$ B/ s; _* D3 a- @8 p/ ?, T' T
( 3 )
5 {) A; |2 P- @& P/ _, `式(3)是一个非线性(无约束)最小二乘拟合问题。很容易写出其 LINGO 程序 如下:, @2 A$ V7 M" b+ i, ]" k
- l2 k% n" [% ^- J' UMODEL:
! [- |/ b" @, dTITLE 飞机定位模型1; ; M5 ?; O' o0 N# G1 u% e! l1 l
SETS: - ?0 `0 H; v0 Q7 p( B
VOR/1..3/:x0,y0,cita,sigma; 0 V! s" e; ^8 K
ENDSETS 2 x) x* L. y& M; c
DATA: 3 V- D: z" Y2 ^* ^, J
x0, y0, cita, sigma =
9 L; f) J3 Z& f3 e3 @746 1393 161.2 0.8
9 w5 B+ ~. l* o' [629 375 45.1 0.6 & u$ F, \- i) \* R
1571 259 309.0 1.3; 4 M; L3 [2 G1 |( `4 ]4 t5 C6 {, Y
x4 y4 d4 sigma4=155,987,864.3,2.0;
+ T A L. g4 m: c, vENDDATA 0 b) f9 ?- C* N
calc:
4 r6 O/ R$ S- A@for(VOR:cita=cita*3.14159/180;sigma=sigma*3.14159/180);
# {$ Y) @4 p' O- Nendcalc . |3 i" ]8 |+ \) n' S0 S
min=@sum(VOR:@sqr((x-x0)/(y-y0)-@tan(cita)))+@sqr(d4-@sqrt(@sqr(x -x4)+@sqr(y-y4)));
8 Z/ f% {, V% B0 l- ~( P! m% sEND( { U1 o" @6 H' v1 A y0 {
上述程序必须使用全局求解器进行求解,否则求得的是一个局部最优解。用 “LINGO|OPTIONS”菜单命令启动“Global Solver”选项卡上的“Use Global Solver”选项,然后求解,可以得到全局最优解 x=1019.306 ,y= 987.2909 ,对应的目标函4 H/ K& M" k3 }! p: h
数值为 0.4729562,这里的解受π 的取值影响很大。
4 u" y. r2 [$ J0 ]) ^+ `3 Y8 \0 h3 D. ?
(3)模型 2 及求解, I( {& o ], J/ S* X. e- \0 v8 z
( ~$ I8 V2 P4 |1 t" ]' ^. {: q
注意到这个问题中角度和距离的单位是不一致的(角度为弧度,距离为公里),因 此将这 4 个误差平方和同等对待(相加)不是很合适。并且,4 种设备测量的精度(误差限)不同,而上面的方法根本没有考虑测量误差问题。如何利用测量设备的精度信息? 这就需要看对例中给出的设备精度如何理解。 一种可能的理解是:设备的测量误差是均匀分布的。以 VOR1 为例,目前测得的角度为 ,测量精度为 ,所以实际的角度应该位于区间 内。对其它设备也可以类似理解。由于 很少,即测量精度很高,所以在相应区间内正切函数 tan 的单调性成立。于是可以得到一组不等式:
% x! T8 H" ~7 A% M7 t* e, n9 r U/ z+ v G
+ I# W; ~* k, Q2 q/ r. j% d$ `
7 h9 f) ]$ |% Z4 a! y7 B7 x 也就是说,飞机坐标应该位于上述不等式组成的区域内。 由于这里假设设备的测量误差是均匀分布的,所以飞机坐标在这个区域内的每个 点上的可能性应该也是一样的,我们最好应该给出这个区域的 x和 y 坐标的最大值和最小值。于是我们可以分别以 min x , max x , min y, max y为目标,以上面的区域限制条件为约束,求出x 和 y 坐标的最大值和最小值。
: f8 t, E1 `- o7 C 以 min x 为例,相应的 LINGO 程序为: ; a3 ^: I* U2 M' J1 ^( s. c
* P, j! F1 `- ~6 ?5 H4 |2 l8 q. v
MODEL:
3 w! E0 M/ P0 H+ M7 G( d! \; lTITLE 飞机定位模型2;
, B% B, N! V6 ASETS: VOR/1..3/:x0,y0,cita,sigma;
0 L% G9 e7 C$ L% [. u7 ?ENDSETS 1 Q, {6 ^! p; H
INIT: 3 B9 ]0 k6 t/ W# H" K, I" Q q
x=1000; y=900; 7 k* G) b: C4 m- x
ENDINIT
3 `, w1 C7 x' _4 A% r+ [; b7 q4 `( WDATA:
! M% R( s8 T& C6 Z jx0, y0, cita, sigma = * ~$ X3 U8 [8 g( \( m0 A9 ]9 v
746 1393 161.2 0.8
3 {8 [1 ~, h( C7 `629 375 45.1 0.6 5 d- m+ w+ a' b s/ o6 k
1571 259 309.0 1.3;
; q: k! w# E% `x4 y4 d4 sigma4=155,987,864.3,2.0; 4 ~/ Q4 \. \5 A2 z
ENDDATA
5 v I2 q. [ @calc:
x6 ^2 I9 J1 g- ~@for(VOR:cita=cita*3.14159/180;sigma=sigma*3.14159/180); 9 B5 b: Z3 `. w$ D* E4 F
endcalc
, l+ Y) I, W; D9 `$ t! k! v, qmin=x;
6 ?6 @, `4 }4 C) n@for(VOR:(x-x0)/(y-y0)>@tan(cita-sigma)); + \5 e A1 U3 k8 D, I- a
@for(VOR:(x-x0)/(y-y0)<@tan(cita+sigma));
& g. u) \4 Q! H7 z8 g" I" v7 t# g- Nd4-sigma4 <((x-x4)^2+(y-y4)^2)^.5 ; / M% S2 N% \) t3 k, m- }" q
d4+sigma4 >((x-x4)^2+(y-y4)^2)^.5 ;
d; l) E% w) v+ p/ v0 JEND 1 E$ P3 J8 S* X/ _) o( i
注意:用 LINGO9 求解非线性问题,必须对决策变量进行初始化,否则 LINGO 可 能找不到可行解。决策变量的初值也有范围限制,取的不合适也可能找不到可行解。 求得的 x的最小值为 974. 8433。类似地(只需要换目标函数就可以了),可得 到 x的最大值为 982.2005, y 的最小值为 717.1614, y 的最大值为 733.1582。 因此,最后得到的解是一个比较大的矩形区域,大致为 . # `9 t$ \& O2 |) L" I7 ]# O
: c0 n+ n1 ~8 Y/ x: D" t (4)模型 3 及求解
8 g/ g2 Q1 v' B5 H/ o3 x
5 o3 G, R6 ?5 F- Z. m+ O# F模型 2 得到的只是一个很大的矩形区域,仍不能令人满意。实际上,模型 2 假设 设备的测量误差是均匀分布的,这是很不合理的。一般来说,在多次测量中,应该假设设备的测量误差是正态分布的,而且均值为 0。本例中给出的精度 可以认为是测量
% h D/ l7 \1 d% A% G3 a4 J误差的标准差。
6 |1 }( o" `& R0 k
& S4 [/ h% ]/ s$ p! v在这种理解下,用各自的误差限 对测量误差进行无量纲化(也可以看成是一种加权法)处理是合理的,即求解如下的无约束优化问题更合理。 1 f- t% H# j4 c. x# {/ h. S- Q7 i2 @
" r6 [% R f1 c. [) \% K# q1 g$ |: \1 ^! O( e- R7 a8 ^- O
2 j6 d. m5 P1 `2 K: P# B' s1 N* ` 由于目标函数是平方和的形式,因此这是一个非线性最小二乘拟合问题。相应的 LINGO 程序为: ! v+ O( H7 h3 n! J5 `( z$ F4 h# f# J/ N
0 O6 R) T! x% K/ W. mMODEL: r1 [: {; T0 P t2 r7 g8 o
TITLE 飞机定位模型3;
0 f" a: K8 [; w v. W A) eSETS: 2 D& O& f& @2 h4 @3 x: M7 h$ Z/ Y
VOR/1..3/:x0,y0,cita,sigma,alpha; # A! [# b0 ^% O( ~
ENDSETS ! m; N5 f- N& H2 ]
INIT: ( x0 `0 J) y7 I6 ?
x=1000; y=900;
5 ~3 W, s0 @; U- y2 F' n& r) H/ t/ UENDINIT - Y5 s( c- t5 w( W: x4 u
DATA: & T2 P$ s( c) i+ g/ K
x0, y0, cita, sigma =
4 Y# ]3 [7 a) U' x! l2 k* o746 1393 161.2 0.8
% L7 F8 R7 B* Y3 g9 C- a9 @, P* ~; d629 375 45.1 0.6 6 {2 J1 ~% L' ?0 B
1571 259 309.0 1.3; ! m# A: Z: k$ m7 d: _6 k8 `' r) S
x4 y4 d4 sigma4=155,987,864.3,2.0;
- s) i6 F5 W& d# [" n# z3 n9 kENDDATA ! x& r3 L7 t }1 r, {% n
calc:
3 N- h. x; x+ H9 X' X@for(VOR:cita=cita*3.14159/180;sigma=sigma*3.14159/180); 2 o7 f5 S9 ]: ]- i/ y
endcalc / L; E( m; ]: G3 R
min=@sum(VOR:((alpha-cita)/sigma)^2)+((d4-((x-x4)^2+(y-y4)^2)^.5 )/ sigma4 )^2; ( F3 d' C8 p5 O. Y
@for(VOR: @tan(alpha)=(x-x0)/(y-y0) );
) [/ } m) L3 \/ }$ S1 V9 b8 r) XEND4 p* Q3 ~' v# [
启动 LINGO 的全局最优求解程序求解,得到全局最优解 x=978.3071,y= 723.9841,对应的目标函数的值为 0.668035。 这里得到的误差比模型 1 的大,这是因为模型 1 中使用的是绝对误差,而这里使用的是相对于精度 的误差。对角度而言,分母 很少,所以相对误差比绝对误差大,这是可以理解的。
" A; i' u; h2 s————————————————0 D: ]; l/ N/ O% f
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。' r( A, n! B! @* i% u$ g
原文链接:https://blog.csdn.net/qq_29831163/java/article/details/89389044
) t' K( m8 z( C& e. d: m0 J) P0 f+ u3 }0 e5 z
: ?! w6 e& h0 ^# Y8 R6 w5 [6 n- s; Q) g6 I
|
zan
|