当前位置:文档之家› 基于MATLAB的水准网和测边网平差程序设计

基于MATLAB的水准网和测边网平差程序设计

基于MATLAB的水准网和测边网平差程序设计
基于MATLAB的水准网和测边网平差程序设计

基于MATLAB的水准网和测边网平差程序设计

摘要

MATLAB是目前在研究机构广泛应用的一种数值计算及图形工具软件,它的特点是语法结构简明、数值计算高效、图形功能完备,特别适合非专业编程员完成数值计算、科学试验处理等任务。以往的测量数据处理方法需要编制特定的处理矩阵运算程序,而且程度复杂,难度大。

本文介绍一种基于MATLAB的水准网和测边网的程序设计方法,与其它算法语言相比,具有编程简单,运算速度快的特点。文中分别阐述了水准网和测边网程序的理论基础、实现步骤和运行结果。通过实例的分析,总结出利用MATLAB对测量数据处理有很大的应用价值,它缩短了编程的时间,提高工作效率。

关键词:MATLAB;水准网;测边网;程序设计

ABSTRAC T

MATLAB is one species of numerical-values calculation and graphic tools software which is widely used to apply at research institutions at present. The particularities are: concise grammar-structure、highly efficient in numerical values calculating、complete function of graphs、especially it is adapted to evildoing professional programmer to accomplish the tasks that are numerical-values calculating and scientific experiments treating. The ancient methods of measured data-processing need establishing special proceedings of treating matrices operation, moreover, it is complex and greatly difficult.

This article introduces one programming method dealing with leveling and measuring edge network based on MATLAB. Compared with other algorithm language, it has particularities which are simply programming and quickly operating. The article separately expatiate the theories basics、realizing steps and running results at leveling and measuring edge network. With the analysis of examples, it has prodigious application value in measured data-processing by use of MATLAB. Moreover, it shortens programming time and improves working effectiveness.

Key words:MATLAB;leveling network;measuring edge network;programming

目录

绪论 (4)

1. MATLAB软件简介 (5)

2.MATLAB 在测量平差中的应用 (6)

2.1测量平差原理的概述 (6)

2.2平差程序总体方案 (7)

3.1程序的功能 (8)

3.2水准模型网的间接平差 (8)

3.2.1 “权”值的确定 (8)

3.2.2 水准路线的平差计算 (9)

3.2.3 精度评定 (11)

3.3水准网间接平差程序信息设计 (11)

3.4 水准网程序与使用说明 (12)

3.4.1 水准网程序流程图 (12)

3.4.2 水准网程序的使用 (12)

3.5案例 (13)

4. 测边网平差程序设计 (15)

4.1数学模型 (15)

4.1.1 误差方程和法方程的组成 (15)

4.1.2 边长观测的权 (15)

4.1.3 解算法方程 (16)

4.1.4 精度评定 (19)

4.2 测边网平差信息设计 (20)

4.2.1 主要的技术要求 (21)

4.3利用MATLAB的绘图语句绘制网图 (21)

4.4测边网程序和使用说明 (22)

4.5 程序代码说明: (23)

4.6程序的使用算例 (25)

结论 (29)

致谢 (30)

参考文献 (31)

附录一 (32)

附录二 (36)

附录三 (46)

绪论

作为一名测量技术人员,如果不掌握一门PC机编程语言与便携计算工具,要想提高测量工作的效率几乎寸步难行。测量需求的多样性与复杂性,造就了测量计算鲜明的个性化特点,这就是在商业测量计算软件高度发达的今天,掌握一种实用的程序语言进行编程计算仍有广泛的市场需求的重要原因。

当今较流行的计算机程序语言基本上都是基于Windows的,例如Turbo Pascal,Visual Basic,Visual C,Borland C++等,这些程序语言的优势是基于对象及可利用Windows丰富的系统资源,应用它们可以开发出界面非常丰富和友好的应用程序,其劣势主要有以下几点:

1.Windows程序都非常庞大,学习并熟练掌握它们并非易事。

2.虽然市场上已有的多种专用的测量平差软件都是采用C语言开发的,但这些软件价格都比较贵,而且都带有加密狗,一次只能供一个用户使用。出于商业目的,开发商不会公开程序源代码,这为修改程序功能以适应用户的特殊需求带来了不便。

3.在测量生产中,经常需要根据工程的实际情况进行一些个性化的数值计算工作,这些数值计算工作无固定模式,这就需要求测量技术人员最好能熟练掌握一种适用于数值计算的程序语言,以便提高测量计算的效率。

4.C语言的数值计算语句不够丰富,例如,在测量平差计算中,经常需要进行的矩阵运算,尤其是解法方程的矩阵求逆不能直接使用语句实现,而必须应用计算机算法编程实现。

如果不是基于商业软件开发,只为满足实际测量工作计算需要,则C语言的劣势就变成了MATLAB语言的优势。

东华理大学毕业设计MA TLAB软件简介

1. MATLAB软件简介

MATLAB是从Matrix(矩阵)和Laboratory(实验室)各取前3个字母组成的,意思是矩阵实验室,是美国MathWorks公司于20世纪80年代中期推出的一种交互式、面向对象的科技应用软件,是一个为科学和工程计算而专门设计的高级交互式软件包。MATLAB 集成了图示与精确的数值计算,是一个可以完成各种计算和数据可视化的强有力工具,其优秀的数值计算能力和卓越的数据可视化能力使其很快在数学软件中脱颖而出,成为以矩阵运算为主要工作方式的线性代数、概率论和数理统计、自动控制、数字信号处理、动态系统仿真等领域教学和科研工作者的有力武器。随着该软件自身的发展及市场的需求,其功能日趋完善,前其最高版本7.0版已经推出,随着版本的不断升级,它的数值计算及符号计算功能得到了进一步完善。

MATLAB是以矩阵作为数据操作的基本单位,矩阵的生成、运算、转置、求逆等非常简单。在MATLAB环境中,不需要对创建的变量对象给出类型说明和维数,所有的变量都作为双精度数来分配内存空间,MATLAB将自动地为每一个变量分配内存。MATLAB语言起源于矩阵运算,并已经发展成为一种高度集成的计算机语言,它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。MATLAB系统主要包含5 部分的内容:MATLAB 工作环境、Mablab 数学函数库、MATLAB语言体系、句柄图形、MATLAB应用程序接口(API)。MATLAB系统主要功能包括:数值计算功能、符号计算功能、数据分析和可视化、文字处理功能、SIMULINK动态仿真功能。同时,MATLAB又是开放的,除了内部函数之外,所有的MATLAB 主包文件和各工具包文件都是可读可改的源文件,用户可以作为参考掌握其用法,并可对其修改以适应自己的需要,也可加入自己编写的文件构成新的工具包。例如,随着GPS 的广泛应用,Orion Dynamics and Con2t rol Corporation、Constell Inc. GPSSoft LLC、NavsysCorporation等多家公司都相应开发出了适于GPS数据处理的MATLAB 工具箱。

MATLAB是一个集数值计算、图形管理、程序开发于一体的功能十分强大的系统。将MATLAB应用于测量数据的处理是一件非常有意义的工作。Mo2hamed等曾成功地在MATLAB系统中利用白滤波技术研究动态解算GPS载波相位信号的模糊度问题。因为测量数据的处理特别是测量平差主要应用矩阵运算,而MATLAB又特别易于做矩阵运算,因此,研究开发基于MATLAB的测量平差方法具有极好的应用价值。

2.MATLAB 在测量平差中的应用

测量平差数据处理主要是基于矩阵的运算,常用的矩阵运算主要是矩阵的生成、转置、求逆和矩阵求广义逆等。在MATLAB 环境中,不需要对创建的变量对象给出类型说明和维数,所有的变量都作为MATLAB 中的M 文件的语法与其他的高级语言类似,是一种程序化的编程语言,同时也是一种解释性的编程语言,即逐行解释运行程序,使程序容易调试,计算更为简捷,而且对于平差原理理解和掌握变得更容易。另外,MATLAB 语言与数学语言比较接近,更容易掌握和理解。

2.1测量平差原理的概述

测量平差的函数模型有条件方程和观测方程。以条件方程为函数的模型的最小二乘平差称为条件平差;在条件方程中,根据需要如果还设有一定数量的未知数,则称为附有参数的条件平差;以观测方程为函数模型的最小二乘平差称为间接平差;如果观测方程中的某些参数不独立,则这些不独立参数必然存在一些条件,称这种平差模型为附有条件的间接平差。本文的两个程序都采用间接平差模型。

对于一个实际平差问题,根据所选参数的个数、选什么量为参数以及参数之间是否函数独立,经过仔细推敲可以发现附有条件的间接平差模型本身就是各种经典平差模型的概括模型,其余的经典平差模型,如条件平差模型、间接平差模型、附有未知数的条件平差模型和附有限制条件的条件平差模型都是它的特例。

间接平差的公式汇集: 间接平差模型为

m in T V B X l

V P V ?=-?

?

→??

(2-1)

系数矩阵B 满秩,即rank(B)=t 法方程及解为:

10,(,)T T

b b e b b

e N x

f N

B P B f B P l --=== (2-2)

1bb

e x N

f -= (2-3)

参数的平差值:

0X X x

=+ (2-4)

观测量的平差值:

L L V

=+ (2-5)

单位权中误差:

σ=

(2-6)

平差参数的协方差阵: 2

10

b b

X X

D N σ

-= (2-7)

平差函数的协方差阵: 210

T b b

Q F N

F

φφ

σ

-= (2-8)

2.2平差程序总体方案

MATLAB 号称为全球工程师的共同语言,其语法和C 语言相似,但它有强大的数值计算和绘图功能,这使之在工程应用方面的计算更出色,本文就基于这种程序设计语言环境设计一个控制网平差程序。该程序包含了一个高程控制网平差程序和测边网平差程序。

本程序适用于各种等级的高程网和测边网,程序在设计过程中,始终考虑数据的储存量。因而本程序不储存误差方程的系数和常数项,对待定点数较多的平差网,组成法方程的系数矩阵是个稀疏矩阵,如待定点的编号恰当,法方程的系数会集中在主元系数的两侧形成带状。为减少法方程系数的储存量,只要按行储存下三角阵或按列储存上三角阵中第一个非零系数起的系数,就是通常叫做维变带宽储存方法。

3. 水准网平差程序

3.1程序的功能

本程序适用于二、三、四等水准网平差计算,平差的水准网可以是独立的、也可以是附合网,其主要功能是完成水准网的平差计算和精度评定计算。平差计算采用间接平差法,以归心的观测值为高差,以未知点高程为未知参数。精度评定计算包括计算单位权中误差和每个待定点的高程中误差。

3.2水准模型网的间接平差

3.2.1 “权”值的确定

当在相同的条件下进行水准测量时,其精度是相同的,因而观测结果的可靠性也是同样的。但如果在不同的条件下进行水准测量时,高程的精度就有所不同,此时称为不等精度观测,所求出的未知量的值、高程的最或是值并对其精度进行评定时,就需要“权”了。

由于观测的不等精度,因而观测值的可靠程度不同,求未知量的最或是值时,这样的一个因素就必须考虑了,这个因素是:可靠性大的某观测值,其精度高,对测量的最后结果的影响也就越大。此时用“权”值来表示观测值的可靠程度,那么,“权”值愈大,观测值的可靠程度就愈高。另外,在观测过程中,观测值的中误差愈小,观测结果愈可靠,它的“权”值就愈大。因而,根据中误差来确定“权”值是非常适当的。设以Pi 表示观测值Li 的“权”,m 为中误差,则“权”值的定义为:

(3-1)式中:A 为任意的正常数,在一组观测值中为一个定数。

在实际测量中,通常是观测值的中误差事先并不知道,因而必须先确定观测值的“权”,然后才能求出未知量的最或是值。此时可以利用距离(S)或测站数(N)来确定观测值———高程的“权”。

根据偶然误差传播定律,各观测点高程Hi的中误差mi由测站数Ni确定时,则有:

m (3-2)

i

式中:m 为一组观测值的中误差,为一个定数.

由(3-2-1)、(3-2-2)两式可得:

(3-3)

同样可得出:

(3-4)

式中:C 为定数,i s 为测距.

由(3-3)、(3-4)两式可以得出这样一个结论:当测站观测高差等精度时,观测总高差的“权”与测站数或距离成反比。 3.2.2 水准路线的平差计算

1.附合路线的平差计算

假定在图1 示的A 、B 两水准点之间布设一条水准路线,A 、B 两水准点的高程为已知,分别设为A H 、B H 、1n 、2n ?、C 为中间水准点。假定观测了所有的点的高程,现拟求C 点的高程C H 的最或是值。

C

H 可由水准路线A →C 、B →C 分别观测的高差Δ

A C

h 、Δ

B C

h 计算得出,由此而

得到的观测高程分别设为Hc 1、Hc 2,其值为:

Hc 1=A H +Δ

A C

h ;Hc 2=B H +Δ

B C

h

当Hc 1、Hc 2在不等精度条件下观测得出时,它们的“权”也不同,分别设为Pc 1、

Pc 2,这样C 点的高程C H 的最或是值为:

1122

12

c c c c c c c P H P H H P P -=

+ (3-5)

根据A 点的高程A H ,A →C 水准路线观测的高差ΔA C

h 以及B →C 水准路线观测

的高差Δ

B C

h ,可推算出B 点的观测高程B H 为:

B

H '=A H +Δ

A C

h -Δ

B C

h

水准路线A →B 的高程闭合差为:

h

f =B H '-B H =12c c H H - (3-6)

由(3-6)式得到: 2c H =1c H -h

f

由(3-3)式得到:1

c A C

C P N =

2c B C

C P N =

(A C N 、B C N 分别表示水准路线A →C 、B

→C 的测站数,水准路线A →B 的测站数A B

A C

B C

N N N =+)

将上述表达式代入(3-2-5)式中,得到:

(3-7)

如果以水准路线A →C 的距离B C S 、B →C 的距离B C S 、A →B 的距离A B S (A B A C B C

S S S =+)

来确定高程观测值的“权”值时,同样可以得到:

(3-8)

图3-1 水准路线图 2.闭合路线的平差计算

闭合路线的平差计算原理与附合路线相同,因而(3-7)、(3-8)两式的结论适用于闭合路线的平差计算。

(3) 具有一个结点的水准网的平差计算

如图2所示为具有一个结点的水准网,B ,C ,D ,?为已知高程水准点,B →A ,C →A ,D →A ,?为水准路线,则接点A 的高程最或是值为:

11

22

33

1

1231

n

A i A i

A A A A A A i A

n

A A A A i

i P H

P H

P H

P H

H P P P P ==+++=

=

+++∑

(3-9)

式中123,,A A A H H H 分别为水准路线B →A ,C →A ,D →A ,?计算A 的观测高程,各高程相应的“权”值为123,,A A A P P P

设123,,A A A H H H 的算术平均值为0A H ,各高程观测值与0B H 的差值分别为δA 1,δA 2,δA 3,?,则有:

(3-10)

将(3-10)式代入(3-9)式得到:

(3-11)

当以测站数和距离来确定“权”值时,(3-11)分别可以转化为:

(3-12)

(3-13)

上述结论也可应用于小三角水准网平差计算。

3.2.3 精度评定

单位权中误差:0

σ=

(3-12)

平差参数的协方差阵:

2

10

b b

X X

D N σ

-= (3-13)

平差函数的协方差阵: 210

T

b b

Q F N

F

φφ

σ-= (3-14)

3.3 水准网间接平差程序信息设计

1.数据文件的组织

下面给出一个水准网输入数据文件的例子: 3 3 6(已知点个数、未知点个数、观测值个数) 101 102 103 104 105 106 (点号) 34.788 35.259 37.825 (已知点高程)

104 101 1.625 4.5(起点点号、终点点号、高差观测值、距离观测值) 101 102 -0.418 3.1 105 102 0.714 3.4 102 103 1.243 3.8 106 103 -0.577 4.3

103 101 -0.786 2.5

(其中编号数组未知点在前,已知点在后)

2.水准网平差变量约定

表3-1 变量约定表

变量名说明

ed 已知点个数

dd 未知点个数

sd 总点数

gd 观测值个数

pn 点号

h0 已知点高程

be 起点点号

en 终点点号

h1 高差观测值

s 距离观测值

3.4水准网程序与使用说明

3.4.1 水准网程序流程图

图3-2 水准网流程图

程序的全部代码见附录一。

3.4.2水准网程序的使用

本程序使用MATLAB的矩阵功能计算法方程,在运行程序前首先要有其始数据。其始数据是一文件的形式保存在磁盘中,文件的格式在上文已经说明过,编好文件后,

以后缀名为.TXT的形式保存。执行时在MATLAB命令窗口直接键入文件名即可。3.5 案例

如下图水准网,104、105、106为已知点,101、102、103为待定点,已知点的高程分别为34.788,35.259 ,37.825 。

观测高差和观测路线长度分别为:

h1=1.652, h2=-0.418 ,h3=0.714 ,h4=1.243, h5=-0.577, h6=-0.786.

s1=4.5, s2=3.1, s3=3.4, s4=3.8, s5=4.3, s6=2.5.

图3-3 水准网图

首先编数据文件,命名为data1.txt.

数据的格式如下:

3 3 6

101 102 103 104 105 106

34.788 35.259 37.825

104 101 1.652 4.5

101 102 -0.418 3.1

105 102 0.714 3.4

102 103 1.243 3.8

106 103 -0.577 4.3

103 101 -0.786 2.5

进入MATLAB界面,在命令窗口直接输入level3运行程序。弹出如下窗口

图3-4 数据读入文件

选择data1.txt即可运行出如下结果:

图3-5 计算结果

在图3-5中,分别输出了高程的平差值及精度。结果是一文本的形式保存,用户可对它进行编辑。

4. 测边网平差程序设计

4.1 数学模型

4.1.1 误差方程和法方程的组成

控制网中的观测值为边长,误差方程非零项最多为4个,所以误差方程系数矩阵采用压缩格式进行储存。

可采用以下的方法:

A(m,n)=>A(m,9)

其中,m 为观测值个数,n 为未知点个数的两倍。 改进后的A 阵格式为

i A =(编号

1,系数1,编号2,系数2, 编号4,系数4,常数项)

共9列。即只存储误差方程的4个非零参数系数。

法方程系数阵A N 为对称阵,在存储时,只需要存其上三角部分就可以了。其占用的空间为:

(1)

2

n n su m +=

现有A 阵:

A=(编号1,系数1,编号2,系数2, 编号4,系数4,常数项) 其中偶数项为系数,加上最后的A9为常数项,在组成法方程时,从A2开始分别与剩下的偶数项以及常数项相乘,然后再用A4与剩余的项相乘,一直到A8为止,这样就完成了T

A

N A P A

=的过程。需要注意的是:若A1,A3,A5,A7小于零,则表

示该点已知点,不参与法方程的组成。 4.1.2 边长观测的权

边长观测的精度一般与其长度有关,定权公式为 202

(1,2,,)

i

i

s

s

p i n σσ=

=

式中2i

s σ为所测边长i s 的方差,20σ为任意选定的单位权方差。

为了定权i

s p 必须已知测边的先验方差2i

s σ,但精确的已知是十分困难的,一般采

用厂方给定的测距仪精度,即

i

s

i a b S σ=+

式中,a 为固定误差(单位mm ),b 为比例误差(单位:ppm ),i S 为边长(单

位km )。

4.1.3 解算法方程

由于法方程是对称正定阵,因此,可采用改进的平方根法进行解算。 平方根法是对称正定矩阵非常有效的三角分解方法,设A 为n 阶方阵,如果其所有顺序主子式均不为零,则其存在唯一的分解式: A=LDR

其中

L =2

1

,1

11n n n l l l -?? ?

? ? ? ???

,D=100n d d ??

?

? ???

,R =12

11,1

1n n n r r r -??

?

? ?

? ??

?

由于此住A 对称性,得T

L R

=,又根据A 阵正定的性质,可证明D 均为正数。

现在设

D=1

n d d ?? ?

? ??

?

=d

?

? ? ? ?

d

?? ? ? ?

即 1

12

2

D D D

=

则 1

11

122

2

2()()T

T

T

T

A L D L L D D

L L D

D L L L

==

==

为方便,记为

T

A L L =

称为Cholesky 分解,即正定对称矩阵的平方根分解法。解A X

b

=等阶于求解两个三

角方程组:

L Y b =

和T L X Y

=

在用平方根分解法计算时,需要进行n 次开方运算。为了避免开方,可以直接采用对称正定的T

A

L D L

=分解式对平方根法进行改进。从而解方程组A X

b

=可以按如

下步骤进行:把A 分解成T

A L D L

=,则A X

b

=变成()T L D L X

b

=,即等价于

1

T L Y b

L X D Y -=??=?

由此可以解出X 和Y 。这称为改进的平方根法,在计算中避免了开方运算。

平方根法和改进的平方根法的计算量和存储量比消去法节约近一半,而且不需要选主元,能得到比较精确的数值解。

法方程用改进平方根法解算的过程如下: (1)分解:

1

T

C S

D

S -=

其中

11

111

,n m n m n

S S S

S D S S ????

? ?=

= ? ? ? ??

??

?

11111

112

11

11,111

1,1

1

1n n

n n n m n n n n n n c c S S

s s c

c S s s s s ---?? ? ? ????? ? ? ?= ? ? ? ? ? ?????

? ? ???

1112112122221111

131232131232333311

22

11

22

,,2,,3

j j

j j j j j j j j j j j j j j s c s s s s c s s c j s s s s s s s s s s c s s c j s s s s ==

=-

≥=

+

+=-

-

纯量计算公式为 1

11

1

1,2

ij

i j

ki kj ij k kk

c i s s s c i j s -==??=?

->≥??

(2)求逆

1

R S

-=

111n n n r r R r ?? ?=

? ??

?

由RS=I 得

1

1

121

11

1

2

12

2

2

22

21000100

01n n n n

n n

n n

r r r s s

s r r s s r s ?????? ? ?

? ? ? ??=

? ? ? ? ? ???

?

??

?

纯量计算公式:

1112

1222

111312231333

1111(1)(1)122122333

222423342444

2222(1)(1)21()

(()

(ii ii

n n n n

n n n

n n n n

n n n

r s r s r s r s r s r s r s r s r s r s r s r s r s r s r s r s r s ----=

=--+=

-++=

=--+=

-++=

通式为

11

1,ii ii j ik kj k ij ij r s r s r j i

s -=?=????

?

=-

>???

(3)求积

1

1

1

1()

()T

T

T

Q S

D

S S

D S R D R

----===

1

1

111

11

1n T

n n n n n n

n

r r s r Q R D R r s r r ??????

? ? ?

==

? ? ?

? ? ??

??

???

111112121111

2222221n n n n n n n n

n

n n

n n

n n n n s r s r s r r r r s r s r r r r s r ???? ?

? ? ?= ? ? ? ???

?

?

4.1.4 精度评定

(1) 坐标改正数以及单位权中误差的计算0m 使用上三角一维数组形式存储坐标改正数的公式为:

1

1

1

,1,,i n

i

ji j ij

j j j x q w q

w i n

δ-===--

=∑∑

其中,n=2?dd, i

x 的单位是cm. 平差值:

0X X x =+

写成分量的形式,为

0i i

i X X

x δ=+

如果近似坐标的误差较大,或网形较大,平差的结果不会精确,这时,就需要进行迭 代平差,直到两次平差间互差在允许值内。

由测量平差理论:

σ

=同样可得到单位权中误差:

0m =

其中,m-n 观测个数减去未知点个数;

123,2,[][][]

m m m m n d d S T S T P V V p ll x δω=++=?+-=+ 方向观测的测站数

(2)点位误差椭圆

误差椭圆表示了网中点或点与点之间的误差分布情况如图。在测量工作中,常用的误差椭圆对布网方案作精度分析。绘制误差椭圆只需要三个数据:椭圆长半轴a ,短半轴b 和主轴方向φ,其求法为

2

22222

221(22,tan 21(2

x

y

xy

x

y

x

y

a b σσσ

σ

σ

σ

?

=++??=

?-?=

+-

??

图4-1 误差椭圆的表达

顾及方差与权倒数的关系,得

2

2

2

2

()22

,t a n 2()2

x x y y

x y xy xx yy

xx yy a Q Q

Q Q Q b Q Q σ?σ?

=

++??=

?-?=

+-??

根据上述的理论,我们实际要求的是xi m 、yi m 、xiyi m 。只要得到了这些元素,就能依照上面的公式来求得椭圆的元素了。 4.2

测边网平差信息设计

外业测量的数据首先应进行预处理,包括测站平差、归心计算、观测值归化到椭球面的改正、椭球面归化到高斯平面的改正等,然后将预处理后的数据输入到以后缀名为TXT 的文本文件中,该数据文件的组织格式如下所列:

表4-1 数据组织格式

次序 内容

1 已知点个数ed,未知点个数dd,[控制参数]

2 点号pn 。先输入已知点编号,各点输入顺序无要求

3 已知点坐标,x0,y0,x1,y1,x2,y2…

4 测量边的个数m1

5 边长的固定误差ms,边长的比例误差pp 。单位分别是:cm 和×0.000001

6 边长的起始点号e,终点点号d,边长sid 。每一条边一行,依次列出

7 推算近似坐标的路线经过的边数

8 推算近似坐标的起算已知点坐标(按顺时针) 9

推算近似坐标的路线经过的边的边号

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

《测绘程序设计(https://www.doczj.com/doc/dc17646319.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) {

水准网按条件平差算例

在图 表9-1 试求: (1)1P 、2P 及3P 点高程之最或然值; (2)1P 、2P 点间平差后高差的中误差。 解:(1)列条件方程式,不符值以“mm ”为单位。 已知3,7==t n ,故437=-=r ,其条件方程式为 ??? ? ???=--+=-+--=-+--=++-01030707742643765521v v v v v v v v v v v v (2)列函数式: 555v h x F +== 故 15=f 0764321======f f f f f f (3)组成法方程式。 1)令每公里观测高差的权为1,按1/i i s p =,将条件方程系数及其与权倒数之乘积填于表9-2中。 2)由表9-2数字计算法方程系数,并组成法方程式:

????????????----------5221251021411013????????????d c b a k k k k +????? ???????---1377=0 表9-2 条件方程系数表 (4)法方程式的解算。 1)解算法方程式在表9-3中进行。 2)[]pvv 计算之检核。 [][]wk pvv -= []467.35=-wk 由表9-3中解得[]47.35-=pvv ,两者完全一致,证明表中解算无误。 (5)计算观测值改正数及平差值见表9-4。 (6)计算321,,P P P 点高程最或然值。 359.3611=+=x H H A P m 012.3722=+=x H H A P m

表9-4 改正数与平差值计算表 (7)精度评定。 1)单位权(每公里观测高差)中误差 2)21,P P 点间平差后高差中误差 mm 0.34 47.35±=±=μmm P m F F 2.252.00.31 ±=±=±=μ

水准网平差(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 =

《测绘程序设计》实验指导书

《测绘遥感程序设计》 实验指导书 (Visual C++.net) (供测绘工程专业用) (2015年修订) 戴吾蛟编 二零一五年三月 中南大学测绘与遥感科学系

前言 测绘遥感程序设计上机实验是学习本门课程的重要环节之一,实验的设置是为了配合课堂教学,使学生熟练掌握和深入理解课堂教学内容,进一步强化测绘程序设计、测量学及测量平差原理的理解,掌握利用Visual C++.net进行常用的测量程序以及控制网的间接平差程序设计。 实验内容 本门课程必做的实验有(在Visual C++.net 2008 环境下): 1.Visual C++.net环境、基本控件及简单程序设计(三角形面积计算) 2.控制结构程序设计(方位角计算、地心坐标至大地坐标转换) 3.数组、指针(多边形面积计算) 4.函数(交会定点函数设计、高斯投影正反算程序设计) 5.类的创建(大地四边形类设计、角度类设计) 6.文件(Cass测量数据整理) 7.图形程序设计(位移序列曲线图形程序设计) 8.常用测量计算(无定向导线简易计算程序设计) 9.平差程序设计(水准网间接平差程序设计) 修订说明:由于2012版培养方案增加了8课时,实验课时也相应增加了4课时。为此,本实验指导书将高斯投影正反算提前,并要求以函数的形式编写。增加了大地四边形类设计以及无定向导线简易计算程序设计。

实验1 Visual C++.net环境和简单程序设计 一、实验目的 ?掌握Visual https://www.doczj.com/doc/dc17646319.html,的安装和启动。 ?了解VC++ 2008的菜单系统、工具栏和各种基本窗体。 ?理解VC++.net开发应用程序的步骤。 ?掌握基于对话框的程序设计。 ?掌握按钮、文本框和标签框的基本使用方法 ?掌握使用MSDN帮助文档 二、实验内容 1.启动与退出VC++.net,熟悉VC++.net的开发环境,通过向导生成基于对话 框的应用程序。使用MSDN查看命令按钮、标签和文本框的主要属性和方法。 2.打开Microsoft visual studio 2008 文档,浏览“Visual studio 文档”目录下的 内容,并从“Visual studio 文档->Visual C++->示例”目录下下载一个程序,编译并运行之。 3.设计一个已知三边边长计算三角形面积的程序。计算模型如下: 海伦公式:) )( )( (c p b p a p p S- - - =,其中 2c b a p + + = 提示: (1)在【文件】菜单上执行【新建】,然后选择“项目” 。 (2)在【项目类型】窗格中,选择【Visual C++】下的“MFC”项。在【模板】窗格中,选择“MFC 应用程序”模板,输入应用程序名称“××××”。按向导创建名为“×××××”的 MFC应用程序。 (3)在窗体上放置4个文本框、4个静态框、3个命令按钮(其中两个缺省); (4)设置控件属性,如Static1的Caption属性设置成“a=”,用于提示Edit 框的输入边长a;

水准网间接平差程序设计(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);//对称正定矩阵求逆(仅存下三角元素)(参考他人)

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

测绘程序设计实验八水准网平差程序设计报告 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;

测量平差编程

误差理论与测量平差上机指导书 辽宁工程技术大学 测绘与地理科学学院测绘工程系

目录 Visual C++ 6.0开发平台简介 (1) MFC概述 (1) 实验1 矩阵加法与乘法运算 (3) 实验2 矩阵转置与求逆运算 (6) 实验3 误差椭圆元素计算 (13) 实验4 水准网间接平差程序设计 (15)

Visual C++ 6.0开发平台简介 Visual C++提供了一个支持可视化编程的集成开发环境:Visual Studio(又名Developer Studio)。Developer Studio是一个通用的应用程序集成开发环境,它不仅支持Visual C++,还支持Visual Basic,Visual J++,Visual InterDev等Microsoft系列开发工具。Developer Studio包含了一个文本编辑器、资源编辑器、工程编译工具、一个增量连接器、源代码浏览器、集成调试工具,以及一套联机文档。使用Developer Studio,可以完成创建、调试、修改应用程序等的各种操作。 Developer Studio采用标准的多窗口Windows用户界面,并增加了一些新特性,使得开发环境更易于使用,用户很容易学会它的使用方法。 由于Developer Studio是一个可视化的开发工具,在介绍Developer Studio 的各个组成部分之前,首先了解一下可视化编程的概念。可视化技术是当前发展迅速并引人注目的技术之一,它的特点是把原来抽象的数字、表格、功能逻辑等用直观的图形、图象的形式表现出来。可视化编程是它的重要应用之一。所谓可视化编程,就是指:在软件开发过程中,用直观的具有一定含义的图标按钮、图形化的对象取代原来手工的抽象的编辑、运行、浏览操作,软件开发过程表现为鼠标点击按钮和拖放图形化的对象以及指定对象的属性、行为的过程。这种可视化的编程方法易学易用,而且大大提高了工作效率。 Visual C++的集成开发环境Developer Studio提供了大量的实用工具以支持可视化编程特性,它们包括:项目工作区、ClassWizard、AppWizard、WizardBar、Component Gallery等。 MFC概述 MFC是一个编程框架。MFC (Microsoft Foundation Class Library) 中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。

水准网的条件平差

目录 目录 (1) 观测误差 (2) 摘要: (2) 关键词: (2) 引言 (3) 1水准测量 (4) 1.1水准测量的原理 (4) 1.2水准网 (5) 2条件平差 (6) 2.1衡量精度的指标 (6) 2.2条件平差的原理 (8) 3水准网的平差 (14) 3.1必要观测与多余观测 (14) 3.2条件方程 (14) 3.3条件平差法方程式 (14) 3.4条件平差的精度评定 (15) 3.5水准网的条件平差 (18) 致谢 (20) 参考文献 (21)

观测误差 —由观测者、外界环境引起的偶然误差 学生: xxx 指导教师:xxx 摘要: 对一系列带有偶然误差的观测值,采用合理的的方法消除它们间的不符值,得出未知量的最可靠值;以及评定测量成果的精度。 关键词: 偶然误差;观测值;精度

引言 测量工作中,要确定地面点的空间位置,就必须进行高程测量,确定地面点的高程。几何水准测量是高程测量中最基本、最精密的一种方法。通过测量仪器,工具等任何手段获得的以数字形式表示的空间信息,即观测量。然而,测量是一个有变化的过程,受仪器、观测值、外界环境因素的影响,观测的结果与客观上存在的一个能反映其真正大小的数值,即真值(理论值),有一定的差异。可以说在测量中产生误差是不可避免的。所以,观测值不能准确得到,在测量上称这种差异为观测误差。根据其对观测结果影响的性质,可将误差分为系统误差和偶然误差两种。前者可以通过在观测过程中采取一定的措施和在观测结果中加入改正数,消除或减弱它的影响,使其达到忽略不计的程度。但是,观测结果中,不可避免地包含了后者,它是不可消除的,但可以选择较好的观测条件或采用适当的数据处理方法减弱它。现在我们要讨论的就是采用适当的数据处理方法来减弱其对水准测量中的影响。

水准网平差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<<"谢谢使用,矩阵所占空间以释放!"<

结点水准网外业检核及平差计算

结点水准网外业检核及平差计算 如图所示结点水准网,BM1、BM2、BM3为已知水准点,高程分别为 m H 099.971=,m H 065.1002=, m H 475.963=,观测高差和水准路线 长度见下表,试计算A1点的高程平差值及其中误差。 一、三等水准测量外业检核 1、测站限差 等级 水准仪 型号 视距 (m) 前后 视距差 (m ) 前后视距累计差 (m ) 视线高度 黑红面 读数差 (mm) 黑、红面 高差之差 (mm) 三等 DS3 ≤75 ≤2 ≤5 三丝能读数 2.0 3.0 2、测段、附合路线或环线闭合差 测量等级 测段、路线往返测 高差不符值 (mm ) 附合路线或环线闭合差(mm ) 检测已测测 段高差之差 (mm ) 平原 山岭 三等 K 12± L 12± L 15± R 20± h3 h2 h1 S1 S2S3

二、测段外业计算与检核 测 段 实测高差(m) 往返测高差不符值 (mm ) 往返测高差 不符值限差 (mm ) 测段路线 长度均值(km ) 往返测高差 平均值 (m ) 往测 返测 BM1-A1 -0.178 +0.180 +2 ±5 0.240 -0.179 BM2-A1 -3.147 +3.147 0 ±5 0.175 -3.147 BM3-A1 +0.443 -0.442 +1 ±4 0.127 +0.442 三、外业附合路线或闭合路线计算与检核 附合路线 起点高程 (m ) 实测高差(m ) 终点高程 (m ) 路线长度(km ) 闭合差 (mm ) 限差 (mm ) h 1 h 2 BM1- BM2 97.099 -0.179 +3.147 100.065 0.415 +2 ±7 BM1- BM3 97.099 -0.179 -0.442 96.475 0.367 +3 ±7 BM2- BM3 100.065 -3.147 -0.442 96.475 0.302 -1 ±6 终始H h h H f h -++=21 (注意h2方向) 四、待定点高程最或是值及精度计算 路 线 号 起始点 高程 (m ) 实测 高差 (m ) 结点观 测高程 (m ) 路线 长度 (km ) 权 i i S C P = 改正数V (km ) Pvv 1 97.099 -0.179 96.920 0.240 4.1667 - 2 16.6668 2 100.065 -3.147 96.918 0.175 5.714 3 0 0 3 96.475 +0.442 96.917 0.127 7.8740 +1 7.8740 ∑ 17.755 24.5408 结点高程及中 误差 计算 结点高程: [][] P PH H A = 1= 96.918m 改正数:i A A i H H V 11-= 单位权误差:[] 1 ?0-=n pvv σ=±3.50mm 结点高程最或是值中误差:[] P A H 0??1 σ σ ==±0.83mm

水准网平差软件使用说明

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

目录 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、可输出高程控制网测段实测高差数据;

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;

水准网间接平差程序设计(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);//对称矩阵下标计算函数

单一结点或附合的水准路线的精度评定

单一结点或附合的水准路线的精度评定 修涛 Abstract: Measure in the level is different to constitute to shut to match, attach to match because of the route testing with the form of crunode.Therefore is even bad method as well along with different.In Gao Cheng Wang, if the even bad method choice is fitting, can get the effect of half effort and double results.Only this text introduction has a crunode of three or four level routes and an illustrated manual table of level route attaching to match is even to differ.The method has a homework step simple, characteristics easily control, can also satisfy 3, 4 to etc. level to measure at the same time even bad accuracy request. Key word: Level instrument Leveling network Node Precision evaluation Analysis 摘要:在水准测量中,由于施测的路线不同可组成闭合、附合和结点的形式。因此平差方法亦随着不同.在高程网中,如果平差方法选择恰当,可以得到事半功倍的效果.本文仅介绍具有一个结点的三条或四条水准路线和附合的一条水准路线的图解平差。该方法具有作业步骤简单,容易掌握的特点,同时也能满足三、四等水准测量平差的精度要求。 关键词:水准仪水准网结点精度评定分析 一、基本原理(见图1-1) 利用水准仪提供的水平视线读取竖立于两个点上的水准尺上的读数,来测定两点间的高差,再根据已知点高程计算待定点高程。 图1-1 水准测量原理

水准网平差、矩阵运算MFC代码

误差理论与测量平差上机指导书 钱建国张恒憬编写 辽宁工程技术大学 测绘与地理科学学院测绘工程系

目录 Visual C++平差编程实现 (2) 1矩阵加法 (2) 2矩阵乘法 (2) 3 矩阵转置 (4) 4 矩阵求逆 (4) 5 水准网间接平差实例(分组选做) (11) Matlab平差编程实现(分组选做) (19) 1 间接平差 (19)

Visual C++平差编程实现 一、实验名称:解算法方程。 二、实验目的和任务:掌握矩阵加法、乘法与求逆的通用程序的编写。 三、实验要求: 1每人独立编写出矩阵加法与乘法的程序,并上机调试通过; 2采用VC++6.0开发平台,C或者C++语言编写程序; 3写出矩阵运算的结果。 四、实验内容: 1矩阵加法 矩阵加法的示例函数(C语言) void JZjiafa(double a[15][15],double b[15][15],double c[15][15],int m,int n) { for (int i=0;i<=m-1;i++) for(int j=0;j<=n-1;j++) { c[i][j]=a[i][j]+b[i][j]; } return; } 2矩阵乘法 矩阵乘法的示例程序(C语言) #include "stdafx.h" void matrixMultiply(double a[14][15],double b[15][13], double c[14][13],long m,long n,long k) { for (long i = 0; i<= m-1; i++) { for (long j=0; j<=k-1; j++) {

平差课程设计水准网,导线网解算解读

《测量平差课程设计》 设计报告 设计名称:测量平差课程设计 学院名称:矿业工程学院 专业班级:测绘12-2 学生姓名:雷蕾 学号: 2012020782 指导教师:张红华 测绘工程教研室 2014年8月

一.课程设计的目的 《测量平差》是一门理论与实践并重的课程,测量平差课程设计是测量数据处理理论学习的一个重要实践环节,是在学生学习了专业基础理论课《误差理论与测量平差基础》课程后进行的一门实践课程,其目的是增强学生对测量平差基础理论的理解,牢固掌握测量平差的基本原理和公式,熟悉测量数据处理的基本原理和方法,灵活准确地应用于解决各类数据处理的实际问题,并能用所学的计算机基础知识,编制简单的计算程序。 二.课程设计题目内容描述和要求 1.设计的任务 (1)该课的课程设计安排在理论学习结束之后进行的,主要是平面控制网和高程控制网严密平差,时间为一周。 (2)通过课程设计,培养学生运用本课程基本理论知识和技能,分析和解决本课程范围内的实际工程问题的能力,加深对课程理论的理解与应用。 (3)在指导老师的指导下,要求每个学生独立完成本课程设计的全部内容。 2.课程设计要求 2.1基本要求: 测量平差课程设计要求每一个学生必须遵守课程设计的具体项目的要求,独立完成设计内容,并上交设计报告。在学习知识、培养能力的过程中,树立严谨、求实、勤奋、进取的良好学风。 课程设计前学生应认真复习教材有关内容和《测量平差》课程设计指导书,务必弄清基本概念和本次课程设计的目的、要求及应注意的事项,以保证保质保量的按时完成设计任务。 2.2具体设计项目内容及要求: 2.2.1高程控制网严密平差及精度评定 总体思路:现有等级水准网的全部观测数据及网型、起算数据。要求对该水准网,分别用条件、间接两种方法进行严密平差,并检验。进行平差模型的正确性 水准网的条件平差: ①列条件平差值方程、改正数条件方程、法方程;

水准网的间接平差

测量平差基础 实验报告(三) 水准网的条件平差 班级 学号 姓名

实验三水准网的间接平差 一、实验原理 输入矩阵元素—组成法方程—法方程解算—未知数平差值计算—精度计算。 二、实验目的 通过实例水准网间接平差计算,理解水准网间接平差原理,掌握其应用方法,能应用平差软件计算一个实际水准网。 三、主要仪器及耗材 计算机和相应平差软件及打印纸。 四、实验内容和步骤 根据给定的水准网列出误差方程式并完成相应的间接平差计算。 五、实验地点 建测楼测绘机房409 步骤:(1)确定未知数及其个数,列出误差方程,确定观测值权阵,权函数式; (2)输入误差系数阵、自由项矩阵、观测值权阵和未知数近似值阵的元素; (3)根据观测值的平差值进行验证。

间接平差计算质量报告观测值个数n: 8 未知数个数t: 3 多余观测r: 5 已知计算数据一: 已知矩阵B: 1 0 0 -1 0 0 0 0 1 0 0 -1 0 1 0 -1 1 0 0 1 0 0 1 -1 已知矩阵l: -0.006 -0.003

0.003 -0.008 -0.005 已知矩阵P: 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 已知矩阵X0: 11.425 10.36 12.521 已知矩阵L: 1.251 0.852 0.235 -2.311 0.15 -1.062 -1.931 -2.166 全部计算结果: 得到矩阵B的转置 1 -1 0 0 0 -1 0 0 0 0 0 0 1 1 1 1 0 0 1 -1 0 0 0 -1 得到矩阵Nb

基于VB的间接平差程序设计

毕业论文 论文题目基于VB的间接平差程序设计专业班级工程测量 学生姓名黄晓伟 指导教师王克晓 完成时间2015年5月5日 重庆能源职业学院

重庆能源职业学院毕业设计(论文)指导教师评语 评语: 成绩: 指导教师签名: 年 月 日 重庆能源职业学院毕业设计(论文)答辩记录 提 出 问 题 回 答 问 题 正确 基本正确 有一般性错误 有原则性错误 回答不清 1 2 3 4 5 6 答辩委员会评语及建议成绩: 答辩委员会主任: 年 月 日

目录 摘要 (1) 1 引言 (2) 1.1 现状分析 (2) 1.2 目的及意义 (3) 1.3 研究内容 (4) 2 Visual Basic编程语言概述 (5) 2.1 Visual Basic简介 (5) 2.2Visual Basic程序设计简述 (8) 3 间接平差 (25) 4.1 平差软件整体展示 (29) 5算例演算 (32) 5.1水准网间接平差 (32) 6 结论 (34)

测量平差是测绘类专业的一门重要的专业基础课程,是用于观测数据处理的一门应用数学。但是因为其计算量比较大,这变使大家在学习和使用的时候感觉十分头疼。虽然有很多简化了的平差算法,比如高斯约化法,但是这些算法一方面会影响计算精度,另一方面也不能有效的减少计算量。 平差计算是利用最小二乘原理消除观测值与起算数据之间的矛盾,求出各待定元素的平差值并评定精度。而在经典测量平差中,主要研究四种平差模型方程(条件平差、间接平差、附有未知参数的条件平差和附有限制条件的间接平差)的列立和求解,其牵涉到大量的矩阵运算,传统的人工计算工作量很大。随着计算机的出现,矩阵运算就变得轻松,而且计算机的运行速度快,精度高,特别是对于具有大量矩阵运算,计算机轻松解决。前提是要编好相应的程序代码。 本文运用visual basic语言编制了一个平差软件,主要对水准网和附合导线进行了平差的编制和软件程序界面的设计,实现的功能主要有对水准网数据和附合导线数据的平差计算,当然为了平差后能使用数据,本软件还设计了数据输出的功能,使界面更友好,方便用户使用。 关键词:水准网间接平差,visual basic ,visual basic界面设计(GUI)

相关主题
文本预览
相关文档 最新文档