已知距离求解坐标:《无人深空远征14》星系定位问题
已知条件:
- R0 坐标:
(0, 0, 0) - R1 坐标:
(105, 0, 0) - 各星系间跃迁距离(单位:ly):
| 星系对 | 距离 |
|---|---|
| R0-R1 | 105 |
| R0-R2 | 259 |
| R0-R3 | 360 |
| R0-R4 | 33 |
| R0-R5 | 235 |
| R1-R2 | 255 |
| R1-R3 | 373 |
| R1-R4 | 76 |
| R1-R5 | 187 |
| R2-R3 | 251 |
| R2-R4 | 269 |
| R2-R5 | 201 |
| R3-R4 | 370 |
| R3-R5 | 229 |
| R4-R5 | 225 |
由于假设R4在x-y平面无法求解R2,因此需要采用三维坐标系下的联立方程求解,步骤如下:
步骤1:推导R4的坐标表达式
设R4=(x₄, y₄, z₄),利用R0-R4和R1-R4的距离列方程:
x₄² + y₄² + z₄² = 33² = 1089(x₄ - 105)² + y₄² + z₄² = 76² = 5776
两式相减消去y₄² + z₄²,计算得:x₄ ≈ 30.181
代入第一个方程,得:y₄² + z₄² ≈ 178.11
这里不假设z₄=0,而是用参数θ表示:y₄ = √178.11 · cosθ,z₄ = √178.11 · sinθ,θ为待确定的角度变量。
步骤2:用θ表示R5的坐标
设R5=(x₅, y₅, z₅),利用R0-R5、R1-R5、R4-R5的距离列方程:
x₅² + y₅² + z₅² = 235² = 55225(x₅ - 105)² + y₅² + z₅² = 187² = 34969(x₅ - x₄)² + (y₅ - y₄)² + (z₅ - z₄)² = 225² = 50625
前两式相减求得:x₅ ≈ 148.957,y₅² + z₅² ≈ 33037
展开第三个方程并整理,利用点积关系可得:y₅y₄ + z₅z₄ ≈ -1651.2
结合R4的参数化表达式,可推导出R5的y₅、z₅也能用θ表示(通过三角函数关系确定φ与θ的关联)。
步骤3:用θ表示R3的坐标
设R3=(x₃, y₃, z₃),利用R0-R3、R1-R3、R4-R3的距离列方程:
x₃² + y₃² + z₃² = 360² = 129600(x₃ - 105)² + y₃² + z₃² = 373² = 139129(x₃ - x₄)² + (y₃ - y₄)² + (z₃ - z₄)² = 370² = 136900
前两式相减求得:x₃ ≈ 7.1238,y₃² + z₃² ≈ 129549.25
展开第三个方程整理后,通过点积关系可推导出R3的y₃、z₃同样能用θ表示。
步骤4:联立方程求解θ及R2坐标
设R2=(x₂, y₂, z₂),利用R0-R2、R1-R2的距离先求得:x₂ ≈ 62.2905,y₂² + z₂² ≈ 63200.9
再结合R2-R4、R2-R3的距离方程,展开后整理出关于y₂、z₂与R4、R3参数化坐标的点积方程:
y₂y₄ + z₂z₄ ≈ -3975.5y₂y₃ + z₂z₃ ≈ 66396.3
将R4、R3的参数化表达式代入上述方程,结合y₂² + z₂²的定值,可得到仅含θ的三角函数方程,解此方程即可确定θ的值,进而求出R4、R5、R3的精确坐标,最后代入R2的相关方程得到R2的坐标。
求解完成后,可通过R2-R5的距离数据验证结果的正确性,调整计算中的近似误差。
内容的提问来源于stack exchange,提问作者shirha

