秩亏自由网平差程序设计上机实习

秩亏自由网平差程序设计上机实习
秩亏自由网平差程序设计上机实习

地质工程与测绘学院

实习报告

课程名称:近代测量数据处理与应用

实习名称:秩亏自由网平差程序设计上机实习班级:

学号:

姓名:

指导教师:

实习时间:2013年10月28日

一、 实习目的

1. 理解秩亏自由网平差的函数模型和随机模型;

2. 理解广义逆、最小范数逆、伪逆的概念

3. 学会如何求解最小范数逆和伪逆;

4. 理解秩亏自由网平差数据的处理的一般过程。

5. 加强程序的理解力、使用给定的程序处理数据; 二、 实验基本原理

误差方程

??

?

??=-=-?∧

???P l D l

X A V n u u n n 1

21110)(σ

由最小二乘原理min =PV V T ,可得 1

n n n u 1

u u u ???∧

??=n T

l P A

X N

由于R(N)=R (A )=t

增加约束条件

min =∧

∧X X T

组成新的函数:

求偏导数并令其等于零,得:

为最小范数逆

求解方法有:

1) 最小范数逆法

A. 在法方程系数阵N 的对角线元素加微小量,将秩亏问题转化

为经典自由网平差

B. 采用降秩法求解最小范数逆

--=)(NN N N m Pl A N X T m r -=?)?(2??Pl A X N K X X T T T --=Φ02?2?=-=?Φ

?N K X X

T T Pl A NN N Pl A NN N X Pl

A NN K T T T T r

T

T ---===)()(?)(--=)(NN N N m

2) 伪逆解法

采用满秩分解法求解伪逆

三、 程序操作流程

Pl A N X T +=?)()(N N N NN N N T T T -+=

四、实验结果

(一) 水准网

水准网如图所示,测得观测高差为h 1=12.345m h 2=3.478m h 3=-15.817m

各段路线距离相等(等权),取H 10=0 H 20=12.345m H 30

=15.823m

1)误差方程

V=B*X-l

B=??????????---101110011,l=??????????600 P=????

??????100010001,X0=[ 0 12.345 15.823 ] T

(二)平面网

如图所示的测边自由网(假定各边等权),观测数据如表所示,各点近似坐标给定如下。

1.部分程序截屏:

2.程序运行结果:

五、实验总结

1.秩亏自由网平差建立在经典平差之上,由于平差中R(N)=t

法求的,采用附加条件未知数改正和为最小,通过求解法方程的最小范

数逆、伪逆等求解未知数解;

2.在给定间接平差程序的基础上添加求解伪逆的部分,只是在间接平差基

础上稍作修改;

3.在程序编译运行阶段由于数据类型的错误,导致输出结果有误,解决时

将每一部分的输出结果分别输出,查找错误源。

4.由于没有搞清楚函数形参传递未知数个数还是观测值个数,导致程序运

行错误,根本原因还是对平差比较陌生,通过实习进一步熟悉了平差的

数学模型;

5.通过实习进一步理解了秩亏自由网平差,但还有很多地方不是很清楚,

在以后的的学习中还要加强理解。

测绘程序设计—实验八 水准网平差程序设计报告

《测绘程序设计(https://www.360docs.net/doc/7e14020540.html,)》 上机实验报告 (Visual C++.Net) 班级:测绘0901班 学号:0405090204 姓名:代娅琴 2012年4月29日

实验八平差程序设计基础 一、实验目的 ?巩固过程的定义与调用 ?巩固类的创建与使用 ?巩固间接平差模型及平差计算 ?掌握平差程序设计的基本技巧与步骤 二、实验内容 水准网平差程序设计。设计一个水准网平差的程序,要求数据从文件中读取,计算部分与界面无关。 1.水准网间接平差模型: 2.计算示例:

近似高程计算:

3.水准网平差计算一般步骤 (1)读取观测数据和已知数据; (2)计算未知点高程近似值; (3)列高差观测值误差方程; (4)根据水准路线长度计算高差观测值的权; (5)组成法方程; (6)解法方程,求得未知点高程改正数及平差后高程值; (7)求高差观测值残差及平差后高差观测值; (8)精度评定; (9)输出平差结果。 4.水准网高程近似值计算算法 5.输入数据格式示例

实验代码: #pragma once class LevelControlPoint { public: LevelControlPoint(void); ~LevelControlPoint(void); public: CString strName;//点名 CString strID;//点号 float H; bool flag;//标记是否已经计算出近似高程值,若计算出则为,否则为}; class CDhObs { public: CDhObs(void); ~CDhObs(void); public: LevelControlPoint* cpBackObj;//后视点 LevelControlPoint* cpFrontObj;//前视点 double ObsValue;//高差值 double Dist;//测站的距离 }; #include"StdAfx.h" #include"LevelControlPoint.h" LevelControlPoint::LevelControlPoint(void) {

秩亏自由网平差及其通解

第32卷第2期2010年6月 地球科学与环境学报 Journal of Earth Sciences and Environment Vol.32No.2Jun.2010 收稿日期:2009 07 15 基金项目:国家自然科学基金项目(40672173;40802075) 作者简介:赵超英(1976 ),男,山西平遥人,副教授,工学博士,从事InSAR 理论与数据处理的教学与研究。E mai l:zhaochaoying@https://www.360docs.net/doc/7e14020540.html, 秩亏自由网平差及其通解 赵超英,黄观文 (长安大学地质工程与测绘学院,陕西西安710054) 摘要:通过坐标转换将初始坐标系下的特解转换得到任意坐标系下的通解,研究了秩亏自由网基准转换的实质。结果表明,秩亏自由网平差最优解实质是基于近似值所确定的基准下的最优解,在实际应用中确定合适的基准是关键。以西安地区GP S 沉降监测网为例,不同基准下秩亏解均为该基准下最优解,但只有顾及板块运动的基准才具有物理意义。 关键词:秩亏;自由网平差;基准条件;坐标系;通解 中图分类号:P228.4 文献标志码:A 文章编号:1672 6561(2010)02 0215 03 Rank Defect Free Net Adjustment and Its General Solution ZH AO Chao ying ,H UANG Guan w en (S chool of Ge olog ical E ngineer ing an d Su rv ey ing ,Chang an Unive rsity ,X i an 710054,S haanxi,China) Abstract:T hro ug h transfor ming the par ticular solut ion o f initial coo rdinates to the g ener al solution o f ar bitrar y co or dinate,rank def ect free net adjust ment is analyzed,and the essence of the datum tr ansfor matio n is discussed.T he results sho w t hat the o ptimized solution of rank defect fr ee net adjust ment is t he o ne so lution under t he datum which is calculated by the approx imat ion v alue.In pr act ice,the key problem is to determine t he appro pr iate datum.G PS monito ring netw or k in Xi an is t aken as an example to demonstrate the differ ent o pt imal so lutio ns under differ ent data,w hereas the so lutio ns in plate mo tion ar e physically significant.Key words:rank defect ;fr ee net adjustment;datum condition;co or dinate system;general so lutio n 0 引言 自Messl 提出自由网平差以来[1],其理论研究和应用研究均得到较大的发展,中国学者自20世纪80年代开始对其进行了系统研究 [2 3] 。后来Xu 相继提出了非线性秩亏自由网平差的通解及其应用[4 6],推出不同坐标系以及不同基准下的通解。笔者在介绍秩亏自由网平差通解的基础上,分析了如何将传统自由网平差扩展为各种坐标系、各种基准下的通解。这有助于理解秩亏自由网平差的实质,并在实际应用中通过确定合理的基准从而获取具有物理意义的解。 1 秩亏自由网平差原理 对于非线性大地控制网,观测方程满足 E(L )=F(X ),L =f (X )+ D(L )= 2 0P -1 式中:E ( )为数学期望;D( )为方差; 0为单位权中误差;F ( )、f ( )为非线性函数;X 为初始(任意)坐标系t 维待定坐标向量;L 为n 维观测值向量; 为观测值所含的偶然误差;P 为观测值的权。通常,选定初始坐标系S 0下的一组初始坐标X 0,对观测方程进行线性化得

水准网平差(VB代码)

(误差理论与测量平差础) 课程设计报告 系(部):土木工程系 实习单位:山东交通学院 班级:测绘084 学生姓名:田忠星学号080712420 带队教师:夏小裕﹑周宝兴 时间:10 年12 月13日到10 年12 月19日 山东交通学院

目录: 1.摘要P3 2.概述P3 3.水准网间接平差程序设计思路P3—P4 4. 平差程序流程图P4—P6 5. 程序源代码及说明P7—P23 6. 计算结果P23—P26 7. 总结P26—P27

一:摘要 在测量工作中,为了能及时发现错误和提高测量成果的精度,常作多余观测,这就产生了平差问题。在一个平差问题中,当所选的独立参数X?的个数等于必要观测数t时,可将每个观测值表达成这t个参数的函数,组成观测方程,这种以观测方程为函数模型的平差方法,就是间接平差。 二:概述: 该课程设计的主要目是对水准网进行间接平差,在输入数据后依次计算高程近似值﹑误差方程和平差计算。 三:水准网间接平差程序设计思路 1.根据平差问题的性质,选择t个独立量(既未知点的高程)作为参数X? 2. 将每一个观测量的平差值(既观测的高程差值)分别表达成 3.由误差方程系数B和自由项组成法方程,法方程个数等于参数的个数t ; 4. 解算法方程,求出参数X?,计算参数(高程)的平差值 X?=X0 +x?; 5.由误差方程计算V,求出观测量(高差)平差值6.评定精度 单位权中误差 V L L+ = ∧ V L L+ = ∧

平差值函数的中误差 四:平差程序流程图 1. 已知数据的输入 需要输入的数据包括水准网中已知点数﹑未知点数以及这些点的点号,已知高程和高差观测值﹑距离观测值。程序采用文件方式进行输入,约定文件输入的格式如下: 第一行:已知点数﹑未知点数﹑观测值个数 第二行:点号(已知点在前,未知点在后) 第三行:已知高程(顺序与上一行的点号对应) 第四行:高差观测值,按“起点点号,终点点号。高差观测值,距离观测值”的顺序输入。 本节中使用的算例的数据格式如下 2,3,7 1,2,3,4,5 5.016,6.016 1,3,1.359,1.1 1,4,2.009,1.7 2,3,0.363,2.3 ,?20s u n PV V r PV V T T +-==σ. ???0????σσQ =

水准网间接平差程序设计(C++)

//////////////////////////////////////////////////// // visual C++6.0 编译通过 // //////////////////////////////////////////////////// /////////////////////////////////////////////////// // 参考资料 // // 部分网络资料 // // 宋力杰《测量平差程序设计》 // //连壁《基于matlab的控制网平差程序设计》 // /////////////////////////////////////////////////// #include #include #include #include #include using namespace std; //////////////////////////////////////////////////////////////////////////class class SZWPC { private: int gcz_zs; //高差总数 int szd_zs; //总点数 int yz_szd_zs; //已知点数 double m_pvv; //[pvv] int *qsd_dh; //高差起点号 int *zd_dh; //高差终点号 char **dm; //点名地址数组 double *gcz; //观测值数组 double *szd_gc; //高程值数组 double *P; //观测值的权 double *ATPA,*ATPL; //法方程系数矩阵与自由项 double *dX; //高程改正数、平差值 double *V; //残差 double m_mu; //单位权中误差 public: SZWPC(); ~SZWPC(); int ij(int i,int j);//对称矩阵下标计算函数 bool inverse(double a[],int n);//对称正定矩阵求逆(仅存下三角元素)(参考他人)

实验一 秩亏自由网上机实验

实验一 秩亏自由网上机实验 一、 实验目的 1. 掌握各种秩亏自由网平差的函数模型和随机模型; 2. 熟悉各种秩亏自由网平差解算的若干公式; 3. 结合算例能利用matlab 进行编程计算。 二、 实验内容 在下图水准网中,观测高差、距离和各待定点高程近似值见教材P43表2-1,分别进行下列自由网平差: (1)以6号点为固定点的经典自由网平差; (2)以重心基准的自由网平差(P χ=E ); (3) 以1,2,5,6四个点为拟稳基准的拟稳平差. 解:(1) 5 693583 472662452341531421121∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ -=-=-=-=-=-=-=-=-=X X h X X h X X h X X h X X h X X h X X h X X h X X h . )()(. ......)()(5605 06 991201 0211∧ ∧ ∧ ∧-+-=+-+-=+x x X X V h x x X X V h

可得误差方程为: (2)matlab 进行编程计算 l x B V -=∧ B=[-1 1 0 0 0 ;-1 0 0 1 0;-1 0 0 0 1 ;0 -1 1 0 0 ;0 -1 0 1 0 ... ;0 -1 0 0 0 ;0 0 -1 1 0 ;0 0 -1 0 1 ;0 0 0 0 -1 ]; l=[0;3;4;9;15;2;-12;-21;0]; S=[204.1 188.7 344.8 149.2 142.9 250 128.2 98 196.1]; P=diag(10./S); N=B'*P*B; x=inv(N)*B'*P*l V=B*x-l Qx=inv(N) (2) 首先建立误差方程 l x B V -=∧ B=[-1 1 0 0 0 0;-1 0 0 1 0 0;-1 0 0 0 1 0;0 -1 1 0 0 0;0 -1 0 1 0 0 ... ;0 -1 0 0 0 1;0 0 -1 1 0 0;0 0 -1 0 1 0;0 0 0 0 -1 1]; l=[-1;4;5;8;16;2;-13;-20;-1] S=[204.1 188.7 344.8 149.2 142.9 250 128.2 98 196.1]; P=diag(10./S); S1=[1;1;1;1;1;1]; W=B'*P*l; Xr=inv(B'*P*B+S1*S1')*W V=B*Xz-l Qxr=inv(B'*P*B+S1*S1')-inv(B'*P*B+S1*S1')*S1*S1’*inv(B'*P*B+S1*S1') (3) 首先建立误差方程 l x B V -=∧ B=[-1 1 0 0 0 0;-1 0 0 1 0 0;-1 0 0 0 1 0;0 -1 1 0 0 0;0 -1 0 1 0 0 ... ;0 -1 0 0 0 1;0 0 -1 1 0 0;0 0 -1 0 1 0;0 0 0 0 -1 1]; ?? ? ?? ? ? ?? ???? ? ??????????????---????????????????? ??? ??? ???? ?=∧ 02112215943000011-0 0000000101-00000011-000001000 1-000000101-000000011-00000100 01-000001001-00000 00 11-i i x V

测绘程序设计实验八水准网平差程序设计报告完整版

测绘程序设计实验八水准网平差程序设计报告 Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】

《测绘程序设计》上机实验报告 (Visual C++.Net) 班级:测绘0901班 学号: 04 姓名:代娅琴 2012年4月29日

实验八平差程序设计基础 一、实验目的 巩固过程的定义与调用 巩固类的创建与使用 巩固间接平差模型及平差计算 掌握平差程序设计的基本技巧与步骤 二、实验内容 水准网平差程序设计。设计一个水准网平差的程序,要求数据从文件中读取,计算部分与界面无关。 1.水准网间接平差模型: 2.计算示例:

近似高程计算: 3.水准网平差计算一般步骤 (1)读取观测数据和已知数据; (2)计算未知点高程近似值; (3)列高差观测值误差方程; (4)根据水准路线长度计算高差观测值的权; (5)组成法方程; (6)解法方程,求得未知点高程改正数及平差后高程值; (7)求高差观测值残差及平差后高差观测值; (8)精度评定; (9)输出平差结果。 4.水准网高程近似值计算算法

5.输入数据格式示例 实验代码: #pragma once class LevelControlPoint { public: LevelControlPoint(void); ~LevelControlPoint(void);

public: CString strName;trName=pstrData[0]; m_pKnownPoint[i].strID=pstrData[0]; m_pKnownPoint[i].H=_tstof(pstrData[1]); m_pKnownPoint[i].flag=1;trName=pstrData[i]; m_pUnknownPoint[i].strID=pstrData[i]; m_pUnknownPoint[i].H=0;lag=0;pBackObj=SearchPointUsingID(pstrData[0]);pFrontObj=Sea rchPointUsingID(pstrData[1]);ObsValue=_tstof(pstrData[2]);ist=_tstof(pstrData[3]);trID==ID) {return &m_pKnownPoint[i];} } return NULL; } trID==ID) {return &m_pUnknownPoint[i];} } return NULL; } LevelControlPoint* AdjustLevel::SearchPointUsingID(CString ID) { LevelControlPoint* cp; cp=SearchKnownPointUsingID(ID); if(cp==NULL) cp=SearchUnknownPointUsingID(ID); return cp; } void AdjustLevel::ApproHeignt(void)lag!=1) { pFrontObj->strID==m_pUnknownPoint[i].strID) && m_pDhObs[j].cpBackObj->flag==1 ) { =m_pDhObs[i].cpBackObj->H - m_pDhObs[i].ObsValue;*/ m_pUnknownPoint[i].H=m_pDhObs[j].cpBackObj->H + m_pDhObs[j].HObsValue; m_pUnknownPoint[i].flag=1; break; } } if(m_pUnknownPoint[i].flag!=1)pBackObj- >strID==m_pUnknownPoint[i].strID) && m_pDhObs[j].cpFrontObj->flag==1 ) { =m_pDhObs[j].cpFrontObj->H-m_pDhObs[j].HObsValue;

秩亏自由网平差

秩亏自由网平差的研究 刘 阳 (江苏师范大学,城建学部,江苏 徐州 ) 摘要:秩亏自由网是因为控制网中没有足够的起始数据, 即缺乏基准的平差问题,因此按间接平差进行平 差时, 其误差方程的系数阵 B 不能满足列满秩的要求, 相应的法方程系数阵T bb N B PB 是秩亏阵. 为了求定未知参数的唯一确定解, 除了遵循最小二乘准则外, 还需增加新的基准约束条件 , 从而得到未知参数的唯一确定解. 本文主要利用MATLAB 从传统的测量平差的观点出发, 来计算例题,分析,和论述亏秩自由网平差 之解的性质,讨论了附加矩阵S 的形式了确定的方式,讨论了秩亏自由网平差之解与传统自由网平差之解的关系, 给出了详细的解答过程,并且比较了俩种方法的各自的优缺点,给出总结。 关键词:秩亏自由网;平差;间接平差 Research Rank Defect Free Network Adjustment Liuyang (School of Urban construction and design, Jiangsu Normal University, 221116) Abstract:Rank Defect Free Network control network because of not enough initial data,That lack of adjustment problems benchmark.Therefore, when carried out by indirect adjustment adjustment, the coefficient matrix B error equation does not meet the requirements of full rank.Corresponding normal equation coefficient matrix is rank deficient matrix.In order to find a unique set of unknown parameters to determine the solution, in addition to following the least squares criterion, the need to add a new benchmark constraints, resulting in a unique solution to determine the unknown parameters. The main advantage of MATLAB article from the traditional viewpoint of Surveying Adjustment,Analysis of the nature of the calculation examples, and discusses the loss of rank free net adjustment of the solution,Additional discussion of the form of the S matrix determined, discusses the relationship between solutions of rank defect free network adjustment of the solution with the traditional free network adjustment, the process gives a detailed answer, and compare the two methods of their advantages and disadvantages.Gives summary. Key words: Rank-defect free net adjustment; adjustment; condition comparison 引言 在现代测量数据处理过程中,秩亏自由网平差在近几十年得到了广泛应用,是重要的数据处理方法之一,特别是在变形监测、最优化设计中,秩亏自由网平差都展现出其优势。

水准网平差c++代码

水准网平差 结果 #include #include #include #include #define max 50 class CMatrix { public: CMatrix(){row=0; column=0;}; // 默认构造函数 CMatrix(int i, int j){row=i;column=j;} // 构造函数一 CMatrix(const CMatrix& m); // 复制构造函数 ~CMatrix(void){/*cout<<"谢谢使用,矩阵所占空间以释放!"<

秩亏自由网平差的应用教程文件

秩亏自由网平差的应 用

秩亏自由网平差的应用 一、问题及解决方案 水利工程布设控制网是为测量工作提供依据,在精度上起到控制作用。平面、高程控制网的建立通常情况下需要起算基准。 按规划设计阶段的《水利水电工程测量规范》第2.1.4条要求,建立基本平面控制网时,在长度小于60km的测区或任何长度的狭长带状测区时,可不进行高斯投影,采用任意平面直角坐标系统。第3.1.1条要求,建立基本高程控制网时,对远离国家水准点的地区,引测有困难时,可采用独立高程系统[1]。 也有这种情况:由于时间紧急、未曾获得国家系统数据,而需要先进场开展测量工作。此时,在没有起算数据的情况下,通常的做法是假设起算数据,但这样会导致观测精度相同而平差成果精度却不均匀:即离假设已知点越远,其精度越差。 解决方案:考虑使用秩亏自由网进行严密平差来建立基本平面、高程控制网,使精度均匀,误差按权分配。 二、秩亏自由网平差 1、秩亏自由网

我们知道,间接平差中观测误差方程为[2] : nxl V =^ uxl nxu x B -nxl l (1) 法方程表示为: ^ uxl uxu x N -uxl f = 0 (2) 式中 uxu N =B T PB ,f = B T P l 。 由于缺乏起算基准,误差方程系数矩阵B 非满秩:R (B )= t < u ;法方程系数矩阵N 也非满秩:R (N )= t < u 。 秩亏数d = u – t 等于控制网必要起算数据个数。在常用网中,对于水准网 d = 1;对于边角网 d = 3;对于测角网 d = 4。 为改善奇异性,为平差参数 ^ uxl x 附加d 个基准条件: dxu S T ^ uxl x = 0 (3) 且线性无关,与法方程也线性无关,即: uxd uxu S N = 0,R (S )=d 。 由此秩亏自由网平差模型为: nxl V = ^ uxl nxu x B - nxl l dxu S T ^ uxl x = 0 (4) V T PV = Min 法方程表示为:

秩亏自由网平差程序设计上机实习

地质工程与测绘学院 实习报告 课程名称:近代测量数据处理与应用 实习名称:秩亏自由网平差程序设计上机实习班级: 学号: 姓名: 指导教师: 实习时间:2013年10月28日

一、 实习目的 1. 理解秩亏自由网平差的函数模型和随机模型; 2. 理解广义逆、最小范数逆、伪逆的概念 3. 学会如何求解最小范数逆和伪逆; 4. 理解秩亏自由网平差数据的处理的一般过程。 5. 加强程序的理解力、使用给定的程序处理数据; 二、 实验基本原理 误差方程 ?? ? ??=-=-?∧ ???P l D l X A V n u u n n 1 21110)(σ 由最小二乘原理min =PV V T ,可得 1 n n n u 1 u u u ???∧ ??=n T l P A X N 由于R(N)=R (A )=t

2) 伪逆解法 采用满秩分解法求解伪逆 三、 程序操作流程 Pl A N X T +=?)()(N N N NN N N T T T -+=

MATLAB水准网间接平差课程作业程序

条件平差 A=[1 -1 0 0 1 0 0;0 0 1 -1 1 0 0;0 0 1 0 0 1 1;0 1 0 -1 0 0 0]; Q=diag(s); W=zeros(4,1); W(1)=h(1)-h(2)+h(5); W(2)=h(3)-h(4)+h(5); W(3)=h(3)+h(6)+h(7); W(4)=h(2)-h(4)+H(1)-H(2); W=W.*1000; Naa=A*Q*(A'); K=-1.*inv(Naa)*W; V=Q*(A')*K; L=h'+V./1000; X=zeros(1,3); X(1)=H(1)+L(1); X(2)=H(1)+L(2); X(3)=H(2)-L(7); ZWC=sqrt(V'*inv(Q)*V/4); QLL=Q-Q*A'*inv(Naa)*A*Q; ZWC_h5=ZWC*sqrt(QLL(5,5)); 间接平差 h1=1.359; h2=2.009; h3=0.363; h4=1.012; h5=0.657; h6=0.238; h7=-0.595; H1=5.016 H2=6.016 h=[h1 h2 h3 h4 h5 h6 h7]' s=[1.1 1.7 2.3 2.7 2.4 1.4 2.6]' B=[1 0 0 ;0 1 0; 1 0 0;0 1 0 ; -1 1 0 ; -1 0 1 ;0 0 -1 ] p=diag(1./s) l=[0;0;4;3;7;2;0] W=B'*p*l Nbb=B'*p*B x=inv(Nbb)*W V=(B*x-l) H=h+V/1000 Q=inv(Nbb) n=7;

测绘程序设计—实验八 水准网平差程序设计报告

《测绘程序设计》 上机实验报告 (Visual C++.Net) 班级:测绘0901班 学号: 04 姓名:代娅琴 2012年4月29日 实验八平差程序设计基础 一、实验目的 巩固过程的定义与调用 巩固类的创建与使用 巩固间接平差模型及平差计算 掌握平差程序设计的基本技巧与步骤 二、实验内容 水准网平差程序设计。设计一个水准网平差的程序,要求数据从文件中读取,计算部分与界面无关。 1.水准网间接平差模型: 2.计算示例: 近似高程计算: 3.水准网平差计算一般步骤 (1)读取观测数据和已知数据; (2)计算未知点高程近似值; (3)列高差观测值误差方程; (4)根据水准路线长度计算高差观测值的权;

(5)组成法方程; (6)解法方程,求得未知点高程改正数及平差后高程值; (7)求高差观测值残差及平差后高差观测值; (8)精度评定; (9)输出平差结果。 4.水准网高程近似值计算算法 5.输入数据格式示例 实验代码: #pragma once class LevelControlPoint { public: LevelControlPoint(void); ~LevelControlPoint(void); public: CString strName;trName=pstrData[0]; m_pKnownPoint[i].strID=pstrData[0]; m_pKnownPoint[i].H=_tstof(pstrData[1]); m_pKnownPoint[i].flag=1;trName=pstrData[i]; m_pUnknownPoint[i].strID=pstrData[i]; m_pUnknownPoint[i].H=0;lag=0;pBackObj=SearchPointUsingID(pstrData[0]);pFrontObj=SearchPointUsingI D(pstrData[1]);ObsValue=_tstof(pstrData[2]);ist=_tstof(pstrData[3]);trID==ID) {return &m_pKnownPoint[i];} } return NULL; } trID==ID) {return &m_pUnknownPoint[i];} } return NULL; } LevelControlPoint* AdjustLevel::SearchPointUsingID(CString ID) { LevelControlPoint* cp; cp=SearchKnownPointUsingID(ID); if(cp==NULL) cp=SearchUnknownPointUsingID(ID); return cp; } void AdjustLevel::ApproHeignt(void)lag!=1) { pFrontObj->strID==m_pUnknownPoint[i].strID) && m_pDhObs[j].cpBackObj->flag==1 ) { =m_pDhObs[i].cpBackObj->H - m_pDhObs[i].ObsValue;*/ m_pUnknownPoint[i].H=m_pDhObs[j].cpBackObj->H + m_pDhObs[j].HObsValue; m_pUnknownPoint[i].flag=1;

秩亏自由网平差的应用

秩亏自由网平差的应用 一、 问题及解决方案 水利工程布设控制网是为测量工作提供依据,在精度上起到控制作用。平面、高程控制网的建立通常情况下需要起算基准。 按规划设计阶段的《水利水电工程测量规范》第2.1.4条要求,建立基本平面控制网时,在长度小于60km 的测区或任何长度的狭长带状测区时,可不进行高斯投影,采用任意平面直角坐标系统。第3.1.1条要求,建立基本高程控制网时,对远离国家水准点的地区,引测有困难时,可采用独立高程系统[1]。 也有这种情况:由于时间紧急、未曾获得国家系统数据,而需要先进场开展测量工作。此时,在没有起算数据的情况下,通常的做法是假设起算数据,但这样会导致观测精度相同而平差成果精度却不均匀:即离假设已知点越远,其精度越差。 解决方案:考虑使用秩亏自由网进行严密平差来建立基本平面、高程控制网,使精度均匀,误差按权分配。 二、秩亏自由网平差 1、秩亏自由网 我们知道,间接平差中观测误差方程为[2]: nxl V =^uxl nxu x B -nxl l (1) 法方程表示为: ^ uxl uxu x N -uxl f = 0 (2) 式中 uxu N =B T PB ,f = B T P l 。 由于缺乏起算基准,误差方程系数矩阵B 非满秩:R (B )= t < u ;法方程系数矩阵N 也非满秩:R (N )= t < u 。 秩亏数d = u – t 等于控制网必要起算数据个数。在常用网中,对于水准网 d = 1;对于边角网 d = 3;对于测角网 d = 4。 为改善奇异性,为平差参数 ^uxl x 附加d 个基准条件: dxu S T ^ uxl x = 0 (3) 且线性无关,与法方程也线性无关,即:

通用水准网形秩亏自由网和拟稳平差程序设计

MATLAB设计任何网形的秩亏自由网平差和拟稳平差程序设计长安大学王省超2015.5 程序介绍:程序适合于任何网形的水准网平差,原始数据输入到连个excel表格 程序界面: 原始数据录入表格: (1)DH表 (2)GXLB表

程序代码: function xsz=XSZ(num1,num2)%函数功能提取误差系数A [m1,n1]=size(num1); [m2,n2]=size(num2); n=0; for i=1:m1 %用来判断参数个数if num1(i,2)==1 n=n+0; else n=n+1; end end xsz=zeros(m2,n); %建立系数阵,全为零 for i=1:m2 %提取系数阵 q=num2(i,1); z=num2(i,2); xsz(i,z)=1; xsz(i,q)=-1; end end %---------------常数项L-------------------------------------------------------------- function l=L(num1,num2) [m1,n1]=size(num1); [m2,n2]=size(num2); l=zeros(m2,1); for i=1:m2 %计算l q=num2(i,1); z=num2(i,2); l(i,1)=num2(i,4)-num1(z,4)+num1(q,4); end l=l*1000; %把l从米换算为毫米 end %-------------求平差权阵P------------------------------------------------------------ function p=P1(num1,num2) [m1,n1]=size(num1); [m2,n2]=size(num2); p=zeros(m2,m2); for i=1:m2 p(i,i)=1/num2(i,5); end

水准网间接平差程序设计(C++)

水准网间接平差程序设 计(C++) -CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

//////////////////////////////////////////////////// // visual C++ 编译通过 // //////////////////////////////////////////////////// /////////////////////////////////////////////////// // 参考资料 // // 部分网络资料 // // 宋力杰《测量平差程序设计》 // //姚连壁《基于matlab的控制网平差程序设计》 // /////////////////////////////////////////////////// #include #include #include <> #include<> #include using namespace std; //////////////////////////////////////////////////////////////////////////class class SZWPC { private: int gcz_zs; //高差总数 int szd_zs; //总点数 int yz_szd_zs; //已知点数 double m_pvv; //[pvv] int *qsd_dh; //高差起点号 int *zd_dh; //高差终点号 char **dm; //点名地址数组 double *gcz; //观测值数组 double *szd_gc; //高程值数组 double *P; //观测值的权 double *ATPA,*ATPL; //法方程系数矩阵与自由项 double *dX; //高程改正数、平差值 double *V; //残差 double m_mu; //单位权中误差 public: SZWPC(); ~SZWPC(); int ij(int i,int j);//对称矩阵下标计算函数

水准网平差软件使用说明

电子水准仪数据处理及平差软件 用户操作手册 中铁二院工程集团有限责任公司 二零零九年

目录 1引言 (1) 1.1 编写目的 (1) 1.2 背景 (1) 2软件的功能和性能 (1) 2.1 软件功能和适用范围 (1) 2.1.1软件的主要功能有: (1) 2.1.2软件的主要输出内容包括: (1) 2.2 软件的性能 (2) 3运行环境 (2) 3.1 硬件设备 (2) 3.2 支持软件 (2) 3.3 数据存储 (2) 4软件安装说明 (3) 5“电子水准仪数据处理及平差软件”使用说明 (3) 5.1选择工作路径 (3) 5.2“电水数据处理”菜单 (4) 5.2.1设置转换参数 (4) 5.2.2生成高差文件 (5) 5.2.3生成平差文件 (6) 5.2.4输出观测手簿 (6) 5.3“高程平差处理”菜单 (6) 5.3.1选择平差文件 (7) 5.3.2闭合差计算 (7) 5.3.3网平差处理 (8) 5.4“结果显示”菜单 ........................................................................ 错误!未定义书签。6“电子水准仪数据处理与平差软件”文件说明 (8)

1引言 1.1编写目的 《“电子水准仪数据处理及平差软件”用户操作手册》是高速铁路沉降观测评估软件之一“电子水准仪数据处理及平差软件”的使用说明,能够指导测量技术人员正确使用“电子水准仪数据处理及平差软件”。 1.2背景 为了满足高速铁路线下沉降变形观测与评估的需要,适应铁路施工与评估单位对其数据处理的要求,中铁二院工程集团有限责任公司研制了自主版权的“电子水准仪数据处理及平差软件”。 2软件的功能和性能 2.1软件功能和适用范围 电子水准仪数据处理及平差软件,是专为我国高速铁路线下沉降观测评估而设计的电子水准仪数据处理与高程平差计算软件。 2.1.1软件的主要功能有: 1、根据需要选择工作路径; 2、根据设置生成高差文件; 3、生成平差文件; 4、输出观测手簿; 5、闭合环自动搜索与闭合差计算; 6、网平差处理与成果输出; 2.1.2软件的主要输出内容包括: 1、可输出高程控制网测段实测高差数据;

自 由 网 平 差

自由网平差 班级:测绘0911 学号:姓名:日期: 一、实验分析 (1)实验的目的 1.熟悉广义逆的概念和计算 当观测值之间不存在着函数相关,是满秩的,以间接平差为例,在求解 NX=BTPl的时候,N=BTPB,其秩R(N)=R(BTPB)=R(B)=t,N为非奇异的,存在凯利逆,所以法方程存在唯一的解,称为经典自由网平差,而当网中不设起始数据或不存在必要的起始数据,而且又设网点坐标为待平差参数,误差方程系数阵列亏,这样的平差称为秩亏自由网平差,而这里就引入了广义逆的概念,广义逆是对任何矩阵定义的一种逆矩阵,设A为n*m阵,秩R(A)=γ<=min(m,n),满足方程AGA=A,的G定义为A的广义逆,G为m*n阵,记为A-不唯一,称为A-型广义逆。(仅当A为m=n阶非奇异方阵时,A-1=A-,唯一) 2.了解秩亏自由网平差的原理和方法 秩亏自由网平差的原理: 误差方程式为V=BX-l,权阵P为D=σ02Q=σ02P-1 平差原则: V T PV=min,X T X=min 法方程及其解为 NX=B T Pl X=N M-B T Pl=N(NN)-B T Pl 因N+也满足最小范数逆的两个条件,故N+∈Nm-,其解也可以用N+表达,即有 X=N+B T Pl=N(NN)-N(NN)-NB T Pl, 单位权方差估值仍为σ02=V T PV/f=V T PV/(n-R(B)) X的协因数阵为 Q XX=Nm-B T PQPB(Nm-)T=N(NN)-N(NN)-N=N+ 或者Q XX=N+ B T PQPBN+=N+NN+=N+ 法方程系数阵N的伪逆N+就是参数估值X的协因数阵。由误差方程式,顾及 Q XV=Q-BQ XX B T=Q-BN+B T 秩亏自由网平差的方法: 第一步:求得误差方程:V=BX-l 第二步:组成法方程:NX=B T Pl 第三步:计算N(NN)-和Nm-=N(NN)- 第四步:计算X=Nm-B T l

相关文档
最新文档