高斯平均引数大地主题正反算Word格式.docx
- 文档编号:17211035
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:21
- 大小:145.03KB
高斯平均引数大地主题正反算Word格式.docx
《高斯平均引数大地主题正反算Word格式.docx》由会员分享,可在线阅读,更多相关《高斯平均引数大地主题正反算Word格式.docx(21页珍藏版)》请在冰豆网上搜索。
鉴于此,需要熟练掌握高斯平均引数法与白塞尔方法解大地主题问题的基本方法与原理。
采用所熟悉的计算机语言编程计算。
计算时采用克拉索夫椭球参数,至少完成其中一种方法正反算,按照数据序号选取不同的已知数据,在计算结果中注明所选取的数据序号,选取其它数据作为无效数据处理。
3.1
t=耳=萨cm亠方
(2)计算甘气AZ的初值
A7,j—5-sicT]
■
比厶=PSr,卫1■扌]I科1鸟=門旨mE\
〈3)计算兀、〔八仏
比胡+;
込
1・
厶1=A+5亠匚》
A(=4+〒
*
(4)再次计算占%旺、X4
*«
2
却'
寸$C0SA—百肩【曲血Q+圮十城)AI^24V;
—匚2厂匕FU—1—叽一丄汛€山
$血厶彳1十
-3;
4/1+兀-9川:
)卜
立=半-S侖心川亠磐孑[m*4/2十了恋十沏北十加)
A旳24VfH
亠品;
占0十叹+2心]}
(5>
重复计算(3),直到计算满足
丄5出—AS.<
8
AZm-AL;
?
也(i-A<
<
f
如按弧度计算可取按角度计算可取0.0001o
(6)计算虽、5、缶的最后值
£
;
=■+■xXS-
L:
N£
]+AZ:
虫:
■内4土1±
1&
护(易>
1呦’取+,岛<
130^-
3.2、高斯平均引数正算计算公式(S<
200km)
(2)U=Ssin=rclA£
十
V-Scos++
A^-/flAS+f:
1AS:
AZ址山
式中各系数
咖=^€05^
心=_善血曲
24
知二-壽■"
J氏Q十九-2心
24r
AL
切-市?
5月*启+7即:
+/》;
)
心帀心弘U2心
注:
这里对教材公式中相应系数进行了修正与改进©
C3)A=ar^fS^^ct4
arctan
⑸「也_Usinsin月比
对■厶-;
四、程序代码
4.1、角度转换类的头文件:
#pragmaonce
constdoublePi=3.141592653589793;
classAngleTrans
{
public:
AngleTrans(void);
〜AngleTrans(void);
doubleD,F,M,DFM,Rad,Ten;
doubletrans1(doubleDFM),//度分秒形式的角度转换为弧度形式
trans2(doubleRad),//弧度形式的角度转换为度分秒形式trans3(doubleD);
//十进制度转化为弧度
};
4.2、角度转换类的源文件:
#include"
StdAfx.h"
AngleTrans.h"
#include<
cmath>
AngleTrans:
:
AngleTrans(void)
}
〜AngleTrans(void)
//度分秒转换为弧度
doubleAngleTrans:
trans1(doubleDFM){D=floor(DFM);
F=floor((DFM-D)*100);
M=(DFM-D-F/100)*10000;
Ten=D+F/60+M/3600;
Rad=Ten/180*Pi;
returnRad;
//弧度转换为度分秒doubleAngleTrans:
trans2(doubleRad)
{Ten=Rad/Pi*180;
D=floor(Ten);
F=(Ten-D)*60;
M=(F-floor(F))*60;
F=floor(F);
DFM=D+F/100+M/10000;
returnDFM;
eAngleTrans:
trans3(doubleD)
Rad=D/180*Pi;
4.3
、正反算类的头文件:
once
ZhengFanSuan(void);
~ZhengFanSuan(void);
doublezB1,zL1,zA12,zS,fB1,fL1,fB2,fL2;
zL1,doublezA12,doublezS),
doubleZhengSuanB(doublezB1,double
ZhengSuanL(double
zB1,doublezL1,doublezA12,doublezS),
ZhengSuanA(doublezB1,double
zL1,doublezA12,doublezS);
double
FanSuanA12(doublefB1,double
fL1,doublefB2,doublefL2),
FanSuanS(doublefB1,doublefL1,doublefB2,doublefL2),
FanSuanA21(doublefB1,doublefL1,doublefB2,doublefL2);
ZhengFanSuan.h"
ZhengFanSuan:
ZhengFanSuan(void){
〜ZhengFanSuan(void)
AngleTrans_AngleTrans;
constdoublee仁0.0066934216622966,
e2=0.006738525414683,a=6378245.0000.
b=6356863.01877,
temp=pow(10.0,-10);
//精度要求
doubeCalc_M(doublez)//计算Mm
{doublex=a*(1-pow(e1,2))/sqrt(pow(1-pow(e1,2)*pow(sin(z),2),3));
returnx;
doubeCalc_N(doublez)//计算Nm
{doublex=a/sqrt(1-pow(e1,2)*pow(sin(z),2));
doubeCalc_t(doublez)
{doublex=tan(z);
//计算tm
doubeCalc_yita(doublez)//计算yitam
{doublex=pow(e2,2)*pow(cos(z),2);
returnx;
//正算纬度
doubeZhengFanSuan:
ZhengSuanB(
{doubleM[10000],
doublezB1,doublezL1,doublezA12,double
zS)
N[10000],
t[10000],
B[10000],Bm[10000],
L[10000],Lm[10000],
A[10000],Am[10000],yita[10000];
.zB1=_AngleTrans.trans1(zB1),
_zL1=_AngleTrans.trans1(zL1),_zA12=_AngleTrans.trans1(zA12),final;
t[1]=tan(_zB1);
yita[1]=pow(e2,2)*pow(cos(_zB1),2);
N[1]=a/sqrt(1-pow(e1,2)*pow(sin(_zB1),2));
B[1]=
M[1]=a*(1-pow(e1,2))/sqrt(pow(1-pow(e1,2)*pow(sin(_zB1),2),3));
B[0]=_AngleTrans.trans3(206265/M[1]*zS*cos(_zA12)/3600),
L[0]=_AngleTrans.trans3(206265*zS*sin(_zA12)/(N[1]*cos(_zB1))/3600),
A[0]=L[0]*sin(_zB1);
Bm[1]=_zB1+1/2*B[0];
Lm[1]=_zL1+1/2*L[0];
Am[1]=_zA12+1/2*A[0];
inti=1;
_AngleTrans.trans3((206265/M[1]*zS*cos(Am[1])*(1+pow(zS,2)/(24*pow(N[1],2))*(pow(sin(Am[1]),2))
(2+3
pow(t[1],2)+2*pow(yita[1],2))+3*pow(cos(Am[1]),2)*pow(yita[1],2)*(pow(t[1],2)-1-pow(yita[1],2)-
4*pow(yita[1],2)*pow(t[1],2))))/3600);
L[i]=_AngleTrans.trans3((206265/(N[1]*cos(Bm[1]))*zS*sin(Am[i])*(1+pow(zS,2)/(24*pow(N[i],2))*(pow
pow(
),2)*
(2+7
2))*
A[i]=_AngleTrans.trans3((206265/N[i]*zS*sin(Am[i])*t[i]*(1+pow(zS,2)/(24*pow(N[i],2))*(pow(cos(Am[i]
pow(yita[i],2)+9*pow(yita[i],2)*pow(t[i],2)+5*pow(yita[i],4))+pow(sin(Am[i]),2)*(2+pow(t[i],2)+2*pow(yita[i],2)))))/3600);
while(B[i]-B[i-1]>
=temp)
B[i+1]=_AngleTrans.trans3((206265/M[i]*zS*cos(Am[i])*(1+pow(zS,2)/(24*pow(N[i],2))*(pow(sin(Am[i])
pow(t[i],2)+2*pow(yita[i],2))+3*pow(cos(Am[i]),2)*pow(yita[i],2)*(pow(t[i],2)-1-pow(yita[i],2)-
4*pow(yita[i],2)*pow(t[i],2))))/3600);
L[i+1]=_AngleTrans.trans3((206265/(N[i]*cos(Bm[i]))*zS*sin(Am[i])*(1+pow(zS,2)/(24*pow(N[i],2))*(po
w(t[i],2)*pow(sin(Am[i]),2)-pow(cos(Am[i]),2)*(1+pow(yita[i],2)-9*pow(yita[i],2)*pow(t[i],2)))))/3600);
A[i+1]=_AngleTrans.trans3((206265/N[i]*zS*sin(Am[i])*t[i]*(1+pow(zS,2)/(24*pow(N[i],2))*(pow(cos(A
m【i]),2)*
(2+7*pow(yita[i],2)+9*pow(yita[i],2)*pow(t[i],2)+5*pow(yita[i],4))+pow(sin(Am[i]),2)*(2+pow(t[i],2)+2*pow(yita[i],2)))))/3600);
Bm[i+1]=_zB1+1/2*B[i];
Lm[i+1]=_zL1+1/2*L[i];
Am[i+1]=_zA12+1/2*A[i];
M[i+1]=Calc_M(B[i]);
N[i+1]=Calc_N(N[i]);
yita[i+1]=Calc_yita(yita[i]);
t[i+1]=Calc_t(t[i]);
final=B[i];
i++;
doubleFinal=final+_zB1;
return_AngleTrans.trans2(Final);
//正I
doub
M[10000],
A[10000],Am[10000],
yita[10000];
_zB1=_AngleTrans.trans1(zB1),
ZhengSuanL(doublezB1,doublezL1,doublezA12,doublezS)
B[1]=_AngleTrans.trans3((206265/M[1]*zS*cos(Am[1])*(1+pow(zS,2)/(24*pow(N[1],2))*(pow(sin(Am[1]),2))
(2+3*pow(t[1],2)+2*pow(yita[1],2))+3*pow(cos(Am[1]),2)*pow(yita[1],2)*(pow(t[1],2)-1-pow(yita[1],2)-4*pow(yita[1],2)*pow(t[1],2))))/3600);
(t[i],2)*pow(sin(Am[i]),2)-pow(cos(Am[i]),2)*(1+pow(yita[i],2)-9*pow(yita[i],2)*pow(t[i],2)))))/3600);
A[i]=_AngleTrans.trans3((206265/N[i]*zS*sin(Am[i])*t[i]*(1+pow(zS,2)/(24*pow(N[i],2))*(pow(cos(Am[i]),2)*
(2+7*
pow(yita[i],2)+9*pow(yita[i],2)*pow(t[i],2)+5*pow(yita[i],4))+pow(sin(Am[i]),2)*(2+pow(t[i],2)+2*
pow(yita[i],2)))))/3600);
if(L[i]-L[i-1]>
while(L[i]-L[i-1]>
B[i+1]=_AngleTrans.trans3((206265/M[i]*zS*cos(Am[i])*(1+pow(zS,2)/(24*pow(N[i],2))*(pow(sin(Am[i]),2))*
(2+3*
pow(sin(Am[i]),2)-pow(cos(Am[i]),2)*(1+pow(yita[i],2)-9*pow(yita[i],2)*pow(t[i],2)))))/3600);
A[i+1]=_AngleTrans.trans3((206265/N[i]*zS*sin(Am[i])*t[i]*(1+pow(zS,2)/(24*pow(N[i],2))*(pow(cos(Am[i]),2)*
final=L[i];
else
doubleFinal=final+_zL1;
//正算大地方位角doubleZhengFanSuan:
ZhengSuanA(doublezB1,doublezL1,doublezA12,doublezS)
{doubleM[100],
N[100],t[100],
B[100],Bm[100],
L[100],Lm[100],
A[100],Am[100],
double_zB1=_AngleTrans.trans1(zB1),
L[0]=_AngleTrans.trans3(206265*zS*sin(_zA12)/(N[1]*cos(_zB1))/3600),A[0]=L[0]*sin(_zB1);
_AngleTrans.trans3((206265/M[1]*zS*cos(Am[1])*(1+pow(zS,2)/(24*pow(N[1],2))*(pow(sin(Am[1]),2))pow(t[1],2)+2*pow(yita[1],2))+3*pow(cos(Am[1]),2)*pow(yita[1],2)*(pow(t[1],2)-1-pow(yita[1],2)-
L[i]=_AngleTrans.trans3((206265/(N[1]*cos(Bm[1]))*zS*sin(Am[i])*(1+pow(zS,2)/(24*pow(N[i],2))*(powpow(
(2+7*pow(yita[i],2)+9*pow(yita[i],2)*pow(t[i],2)+5*pow(yita[i],4))+pow(sin(Am[i]),2)*(2+pow(t[i],2)+2*
while(A[i]-A[i-1]>
(2+3*pow(t[i],2)+2*pow(yita[i],2))+3*pow(cos(Am[i]),2)*pow(yita[i],2)*(pow(t[i],2)-1-pow(yita[i],2)-4*pow(yita[i],2)*pow(t[i],2))))/3600);
m[i]),2)*
Final=final+_zA12+Pi;
_B=_fB2-_fB1,_L=_fL2-_fL1;
Nm=Calc_N(Bm),
tm=Calc_t(Bm),yitam=Calc_yita(Bm);
Vm=sqrt(1+pow(e2,2)*pow(co
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 平均 大地 主题 正反