第 8 卷 第 3 期
华北科技学院学报
2011 年 7 月
基于 Matlab 的水准网间接平差程序设计 ①
赵亚红② 周文国
( 华北科技学院土木工程系,北京 东燕郊 101601
)
摘 要: 设计水准网数据结构,存储在文本中,按照水准网的起点、终点、观测数据相对应关系建立矩阵,利
用 Matlab 强大的矩阵运算功能,通过间接平差方法,按照最小二乘原理,求得任意水准网的未知点的最或然
高程值,对平差结果输出存储,程序直观、简便。并用实例验证了其正确性及通用性。
关键词: 水准网; 间接平差; Matlab
中图分类号:P207 + . 2 文献标识码: A 文章编号: 1672 - 7169( 2011) 03 - 0058 - 03
2
1
4
3
; (
水准网间接平差的的具体过程是: (
水准网形进行分析,列误差方程; (
程系数列法方程; (
) 根据
) 根据误差方
) 解算法方程,求参数 X 及
) 求最或然值、精度评定。其中重点是误差
V
方程的列立及误差方程系数矩阵的确定,在大多
数利用 Matlab 计算水准网平差问题的文献中,误
差方程的系数矩阵均为手动输入,不适用于任何
网形,而且对于输出结果没有一定的存储文件,针
对以上存在的缺陷,本文利用 Matlab 强大的矩阵
运算且 易 学 易 懂 等 优 点,通 过 程 序 设 计,利 用
. mat 文件,根据水准网自身数据结构的特点,自
,进行平差计算,最终以文本的
动生成系数矩阵 B
格式输出最终结果,简便快捷,减少了工作量。
1 水准网数据结构的设计
水准网根据其网形可分为附合、闭合和支水
准。其中应用最广的为附合和闭合水准网。不管
何种网形,一条水准路线包括四个数据: 起始点、
高差、距 离、终 点,且 H起 + h高差 = H终
,因 此 在 进
行数据结构的设计中,必须体现出终点、起点从而
判断其与高差关系。在本程序设计中,利用 QD
[],
[]分别表示起点点号、
终点点号、高差、距离、所有点点号所组成的矩阵。
在进行程序设计时,为了简便快捷,利用读入数据
形式,读取所有已知数据,格式如下:
[],
hc
[],
S
[],
DD
ZD
已知点个数 未知点个数 观测值个数
已知点点号 已知点高程
起点点号 终点点号 观测高差 距离值
利用 Matlab 的函数 fopen 语句打开文本文件。针
对不同的网形,只需修改已知数据文件即可。
2 水准网程序设计
根据水准网平差的计算过程,本程序设计的
流程如图 1
图 1 水准网间接平差程序流程图
2. 1 水准网所有点高程确定
在水准网间接平差计算过程中,按照已知点
的个数确定参数个数,有已知点时,参数个数等于
未知点个数,没有已知点时参数个数等于未知点
,但是在进行方程列立时,为了计算方便
个数减 1
首先要求得参数 X 的近似值,但是对于用程序实
收稿日期:
作者简介: 赵亚红(
2011 - 03 - 14
1982 -
①
②
处理。
85
) ,女,河北衡水人,硕士,华北科技学院土木工程系讲师,研究方向: 测绘工程教学、遥感图像及数据
中国煤炭期刊网 www.chinacaj.net
第 3 期
赵亚红等: 基于 Matlab 的水准网间接平差程序设计
现其自动求取近似值比较麻烦,为了 Matlab 实现
运算简单,因此在本程序中,所有未知点的高程起
,通过以下代码实现。
始值均为 0
;
% HH 为 读 取 文 件 中 已 知 点 高 程 矩
HHH = HH
阵,
% zd 总点数,
fori = 1
HHH 为未知点高程
wz 未知点数,
b
:
% 给未知高程点添
;
(
= 0
HHH
)
zd - wz + i
,
加高程零生成 HHH
b 为未知点个数
end
2. 2 水准网误差方程系数矩阵生成
对于水准网间接平差而言,最重要的计算步
骤不外乎误差方程的列立,而对于程序设计重点
和难点就是自动生成误差方程系数矩阵 B 和常
数项 L。在本程序的设计过程中,利用起始点、终
点、高差。距离之间的对应关系,利用循环计算常
,由于水准网比较特殊,系数阵 B 也特殊基
数项 L
本上是 0、1 、- 1 组成的矩阵,根据这一特点利用
对应关系确定其系数阵 B。
,
ZD 存放的是与 DD 相对应的点点号
在 DD 中的索引( 位置) ,通过自定义函数实现,方
便确定 B 与 L。
% QD
:
fori = 1
c
e = QD
(
f = ZD
)
(
L
i
(
) ;
i
) ;
i
= h
(
)
i
(
-
HHH
(
)
f
- HHH
) ) ;
(
e
% 常数项 L
End
% 解求系数矩阵 B
fori = 1
c
:
(
e = be
(
f = en
i
) ;
i
) ;
(
(
)
(
e
,
i1
i
i1 = e -
zd - wz
i2 = f -
zd - wz
) ;
) ;
(
if
HHH
(
B
)
;
= = 0
= - 1
)
end
(
if
)
(
f
,
i2
i
)
= = 0
;
)
= 1
HHH
(
B
end
end
2. 3 水准网平差计算与结果输出
) 对于水准网平差计算,相对 Matlab 而言。
1
仅需几行代码可以实现
B’* p* l
) ;
% 高
(
) ;
1. / s
% 解权阵
p = diag
(
)
B’* p* B
,
B 系数阵,
x = inv
程改正数 x
*
(
l 为常数项阵
% 观测值改正数
;
v = B* x - l
;
L = h’+ v
(
u0 = sqrt
Qxx = inv
% 高差观测值
(
c - b
) ;
v’* p* v /
(
) ) ;
B’* p* B
(
(
u1 = u0* sqrt
diag
Qxx
) ) ;
% 待定点高
程平差值中误差
;
Qll = B* Qxx* B’
(
(
) ) ;
2
Qll
diag
uu = u0* sqrt
) 结果输出,为了使结果直观,便于查看各
个未知点高程最或然值和其高程平差值中误差,
把结果输出到 . txt 中。利用 Matlab 中的 fopen 函
数打开空文件或建立空文件,利用 fprintf 将计算
结果按照一定的格式输出,
3 实例验证
以参考文献[
]
6
p108 的例题 7-1
,已知 HA =
237. 483
,
B、C、D 未知,观测数据如下存储:
1 3 5
A 237. 483
A B 5. 835 3. 5
A C 9. 640 4. 0
A D 2. 270 2. 5
B C 3. 782 2. 7
D C 7. 384 3. 0
表 1 计算结果对照表
点号 原始高程 程序计算高程(
)
m
文献计算结果(
)
m
2
4
3
0. 0000
0. 0000
0. 0000
243. 3299
239. 7457
247. 1210
243. 330
239. 746
247. 121
程序计算结果与文献结果一致,说名程序设
计正确。
4 结论
在进行平差计算的过程中,最繁琐复杂的莫
过于矩阵运算,尤其是矩阵求逆,本文利用 MAT-
LAB 强大的矩阵运算功能,轻而易举的解决了此
95
中国煤炭期刊网 www.chinacaj.net
第 8 卷 第 3 期
华北科技学院学报
2011 年 7 月
问题,而且其语言简单易懂,在《测量平差》教学
过程中,只要有一点的基础,就可以实现一些复杂
的计算。本文根据数据文件结构,自动读取数据,
按照数据的存储寻找起点、终点、高差之间的对应
关系,列误差方程,计算常数项及系数矩阵,为了
计算方便,把未知点的高程初始值均设为 0
,经过
平差解算其改正数,中误差等,并通过读写文件输
出平差的最终结果,而且本程序适用于任何网形
的水准网,只需对数据文件进行修改即可。另外
对于导线网、三角网在误差方程的构成上与水准
网近似,因此也可以用相同的设计思路进行讨论。
参考文献:
[1] 周建兴,等 . Matlab 从入门到精通[M]. 北京:
人民邮电出版社,2008: 10 - 57
[2] Rafael C. G on zalez. Digital Image Processing
Second Edition[M]. 北 京: 电 子 工 业 出 版 社,
2007: 4 - 35
[3] 赵亚红,郝延锦,等 . Matlab 在测绘工程领域中
的几点 应 用[J]. 地 矿 测 绘,2011,27 ( 1 ) :
38 - 40
[4] 潘雄,付宗堂 . MATLAB 软件在测量平差教学
中的应用[J]. 测绘工程,2007,( 1) : 76 - 78
[5] 聂桂根 . MATLAB 在测量数据处理中的应用
[J]. 测绘通报,2001,( 2) : 39 - 40
[6] 武汉大学测绘学院测量平差学科组 . 误差理
论与测量平差基础[M]. 武汉: 武汉大学出版
社,2003
Indirect Adjustment Programming of Level Net Based on MATLAB
ZHAO Yahong
,
ZHOU Wenguo
(
North China Institute of Science and Technology
,
Yanjiao Beijing-East 101601
)
:
Abstract
On the basis of data structure designed
,
the relation of point s and lines of level net
was output and stored. At last
,
the example proved the programme was right.
:
;
level Net
Indirect Adjustment
;
Matlab
data are st ored in the text
,
the matrixs were set up through the relation of the jupping - off points
data. And a program is designed in MATLAB to get the value of most probable by its strong abilty of calculating matrix. the result
,
the surveying data and the known
,
end - points and the surveying
Key words
06
中国煤炭期刊网 www.chinacaj.net