贝塞尔大地主题解算分析 ppt课件
- 格式:ppt
- 大小:1.96 MB
- 文档页数:16
存档日期:存档编号:江苏师范大学科文学院本科生毕业设计(论文)论文题目:贝塞尔大地主题正反算及程序设计*名:**系别:环境与测绘系专业:测绘工程年级、学号:08测绘、************师:***江苏师范大学科文学院教务部印制摘要在大地测量计算过程中,大地主题解算计算繁琐复杂,手工计算易于出错,而且费时费力。
随着计算机技术的高速发展,计算机计算的速度快、准确度高、计算机语言的丰富、编程可视化等优点为我们将复杂烦琐的计算过程简单、简洁、高效化带来了契机。
为了便于工程计算,本课题着眼于研究借助计算机及其编程语言MATLAB来实现大地主题解算问题。
大地主题解算方法,主要有高斯平均引数法、勒让德级数法、贝塞尔法。
前两种方法受到大地线长度的制约,随着大地线两端点的距离加大,其解算精度明显降低。
而贝塞尔法具有不受大地线长度制约的优点,解算精度最大不超过5毫米,是大地主题解算方法中解算精度最高的一种。
因此,本文就以贝塞尔法为研究对象,开发贝塞尔大地主题解算小程序。
关键词:贝塞尔大地主题正反算,程序设计A b s t r a c tIn Geodetic computation process, the solution of geodetic problem computational complexity of manual calculation, error prone, and took the time and trouble. With the rapid development of computer technology, computational speed, high accuracy, computer language, the advantages of rich programming visualization for we will complex complicated calculating process is simple, concise, efficient change brings opportunity. For the convenience of engineering calculation, this paper focus on the research of have the aid of computer and programming language MATLAB to realize the geodetic problem solving.Solution of geodetic problem method, mainly Gauss average argument method, Legendre series expansion method, Bessel method. The former two methods by geodesic length constraints, along with the line ends point distance increase, the calculation precision significantly reduced. Bessel law is not affected by the advantages of geodesic length restriction, calculation accuracy of less than 5mm, is the theme of the earth solution method of calculating precision is highest kind. Therefore, this article on Bessel law as the object of study, the development of Bessel solution of geodetic problem of small procedures.Key words:Direct and inverse solution of geodetic problem,The designing of program目录摘要 .................................................... I Abstract (II)1. 椭球面和球面上对应元素间的关系 (1)1.1 贝塞尔法解算大地问题的基本思想 (1)1.2 对应元素关系式 (1)2. 在球面上进行大地主题解算 (5)2.1 球面上大地主题正解方法 (6)2.2 球面上大地主题反解方法 (6)3. 贝塞尔微分方程的积分 (8)3.1 用于大地主题反算时的大地线长度公式 (8)3.2 用于大地主题正算时的大地线长度公式 (10)3.3 椭球面大地线端点经差与球面经差的关系式 (11)3.4 反解时,大地线长度和球面长度关系式的简化 (13)4. 贝塞尔大地主题正解算步骤 (15)4.1 计算起点的归化纬度 (15)4.2 计算辅助函数值 (15)4.3 计算系数 (15)4.4 计算球面长度 (15)4.5 计算经差改正数 (16)4.6 计算终点大地坐标及大地方位角 (16)5. 贝塞尔大地主题正解算MATLAB 程序设计 (17)5.1 正算流程 (17)5.2 界面设计及功能模块编写 (18)6. 贝赛尔大地主题反解算步骤 (23)6.1 辅助计算 (23)6.2 用逐次趋近法同时计算起点大地方位角、球面长度及经差δλ+=l :236.3 计算系数及大地线长度S (24)6.4 计算反方位角 (24)7. 贝塞尔大地主题反解算MATLAB 程序设计 (25)7.1 反算流程 (25)7.2 界面设计及功能模块编写 (26)8 总结 (29)参考文献 (31)致谢 (29)1. 椭球面和球面上对应元素间的关系1.1 贝塞尔法解算大地问题的基本思想基本思想:将椭球面上的大地元素按照贝塞尔投影条件投影到辅助球面上,继而在球面上进行大地问题解算,最后再将球面上的计算结果换算到椭球面上。
大地主题解算(正算)代码与白塞尔大地主题解算大地主题解算(正算)代码:根据经纬度和方向角以及距离计算另外一点坐标新建模块->拷贝下面的大地主题(正算)代码,调用方法示例:起点经度:116.235(度)终点纬度:37.435(度)方向角:50(度)长度:500(米)终点经纬度("经度,纬度")=Computation(37.435,116.235,50,500)Const Pi = 3.1415926535898Private a, b, c, alpha, e, e2, W, V As Double'a 长轴半径'b 短轴'c 极曲率半径'alpha 扁率'e 第一偏心率'e2 第二偏心率'W 第一基本纬度函数'V 第二基本纬度函数Private B1, L1, B2, L2 As Double'B1 点1的纬度'L1 点1的经度'B2 点1的纬度'L2 点2的经度Private S As Double '''''大地线长度Private A1, A2 As Double'A1 点1到点2的方位角'A2 点2到点1的方位角Function Computation(STARTLAT, STARTLONG, ANGLE1, DISTANCE As Double) As StringB1 = STARTLATL1 = STARTLONGA1 = ANGLE1S = DISTANCEa = 6378245b = 6356752.3142c = a ^ 2 / balpha = (a - b) / ae = Sqr(a ^ 2 - b ^ 2) / ae2 = Sqr(a ^ 2 - b ^ 2) / bB1 = rad(B1)L1 = rad(L1)A1 = rad(A1)W = Sqr(1 - e ^ 2 * (Sin(B1) ^ 2))V = W * (a / b)Dim W1 As DoubleE1 = e ''''第一偏心率'// 计算起点的归化纬度W1 = W ''Sqr(1 - e1 * e1 * Sin(B1 ) * Sin(B1 )) sinu1 = Sin(B1) * Sqr(1 - E1 * E1) / W1cosu1 = Cos(B1) / W1'// 计算辅助函数值sinA0 = cosu1 * Sin(A1)cotq1 = cosu1 * Cos(A1)sin2q1 = 2 * cotq1 / (cotq1 ^ 2 + 1)cos2q1 = (cotq1 ^ 2 - 1) / (cotq1 ^ 2 + 1)'// 计算系数AA,BB,CC及AAlpha, BBeta的值。
贝塞尔大地坐标解算(正算)#include<stdio.h>#include<math.h>#define PI 3.1415926535897323int main(){int q,p;double h,i,j,L,B,A1,S;double a,g,c,d,e,f;void n(double b,double l,double a1,double s,double a,double d,double e,double f);double z(double d,double m,double s);void r(double dd);printf("请选择:\n1.我国1954北京坐标系\n2.我国1980西安坐标系\n3.我国2000国家大地坐标系\n");scanf("%d",&p);if(p==1){a=6378245.0;g=6356863.0188;c=6399698.9018;d=0.00335232986926;e=0.00669342162297;f=0.00673852541468;}else if(p==2){a=6378140.0;g=6356755.2882;c=6399596.6520;d=0.0033528131779;e=0.00669438499959;f=0.00673950181947;}else if(p==3){a=6378137.0;g=6356752.3141;c=6399593.6259;d=1/298.257222101;e=0.0066943800229;f=0.00673949677547;}printf("请输入注:输入格式为角度(例如:30'40'50')\nL1=");scanf("%lf'%lf'%lf'",&h,&i,&j);L=z(h,i,j);printf("请输入注:输入格式为角度(例如:30'40'50')\nB1=");scanf("%lf'%lf'%lf'",&h,&i,&j);B=z(h,i,j);printf("请输入注:输入格式为角度(例如:30'40'50')\nA1=");scanf("%lf'%lf'%lf'",&h,&i,&j);A1=z(h,i,j);printf("请输入\nS=");scanf("%lf",&S);n(B,L,A1,S,a,d,e,f);scanf("%d",&q);}double z(double d,double m,double s){double e;double sign=(d<0.0)?-1.0:1.0;if(d==0){sign=(m<0.0)?-1.0:1.0;if(m==0){sign=(s<0.0)?-1.0:1.0;}}if(d<0)d=d*(-1.0);if(m<0)m=m*(-1.0);if(s<0)s=s*(-1.0);e=sign*(d*3600+m*60+s)*PI/(3600*180);return e;}void r(double dd){int de;int d,m;double s;double sign=(dd<0.0)?-1.0:1.0;if(dd<0)dd=fabs(dd);dd=dd*3600*180/PI;de=int(dd/3600);d=sign*de;dd=dd-de*3600;m=int(dd/60);s=dd-m*60;printf("%d'%d'%lf'\n",d,m,s);}void n(double b,double l,double a1,double s,double a,double d,double e,double f) {double u1,m,M,A2,u2,ss,ss1,k,aa,bb,cc,rr,rr1,rr2,B2,L2;double aa2,bb2,cc2,k2,ll;u1=atan(sqrt(1-e)*tan(b));m=asin(cos(u1)*sin(a1));if(m<0.0)m=m+2*PI;M=atan(tan(u1)/cos(a1));if(M<0.0)M=M+PI;k=f*cos(m)*cos(m);aa=sqrt(1+f)*(1-k/4+7*k*k/64-15*k*k*k/256)/a;bb=k/4-k*k/8+37*k*k*k/512;cc=k*k/128-k*k*k/128;ss1=aa*s;ss=aa*s+bb*sin(ss1)*cos(2*M+ss1)+cc*sin(2*ss1)*cos(4*M+2*ss1);for(;fabs(ss-ss1)>(2.8*PI/180*pow(10.0,-7.0));){ss1=ss;ss=aa*s+bb*sin(ss1)*cos(2*M+ss1)+cc*sin(2*ss1)*cos(4*M+2*ss1);}A2=atan(tan(m)/cos(M+ss));if(A2<0.0)A2=A2+PI;if(a1<=PI)A2=A2+PI;u2=atan(-cos(A2)*tan(M+ss));rr1=atan(sin(u1)*tan(a1));if(rr1<0)rr1=rr1+PI;if(m>=PI)rr1=rr1+PI;rr2=atan(sin(u2)*tan(A2));if(rr1<0)rr2=rr2+PI;if(m<PI){if((M+ss)>=PI)rr2=rr2+PI;}elseif((M+ss)<=PI)rr2=rr2+PI;rr=rr2-rr1;B2=atan(sqrt(1+f)*tan(u2));k2=e*cos(m)*cos(m);aa2=(e/2+e*e/8+e*e*e/16)-e*(1+e)*k2/16+3*e*k2*k2/128;bb2=e*(1+e)*k2/16-e*k2*k2/32;cc2=e*k2*k2/256;ll=rr-sin(m)*(aa2*ss+bb2*sin(ss)*cos(2*M+ss)+cc2*sin(2*ss)*cos(4*M+2*ss));L2=l+ll;printf("L2=");r(L2);printf("\nB2=");r(B2);printf("\nA2=");r(A2);}反算#include<stdio.h>#include<math.h>#define PI 3.1415926535897323int main(){int q,p;double h,i,j,L,B,L2,B2;double a,g,c,d,e,f;void n(double b,double l,double l2,double b2,double a,double d,double e,double f);double z(double d,double m,double s);void r(double dd);printf("请选择:\n1.我国1954北京坐标系\n2.我国1980西安坐标系\n3.我国2000国家大地坐标系\n");scanf("%d",&p);if(p==1){a=6378245.0;g=6356863.0188;c=6399698.9018;d=0.00335232986926;e=0.00669342162297;f=0.00673852541468;}else if(p==2){a=6378140.0;g=6356755.2882;c=6399596.6520;d=0.0033528131779;e=0.00669438499959;f=0.00673950181947;}else if(p==3){a=6378137.0;g=6356752.3141;c=6399593.6259;d=1/298.257222101;e=0.0066943800229;f=0.00673949677547;}printf("请输入注:输入格式为角度(例如:30'40'50')\nL1=");scanf("%lf'%lf'%lf'",&h,&i,&j);L=z(h,i,j);printf("请输入注:输入格式为角度(例如:30'40'50')\nB1=");scanf("%lf'%lf'%lf'",&h,&i,&j);B=z(h,i,j);printf("请输入注:输入格式为角度(例如:30'40'50')\nL2=");scanf("%lf'%lf'%lf'",&h,&i,&j);L2=z(h,i,j);printf("请输入注:输入格式为角度(例如:30'40'50')\nB2=");scanf("%lf'%lf'%lf'",&h,&i,&j);B2=z(h,i,j);n(B,L,L2,B2,a,d,e,f);scanf("%s",&q);}double z(double d,double m,double s){double e;double sign=(d<0.0)?-1.0:1.0;if(d==0){sign=(m<0.0)?-1.0:1.0;if(m==0){sign=(s<0.0)?-1.0:1.0;}}if(d<0)d=d*(-1.0);if(m<0)m=m*(-1.0);if(s<0)s=s*(-1.0);e=sign*(d*3600+m*60+s)*PI/(3600*180);return e;}void r(double dd){int de;int d,m;double s;double sign=(dd<0.0)?-1.0:1.0;if(dd<0)dd=fabs(dd);dd=dd*3600*180/PI;de=int(dd/3600);d=sign*de;dd=dd-de*3600;m=int(dd/60);s=dd-m*60;printf("%d'%d'%lf'\n",d,m,s);}void n(double b,double l,double l2,double b2,double a,double d,double e,double f) {double u1,m,M,A2,u2,ss,ss1,k,aa,bb,cc,rr,rr0,B2,L2,m0,A10,A1,S;double aa2,bb2,cc2,k2,ll;u1=atan(sqrt(1-e)*tan(b));u2=atan(sqrt(1-e)*tan(b2));ss=acos(sin(u1)*sin(u2)+cos(u1)*cos(u2)*cos(l2-l));m0=asin(cos(u1)*cos(u2)*sin(l2-l)/sin(ss));rr0=l2-l+0.003351*ss*sin(m0);k2=e*cos(m0)*cos(m0);aa2=(e/2+e*e/8+e*e*e/16)-e*(1+e)*k2/16+3*e*k2*k2/128;ss1=ss+sin(m0)*aa2*ss*sin(m0);m=asin(cos(u1)*cos(u2)*sin(rr0)/sin(ss1));A10=atan(sin(rr0)/(cos(u1)*tan(u2)-sin(u1)*cos(rr0)));if(A10<=0.0)A10=A10+PI;if(m<=0.0)A10=A10+PI;M=atan(sin(u1)*tan(A10)/sin(m));if(M<=0.0)M=M+PI;k2=e*cos(m)*cos(m);aa2=(e/2+e*e/8+e*e*e/16)-e*(1+e)*k2/16+3*e*k2*k2/128;bb2=e*(1+e)*k2/16-e*k2*k2/32;rr=l2-l+sin(m)*(aa2*ss1+bb2*sin(ss1)*cos(2*M+ss1));ss=acos(sin(u1)*sin(u2)+cos(u1)*cos(u2)*cos(rr));A1=atan(sin(rr)/(cos(u1)*tan(u2)-sin(u1)*cos(rr)));if(A1<=0.0)A1=A1+PI;if(m<=0.0)A1=A1+PI;A2=atan(sin(rr)/(-cos(u2)*tan(u1)+sin(u2)*cos(rr)));if(A2<=0.0)A2=A2+PI;if(m>=0.0)A2=A2+PI;k=f*cos(m)*cos(m);aa=sqrt(1+f)*(1-k/4+7*k*k/64-15*k*k*k/256)/a;bb=k/4-k*k/8+37*k*k*k/512;cc=k*k/128-k*k*k/128;S=(ss-bb*sin(ss)*cos(2*M+ss)-cc*sin(2*ss)*cos(4*M+2*ss))/aa;printf("A1=");r(A1);printf("A2=");r(A2);printf("S=%lf",S);}。
样本标准差的表示公式数学表达式:•S—标准偏差(%)•n—试样总数或测量次数,一般n值不应少于20—30个•i—物料中某成分的各次测量值,1~n;[编辑]标准偏差的使用方法•在价格变化剧烈时,该指标值通常很高。
•如果价格保持平稳,这个指标值不高。
•在价格发生剧烈的上涨/下降之前,该指标值总是很低. [编辑]标准偏差的计算步骤标准偏差的计算步骤是:步骤一、(每个样本数据-样本全部数据之平均值)2。
步骤二、把步骤一所得的各个数值相加。
步骤三、把步骤二的结果除以 (n — 1)(“n”指样本数目)。
步骤四、从步骤三所得的数值之平方根就是抽样的标准偏差。
[编辑]六个计算标准偏差的公式[1][编辑]标准偏差的理论计算公式设对真值为X的某量进行一组等精度测量, 其测得值为l1、l2、……l n。
令测得值l与该量真值X之差为真差占σ,则有σl i−X.。
.。
文档交流1 =σ2 = l2−X……σn = l n−X我们定义标准偏差(也称标准差)σ为(1)由于真值X都是不可知的,因此真差σ占也就无法求得, 故式只有理论意义而无实用价值。
[编辑]标准偏差σ的常用估计—贝塞尔公式由于真值是不可知的,在实际应用中, 我们常用n次测量的算术平均值来代表真值。
理论上也证明, 随着测量次数的增多,算术平均值最接近真值,当时,算术平均值就是真值。
.。
.文档交流于是我们用测得值l i与算术平均值之差——剩余误差(也叫残差)V i来代替真差σ,即设一组等精度测量值为l1、l2、……l n则……通过数学推导可得真差σ与剩余误差V的关系为将上式代入式(1)有(2)式(2)就是著名的贝塞尔公式(Bessel).它用于有限次测量次数时标准偏差的计算.由于当时,,可见贝塞尔公式与σ的定义式(1)是完全一致的。
应该指出, 在n有限时, 用贝塞尔公式所得到的是标准偏差σ的一个估计值。
它不是总体标准偏差σ。
因此, 我们称式(2)为标准偏差σ的常用估计。
样本标准差的表示公式数学表达式:•S—标准偏差(%)•n—试样总数或测量次数,一般n值不应少于20—30个•i—物料中某成分的各次测量值,1~n;[编辑]标准偏差的使用方法•在价格变化剧烈时,该指标值通常很高。
•如果价格保持平稳,这个指标值不高。
•在价格发生剧烈的上涨/下降之前,该指标值总是很低. [编辑]标准偏差的计算步骤标准偏差的计算步骤是:步骤一、(每个样本数据-样本全部数据之平均值)2。
步骤二、把步骤一所得的各个数值相加。
步骤三、把步骤二的结果除以 (n — 1)(“n”指样本数目)。
步骤四、从步骤三所得的数值之平方根就是抽样的标准偏差。
[编辑]六个计算标准偏差的公式[1][编辑]标准偏差的理论计算公式设对真值为X的某量进行一组等精度测量, 其测得值为l1、l2、……l n。
令测得值l与该量真值X之差为真差占σ,则有σl i−X.。
.。
文档交流1 =σ2 = l2−X……σn = l n−X我们定义标准偏差(也称标准差)σ为(1)由于真值X都是不可知的,因此真差σ占也就无法求得, 故式只有理论意义而无实用价值。
[编辑]标准偏差σ的常用估计—贝塞尔公式由于真值是不可知的,在实际应用中, 我们常用n次测量的算术平均值来代表真值。
理论上也证明, 随着测量次数的增多,算术平均值最接近真值,当时,算术平均值就是真值。
.。
.文档交流于是我们用测得值l i与算术平均值之差——剩余误差(也叫残差)V i来代替真差σ,即设一组等精度测量值为l1、l2、……l n则……通过数学推导可得真差σ与剩余误差V的关系为将上式代入式(1)有(2)式(2)就是著名的贝塞尔公式(Bessel).它用于有限次测量次数时标准偏差的计算.由于当时,,可见贝塞尔公式与σ的定义式(1)是完全一致的。
应该指出, 在n有限时, 用贝塞尔公式所得到的是标准偏差σ的一个估计值。
它不是总体标准偏差σ。
因此, 我们称式(2)为标准偏差σ的常用估计。