平差实习报告

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

《平差实习报告》由会员分享,可在线阅读,更多相关《平差实习报告(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(resultfp,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+)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号