问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

大圆航线长度计算方法详解

创作时间:
作者:
@小白创作中心

大圆航线长度计算方法详解

引用
1
来源
1.
https://www.kechuang.org/t/90225

大圆航线是地球上两点之间的最短距离航线,在航空和航海中具有重要应用。本文将详细介绍如何计算大圆航线的长度,包括数学推导过程和Python代码实现。

一、大圆航线定义

球面上两点之间的最短距离的航线就是大圆航线。在航空业中,远距离航行的飞机规划航路时经常采用的航线。

如图,弧ED1为E到D的大圆航线。

二、研究背景

问题起源

在生活中,我们经常乘坐飞机或轮船(有时候火车航线也能达到本文探索的尺度)之类的交通工具,当它们的航线跨度达到一定程度时,就不能近似地从平面上去计算航线的长度了,需要从球体的角度来算,这就是大圆航线的起源。那么,怎么去计算它的长度呢?

已知球面上两点的经纬度(球面上的坐标),求它们在球面上的最短连线的长度。

由于大圆航线可以看作一段劣弧,而地球的半径是已知的,所以最终要的就是求出这段弧所对的圆心角大小。那么我们可以先把这段弧所对的弦长求出,最后再根据弦长求得圆心角的大小。

三、研究过程

(1)从简单情况入手寻找解决思路

我们先探究了纬度或经度相同的情况

纬度相同时,借助三角函数,可以求出AK的值,AKB在同一平面上且该平面与赤道面相平,∠AKB为两地经度差,借助余弦定理变式即可求出AB长,在已知半径(AK)的圆K中,即可求出弧AB

经度相同时,连接AO BO(O为地心),已知∠AOB(即纬度差),可以直接利用圆心角及半径求出弧AB,但也可以再次利用余弦定理求出AB,再求弧AB

由特殊情况中,我们找到了初步思路:求两点间连线线段的长度,即AB

2)将思路拓展至一般情况

①A点与B点同在北半球的情况

这时∠OAK=A点的纬度=a,可求出sin a的值,根据r的长度可算出OK的长度k,所以
,即可算出AN的长度,再运用同样的方法算出BN的长度(B点情况与A点相同,这里不过多赘述),如图1。

得出AN,BN长度后,延长NB至交A所在纬度圈的平面(令为⊙K)于点B,连接KB,此时因为A,K,B在同一平面上,故BK⊥NO,即BK//BF。此时,∠AKB的度数即为x与y的差值。OB和ON相等,又由B点的纬度得到∠BON的度数,故可以求∠ONB的度数。

因为∠NKB’=90︒,∠ONB’=∠ONB,可求得KB’=tan∠ONB’·KN,又结合之前求得的AK与∠AKB的度数可求AB的长度。这样,我们就有了AB,AN以及NB的长度,根据余弦定理可求出∠ANB度数。最后,再结合AN和NB的长度,求得AB的长度b,由弧长公式L=2r·arcsin (b/2r)就可求出弧AB的长度了,如图2。

②将思路拓展至一般情况

② A与B在不同的南北半球

这里步骤基本与上条一样,仅∠KAN(∠FBN)需要加上A(B)点的纬度绝对值之一半以配合南北纬的差异。

③A与B点同在南半球

同①,只需将参照点N替换为南极点S即可。

(3)整理模型并求出公式

A,B同在北半球

已知A(a,x),B(b,y)∵∠OAK=a, ∠OBF=b∴OK=r·sina,OF=r·sin b∵ON=r

∴NK=r-r·sina,NF=r-r·sinb

∵∠AKO=90︒

∴由勾股定理求得AK,BF的值,再利用AN2=AK2+KN2 BN2=BF2+NF2求出BN,AN的值

延长NB交⊙K所在平面于点B,连接KB,AB`

∴KB⊥NO∴KB//FB

∴∠AKB`=x-y,

∠NKB=90∵ON=NB∴∠ONB=∠OBN∵∠BON=90°-b ∴∠ONB=45°+b/2∴∠ONB=45°+b/2

∴∠ANB`=∠ANB=cos-11/2AN·NB’·NB’2+AN2-AB’2

AB=√AN2+BN2−2AN·BN·∠ANB

最后代入弧长公式L=2r·cos-1(b/2r)即可求得大圆航线lAB的长度

所以,最终的公式为

由于公式较为复杂,不便于日常计算,我们便打算通过编程的方式,让电脑帮我们运算,我们最终的代码如下:

对于该公式与编程,我们可以将其利用到生活中,如对于航天公司和旅客,可以很方便地求出出发点至中点的最短距离的近似值,从而合理规划航线,减少时间浪费。

(7)拓展与改良

这里我们为了简化计算,球的半径设为1。

前面已经说过,A点的纬度为a,经度为x,B点的纬度为b, 经度为y。如图3所示,作AI⊥平面xOy于I,BH⊥平面xOy于H,AI即为A的z坐标,BH即为B的z坐标,

故AI= rsin a,BH= rsin b,可推出

OI=rcos a,OH=rcos b。再分别过H

和I向x轴、y轴作垂线,由OI和OH

的长度和x、y的大小可以算出A点

与B点的横纵坐标如下:

A(rcos a sin x,rcos a cos x,rsin a),

B(rcos b sin y,rcos b cos y,rsin b)

我们在借助了三角函数与余弦定理等数学工具的条件下,推导出了大圆航线长度的计算公式,并利用Python面积出了相应的程序,解决了本文开头留下的问题。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号