matlab大圆航线,基于MATLAB和C#混合编程的大圆航线计算器设计
行业曲线industryappraisement
可替代度影响力可实现度行业关联度真实度
利用现有的大圆航线算法,分别通过MATLAB和C#编写大圆航线正反解的算法和大圆航线计算器显示界面,以及利用MATLAB和C#.NET混合编程的方式对大圆航线计算器进行了设计,并对所设计的大圆航线计算器进行了验证,验证结果表明大圆航线计算器具备较高精确性和有效性,为大圆航线计算提供了便捷的计算方式。
大圆航线又称为大地主题解算,是指在地球上从一点航行到另一点时,过两点的大圆劣弧,用于进行地球椭球面上两位置点间的距离和方位角的计算。船舶或飞机进行远距离航行时,一般情况下均采用大圆航线进行航行,以缩短航程和航行时间。目前关于大地主题的解算算法很多,例如T.Vincenty的嵌入系数法,巴乌曼投影法,以及贝塞尔公式等。这些大地主题解算的算法为本文所设计的大圆航线计算器提供了可靠的算法基础和有效保障。大圆航线大圆航线包括大圆航线正解和大圆航线反解。大圆航线正解是指已知地球上起点的经纬度坐标,计算从该位置点以某一方位角航行一定距离后的终点位置经纬度坐标;大圆航线反解是指已知地球上两位置点经纬度坐标,计算该两点间的大圆航线距离和正反方位角,示意图如图1所示。设起点A的经纬度坐标为11(B,L),终点B的经纬度坐标为22(B,L),s表示起点和终点间的大圆航线长度,表示大圆航线在赤道的方位角,12,表示大圆航线的正反方位角,a、b、f分别表示椭球的长半轴、短半轴和扁率。本文以T.Vincenty的嵌入系数法为参考总结出大圆航线正反解解算过程。大圆航线正解大圆航线正解过程如下:首先,根据起点A纬度,计算起点A的球面归化纬度1U:11tanU=(1-f)tanL计算大圆航线与椭球赤道的交点和起点A在椭球上的球面角距:111tan=tanU/cos则可得到大圆航线在赤道的方位角,11sin=cosUsin通过计算大圆航线长度修正项?,同时计算大圆航线与赤道的交点到大圆航线中点的球面角距m,以及点A与点B间的球面角距。22222u=cos(a-b)/b2221[64(125)]256uM=++u-+u222[128(6437)]512uN=+u-+u1(2)/2m=+sbM=+?2sin[cos2cos(12cos2)/4]mm?=N+B-+图1大圆航线
对公式(7)式至(9)进行迭代,直至点A与点B间的球面角距的变化可忽略不计。初始迭代条件为式(8)的第一项。然后计算起点与终点的经度差?B,1111tanB?(sinsin)/(cosUcos-sinUsincos)最后分别计算终点的经纬度坐标22(B,L)。11121222111sincoscossincostan(1)[sin(sinsincoscoscos)]UULfUU+=-+-21B=?B+B大圆航线反解大圆航线反解过程如下:初始迭代值:'21?B=B-B然后计算起点与终点的球面角距,2'2'221212sin=(cosUsin?B)+(cosUsinU-sinUcosUcos?B)'1212cossin=UsinU+cosUcosUcos?Btan=sin/cos其中2U表示终点的球面归化纬度1U,22tanU=(1-f)tanL'12sin=cosUcosUsin?B/sin212cos2cos2sinsin/cosm=-UU对式(14)至式(19)进行迭代,直至'?B的改变量可以忽略不计。22cos[4(43cos)]16fC=+f-'2(1)sin{sin[cos2cos(12cos2)]}mm?B=?B--C
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)