平差实习报告.doc

上传人:laozhun 文档编号:3090114 上传时间:2023-03-10 格式:DOC 页数:21 大小:1.32MB
返回 下载 相关 举报
平差实习报告.doc_第1页
第1页 / 共21页
平差实习报告.doc_第2页
第2页 / 共21页
平差实习报告.doc_第3页
第3页 / 共21页
平差实习报告.doc_第4页
第4页 / 共21页
平差实习报告.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《平差实习报告.doc》由会员分享,可在线阅读,更多相关《平差实习报告.doc(21页珍藏版)》请在三一办公上搜索。

1、课程编号: 课程性质:必修误差理论与测量平差基础课程设计报告学院: 测绘学院 专业: 测绘工程 班级: 学号: 姓名: 至 课程设计题目:(一)、图1为一水准网,A、B、C为已知高程点,为9个待定高程点,第一次观测了图中115条水准路线的高差,各水准路线的观测高差、距离及已知点高程均列于表4,试求(1)1公里高差平差值中误差;(2)各待定点高程平差值及中误差;如果准备加测5段高差1620(图中用虚线表示),(3)试估算平差后各待定点的精度;(4)精度最弱的点发生改变没有;(5)哪一点精度提高得最多。 图1 表1 水准网观测数据线路号观测高差(m)距离(km)线路号观测高差(m)距离(km)11

2、.49570.4112.04160.821.78920.5121.53550.735.20620.7131.74500.842.08530.9142.74340.453.41750.4151.37850.561.20801.0160.676.03730.6170.684.33070.6181.893.65100.6190.8102.51200.3201.2已知点高程:、(二)第二题(一) 分析题目及提出解题所需的模型 所给出的两道题都使用间接平差进行计算,以下是所用的函数模型与误差模型:1. 函数模型 所选用的平差方法是间接平差,间接平差的函数模型就是误差方程,其一般形式为: 通过已知条件可写

3、出B矩阵、L矩阵。 限制条件: 2. 随机模型 间接平差的随机模型为: 第一题可根据水准路线的长度得出权阵P;第二题可根据观测误差得到权阵P。3. 方程的解(参数的解和精度评定) 基础方程及其解: 法方程: 解向量: 精度评定: 计算过程第一题属于水准网平差,先求出个待求高程点的估值,利用高程的附和条件,列出误差方程,得到B矩阵,L矩阵就可方便求解。 第二题在列误差方程时,参数的系数的线性化很重要,这是较易出错的地方。 列出误差方程,根据泰勒展开式可以求得B矩阵。(1) 第一题计算过程:第一题使用编程实现计算,使用C语言编程,采用面向过程的编程方式,先要将所给出的高程网数据做成一个指定排版的t

4、ext文档,以满足程序的读取需要。程序会向指定文件名的文件中写入平差计算后的数据。程序分4各部分,头文件部分,全局变量以及函数的声明部分,main函数不封,函数实现部分。程序声明了一个名为ceduan的结构体数组,该数组中包含高程网中每个测段的起点,终点,测段名,测段高差等信息。函数部分,主要声明的函数的函数有:1 将原始数据写到结果,2近似高程,3建立法方程,4高程平差值计算,5矩阵下标运算符,6代数余子式的构造函数,7求矩阵的逆,8残差计算,9平差结果输出读取数据文件,10初始化变量。共10个函数。近似高程计算主要通过对高程测段的前后点进行判断是否为已知点,如果存在已知点,则用已知点的高程

5、与测段高程差相加减,而得到未知点的高程。矩阵的逆运算使用正定对角阵下三角求逆的算法进行运算。 函数代码如下:#include stdafx.h#include stdio.h#include iostream.h#include #include #include int yzdian=0, zodian=0, gcshu=0; /zoduan水准网点数 /yzdian已知点点数/zodian未知点点数/gcshu观测段数 char *name; double *Nbb; /法方程系数double *l; /自由项 double high200; /点高程数据 highdouble *lx;

6、/高程改正数double *V;double m_mu; /单位权中误差int getpointnum(char *);void printdata(); /将原始数据写到结果中void jsgcjs() ; /近似高程void jlffc() ; /建立法方程 void gcpc(); /高程平差值计算int ij(int ,int ); /矩阵下标运算符double GZHS(double *); /计算代数余子式的构造函数bool qn(double a,int n); /求矩阵的逆double cancha() ; /残差计算void printresult(); /平差结果输出voi

7、d getdata(); /读取数据文件void chushihua(); /初始化变量double dwq=0; /验前单位权中误差 FILE *fp;FILE *resultfp=fopen(e:输出数据.txt,w);struct ceduan /申明一个名为测段的结构体数组 char name1; /name为测段名 int stratp; /起点 int endp; /终点 double L; /高程 double p; /测段长度; /A,B两点也给定点号10,11struct ceduan oceduan40void main() getdata();/进行平差运算 1 计算近似

8、高程值 2建立法方程 3高程平差值计算 4 残差计算 printdata(); jsgcjs(); /近似高程计算 jlffc(); / 组成法方程/处理已知点 for(int i=0;izodian;i+) Nbbij(i,i)=1.0e30; gcpc(); / 高程平差值计算 double pvv=cancha(); / 残差计算 m_mu=sqrt(pvv/(gcshu-(zodian-yzdian); fprintf(resultfp,nn 最小二乘平差结果:n pvv=%-12.8lf,pvv); fprintf(resultfp,n =%lf,m_mu); printresult

9、(); fclose(fp);void printresult() /平差结果输出fprintf(resultfp,nn = 高程平差值及其精度 =n);fprintf(resultfp,n 点名 近似高程 改正数 高程平差值 中误差n);for(int i=0; izodian; i+)fprintf(resultfp,n %5s ,namei); double dx=lxi; double qii=Nbbij(i,i); fprintf(resultfp,%12.4lf%9.4lf%12.4lf%9.4lf, highi-dx,dx,highi,sqrt(qii)*m_mu);fprint

10、f(resultfp,nnn = 观测值平差值及其精度 =n);fprintf(resultfp,n No. 起 点 终 点 观测高差 );fprintf(resultfp, 高差平差值 观测权 中误差n);for(i=0;i=zodian-1;i+)int k1=oceduani.stratp; int k2=oceduani.endp; double qii=Nbbij(k1,k1); double qjj= Nbbij(k2,k2) ; double qij=Nbbij(k1,k2); double ml=sqrt(qii+qjj-2.0*qij)*m_mu; fprintf(resul

11、tfp,n%5d %5s%5s ,i+1,namek1,namek2); fprintf(resultfp,%12.4lf %8.4lf%11.4lf%9.2lf%10.4lf,oceduani.L,Vi,oceduani.L+Vi,oceduani.p,ml); int getpointnum(char *w)/判断一个字符串是否存在于函数的数组中 for(int i=0;izodian;i+) if (namei!=NULL) if (strcmp(w,namei)=0) return i; else int len=strlen(w); namei=new charlen+1; strc

12、py(namei,w); return i; return -1;/数组已满void jsgcjs() /近似高程计算 for(int i=yzdian;izodian;i+)highi=-9999.9; int jj=0; /计算出近似高程的点数 for(int ii=1;ii+) for(i=0;i-9999.0 & highk2=-9999.0) highk2=highk1+oceduani.L; jj+; else if(highk1-9999.0) highk1=highk2-oceduani.L; jj+; if(jj=(zodian-yzdian)break; if(ii(zod

13、ian-yzdian) fprintf(resultfp,nn下列点无法计算出概略高程:n); for(i=0;izodian;i+) if(highi-9999.0) printf(n%s,namei); printf(近似高程无法计算n); fclose(resultfp); exit(0); void jlffc() /建立法方程int t=zodian;for(int i=0; i(t*(t+1)/2); i+) Nbbi=0; for(i=0; it; i+) li=0.0;for(int k=0; kgcshu; k+) int i=oceduank.stratp;int j=oc

14、eduank.endp; double Pk=oceduank.p; double Lk=oceduank.L-(highj-highi); li-=Pk*Lk; lj+=Pk*Lk;Nbbij(i,i)+=Pk; Nbbij(j,j)+=Pk; Nbbij(i,j)-=Pk; void gcpc() /高程平差计算 if(!qn(Nbb,zodian) printf(n法方程系数矩阵降秩!); fclose(resultfp); exit(0); for(int i=0; izodian; i+) double xi=0.0; for(int j=0; j=j)? i*(i+1)/2+j :

15、j*(j+1)/2+i;bool qn(double a,int n) /对矩阵求逆 double *a0=new doublen; for(int k=0;kn;k+) double a00=a0;if(a00+1.0=1.0)delete a0; return false;for(int i=1;in;i+)double ai0 = ai*(i+1)/2;if(i=n-k-1)a0i= -ai0/a00;else a0i= ai0/a00;for(int j=1;j=i;j+)a(i-1)*i/2+j-1=ai*(i+1)/2+j+ai0*a0j; for(i=1;in;i+)a(n-1)

16、*n/2+i-1=a0i;an*(n+1)/2-1=1.0/a00; delete a0;return true;double cancha()double pvv=0.0;for(int i=0;i=yzdian-1;i+) int k1=oceduani.stratp; int k2=oceduani.endp; Vi=highk2-highk1-oceduani.L; pvv+=Vi*Vi*oceduani.p;return(pvv);void getdata() char guodu100; /中间变量,无实际意义 if (fp=fopen(e:高程数据.txt,r)=NULL)pri

17、ntf(n 数据文件不存在,无法打开); fscanf(fp,%d%d%d,&gcshu,&zodian,&yzdian); fscanf(fp,%lf,&dwq); int wzdian=zodian-yzdian;name=new char *zodian;for (int i=0;izodian;i+)namei=NULL; /读取已知点高程,要使用函数判断存在该点点名。 for (i=0;iyzdian;i+) fscanf(fp,%s,guodu); /判断该点是否存在,若存在,返回点号;若不存在分配点号。 int a=getpointnum(guodu); fscanf(fp,%l

18、f,&higha); /读取观测值 for (i=0;igcshu;i+) fscanf(fp,%s,guodu); oceduani.stratp=getpointnum(guodu); if (oceduani.stratp0) fprintf(resultfp,n数据文件出错); fprintf(resultfp,n第%d个高差的起点名为%s,i+1,guodu); fclose(resultfp); exit(0); fscanf(fp,%s,guodu); oceduani.endp=getpointnum(guodu); if (oceduani.endp0)for (int i=

19、0;i0)delete high; delete Nbb; delete l; delete lx; for(int i=0; izodian;i+)if(namei!=NULL)delete(namei);delete name; 本题的运算结果是: 高程平差值及其精度 点名 近似高程 改正数 高程平差值 中误差 A 151.5664 -0.0000 151.5664 0.0000 B 144.5684 0.0000 144.5684 0.0000 C 144.3194 0.0000 144.3194 0.0000 P4 146.0641 -0.0000 146.0641 0.0005 P1

20、 146.3576 0.0011 146.3587 0.0006 P2 148.1494 -0.0004 148.1490 0.0006 P3 145.5274 0.0011 145.5285 0.0007 P5 148.6501 0.0001 148.6502 0.0008 P6 144.9991 -0.0000 144.9991 0.0010 P7 142.4871 -0.0001 142.4870 0.0010 P9 144.5287 -0.0002 144.5285 0.0008 P8 145.9067 0.0002 145.9069 0.0009 观测值平差值及其精度 No. 起 点

21、 终 点 观测高差 高差平差值 观测权 中误差 1 B P4 1.4957 -0.0000 1.4957 2.50 0.0005 2 B P1 1.7892 0.0011 1.7903 2.00 0.0006 3 P1 A 5.2062 0.0015 5.2077 1.43 0.0006 4 P4 P2 2.0853 -0.0003 2.0850 1.11 0.0007 5 P2 A 3.4175 -0.0001 3.4174 2.50 0.0006 6 C P3 1.2080 0.0011 1.2091 1.00 0.0007 7 P3 A 6.0373 0.0006 6.0379 1.67

22、 0.0007 8 C P5 4.3307 0.0001 4.3308 1.67 0.0008 9 P6 P5 3.6510 0.0001 3.6511 1.67 0.0008 10 P7 P6 2.5120 0.0000 2.5120 3.33 0.0006 11 P7 P9 2.0416 -0.0001 2.0415 1.25 0.0008 12 P9 P4 1.5355 0.0001 1.5356 1.43 0.0008 13 C P4 1.7450 -0.0003 1.7447 1.25 0.0005 14 P8 P5 2.7434 -0.0001 2.7433 2.50 0.0006

23、 15 P9 P8 1.3785 -0.0001 1.3784 2.00 0.0007如果加测5段1520测段,其运算果如下,通过对比各个高程点的协因数可以判断该点的精度是否有所提高,加测5段后的运算结果如下:高程平差值及其精度 点名 近似高程 改正数 高程平差值 互协因数 A 151.5664 -0.0000 151.5664 0.0000 B 144.5684 0.0000 144.5684 0.0000 C 144.3194 -0.0000 144.3194 0.0000 P4 146.0641 0.1140 146.1781 0.1673 P1 146.3576 0.3002 146.

24、6578 0.2155 P2 148.1494 -0.7763 147.3731 0.1798 P3 145.5274 0.7037 146.2311 0.2305 P5 148.6501 -0.8320 147.8181 0.3211 P6 144.9991 -0.1452 144.8539 0.6393 P7 142.4871 0.1982 142.6853 0.6403 P9 144.5287 -0.3505 144.1782 0.4946 P8 145.9067 -1.0246 144.8821 0.5006通过比较数据可以看出p7是精度最弱点虽然精度有所提高,但还是精度最低的点,所以

25、精度最弱点没有发生变化,进度提高最多的点是p3点。(二) 导线网平差 导线计算采用的数学模型与误差模型依然为间接平差和最小二乘,导线计算使用EXCEL表格运算,如下表中所表示,通过EXCEL表格计算出近似坐标,近似方位角,以及a,b值,用于列立误差方程。 数学模型 Excel计算的B矩阵附图在报告中,观测值的权:角度的权全部为1,而边的权值如下表所示:1-22-33-44-55-66-77-88-99-1010-110.530451.026610.746530.861761.509430.684510.568891.071590.711650.6747311-1212-1313-03-1616

26、-1515-1414 106-1717-150.695210.88880.7290.758850.583490.791430.862340.721670.998610 - 167.867001 - 235.06735.066-110 - 1151.78351.79710 - 1447.4447.448811 - 1240.50440.502-212 - 1344.88844.885-313 - 049.38349.378-514 - 1561.69861.705715 - 1645.48745.491415 - 1749.88449.885-116 - 341.74741.748117 - 6

27、36.0536.044-62 - 348.22348.22413 - 441.77541.77614 - 523.8523.85115 - 652.59252.588-46 - 763.28163.27747 - 833.59533.658 - 950.58750.59479 - 1053.35553.36611B矩阵的结果如下图所示,各个待定点的数据如下边号 边测长 边长平差值 改正数 各个点的数据点名 x坐标 y坐标 x改正数 y改正数 极值方向 极大值 极小值0306.141194.671000001278.359256.591000002264.472288.792.1259-2.94

28、821156.411.043216.252289.463-0.4697-0.604071637.275.394174.585286.4445.24732.5922138.345.635150.992283.4578.433794.927676318.5856122.53239.2047.7584312.95709548.763.58789.773185.07700000899.791153.006-2.27276.2443041109.532.079124.602108.913-8.0112314.5130312711.894.5810177.737103.951-13.35612.34081

29、5311.687.6511227.32388.991-7.04026.881811.117.2112259.069114.142-3.5974.7797339.546.2113287.321149.020.43541.4959577.223.7314202.327144.543-8.6724915.588931811.7210.2215198.189206.112-5.0618816.22872611.110.3716198.634251.616-2.84391.10984912.99.1317158.44236.2526.573711.0536015.879.76各个待定点的中误差为:234

30、5689106.59.0510.069.939.469.7512.7413.961112131415161713.248.137.2212.0418.0115.0114.39平差后最弱边为78边,7-8的相对中误差为1/3521。精度最弱点为15号点,该点的误差椭圆为:该点的误差椭圆参数为:E= 11.1F= 7.21 = 26椭圆图形有matlab画出如右图所示结果的检核平差的目的是对观测值做一定的改正从而得到更为可靠的值,对于平差的成果检核,既是对平差以后的数据进行精度的评定。并对其方法记性讨论。第一题中,在检核过程中,我使用了条件平差的方法,以第一次计算的结果为已知条件,对该题做了又一次计算。1、 数学模型:AV+W=0VTPV=min计算过程及结果共有15个观测值,有9个待定点,故r=n-t=15-9=6。六个条件方程:v6+v7 -17=0v2+v3 -26=0v8-v9-v10+v11+v12-v13 -2=0v9+v10-v11 -v14-v15-5=0-v4-v5+v6+v7 -v13 -25=0v1-v2-v3+v4+v5 +31=0式中闭合差以0.1mm为单位。可以看出,其平差结果的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号