高斯平均引数大地主题正反算.docx
- 文档编号:4291444
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:21
- 大小:145.03KB
高斯平均引数大地主题正反算.docx
《高斯平均引数大地主题正反算.docx》由会员分享,可在线阅读,更多相关《高斯平均引数大地主题正反算.docx(21页珍藏版)》请在冰豆网上搜索。
高斯平均引数大地主题正反算
(VC++-MFC高斯平均引数大地
主题正反算
SouthwestJiaotongUniversity
地球科学与环境工程学院
实验报告书
课程名:
学号:
姓名:
指导老师:
日期:
、实验内容
六、
计算结果
实验体会
、目的与要求
1…
三、计算公式整理
程序代
1.5.
1.6.
、目的与要求
参考椭球面是大地测量计算的基准面。
大地坐标是椭球面上的基本坐标系,根据大地测量的观测成果(如距离与方向),从大地原点出发,逐点计算在椭球面上的大地坐标;或根据两点的大地坐标,计算它们之间的大地线长度和大地方位角,这类计算称为大地问题解算(或称为大地主题解算)。
大地问题解算的用途是多方面的,随着现代空间技术和航空航天、航海等领域的发展,大地问题解算(尤其是大地反算)有着更为重要的作用,因此需要熟练掌握其计算。
二、实验内容
在《大地测量学基础》教材中,介绍了高斯平均引数法与白塞尔方法的计算过程、步骤。
鉴于此,需要熟练掌握高斯平均引数法与白塞尔方法解大地主题问题的基本方法与原理。
采用所熟悉的计算机语言编程计算。
计算时采用克拉索夫椭球参数,至少完成其中一种方法正反算,按照数据序号选取不同的已知数据,在计算结果中注明所选取的数据序号,选取其它数据作为无效数据处理。
三、计算公式整理
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< 如按弧度计算可取按角度计算可取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" #include"AngleTrans.h" #include AngleTrans: : AngleTrans(void) { } AngleTrans: : 〜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; returnRad; 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); #include"StdAfx.h" #include"ZhengFanSuan.h" #include"AngleTrans.h" #include ZhengFanSuan: : ZhengFanSuan(void){ } ZhengFanSuan: : 〜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)); returnx; } doubeCalc_t(doublez) {doublex=tan(z); returnx; } //计算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]; double .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))* (2+3 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 { double M[10000], N[10000], t[10000], B[10000],Bm[10000], L[10000],Lm[10000], A[10000],Am[10000], yita[10000]; double _zB1=_AngleTrans.trans1(zB1), _zL1=_AngleTrans.trans1(zL1),_zA12=_AngleTrans.trans1(zA12),final; ZhengFanSuan: : ZhengSuanL(doublezB1,doublezL1,doublezA12,doublezS) 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)); 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]; Am[1]=_zA12+1/2*A[0]; inti=1; 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); L[i]=_AngleTrans.trans3((206265/(N[1]*cos(Bm[1]))*zS*sin(Am[i])*(1+pow(zS,2)/(24*pow(N[i],2))*(pow (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]>=temp) while(L[i]-L[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]),2))* (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); 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 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)* (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=L[i]; else final=L[i]; doubleFinal=final+_zL1; return_AngleTrans.trans2(Final); //正算大地方位角doubleZhengFanSuan: : ZhengSuanA(doublezB1,doublezL1,doublezA12,doublezS) {doubleM[100], N[100],t[100], B[100],Bm[100], L[100],Lm[100], A[100],Am[100], yita[10000]; double_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)); 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; B[1]= (2+3 _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)- 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))*(powpow( ),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); while(A[i]-A[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]) 2))* (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); 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 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)* i++; else Final=final+_zA12+Pi; _B=_fB2-_fB1,_L=_fL2-_fL1; double Nm=Calc_N(Bm), tm=Calc_t(Bm),yitam=Calc_yita(Bm); double Vm=sqrt(1+pow(e2,2)*pow(co
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 平均 大地 主题 正反