基于MATLAB的平差程序设计
基于MATLAB的平差程序设计是指使用MATLAB语言来实现水准网的间接平差计算。MATLAB是一种高性能的计算环境,具有强大的矩阵运算功能,非常适合进行水准网的平差计算。
在MATLAB环境中,不需要对创建的变量对象给出类型说明和维数,所有的变量都作为双精度数来分配内存空间,MATLAB将自动地为每一个变量分配内存。这使得用户可以更加方便地进行编程。
本文设计的水准网间接平差程序基于MATLAB语言,利用MATLAB强大的矩阵运算功能,通过间接平差方法,按照最小二乘原理,求得任意水准网的未知点的最或然高程值,并对平差结果输出存储。
水准网间接平差的具体过程包括:(1)根据水准网形进行分析,列误差方程;(2)根据误差方程系数列法方程;(3)解算法方程,求参数X及V;(4)求最或然值、精度评定。在大多数利用MATLAB计算水准网平差问题的文献中,误差方程的系数矩阵均为手动输入,不适用于任何网形,而且对于输出结果没有一定的存储文件。
本文利用MATLAB强大的矩阵运算功能,通过程序设计,利用.mat文件,根据水准网自身数据结构的特点,自动生成系数矩阵B,进行平差计算,最终以文本的格式输出最终结果,简便快捷,减少了工作量。
水准网数据结构的设计是本程序设计的关键之一。水准网根据其网形可分为附合、闭合和支水准。其中应用最广的为附合和闭合水准网。不管何种网形,一条水准路线包括四个数据:起始点、高差、距离、终点,且H起+h高差=H终。因此在进行数据结构的设计中,必须体现出终点、起点从而判断其与高差关系。
在本程序设计中,利用QD、ZD、hc、S、DD分别表示起点点号、终点点号、高差、距离、所有点点号所组成的矩阵。在进行程序设计时,为了简便快捷,利用读入数据形式,读取所有已知数据,格式如下:已知点个数未知点个数观测值个数已知点点号已知点高程起点点号终点点号观测高差距离值。
利用Matlab的函数fopen语句打开文本文件。针对不同的网形,只需修改已知数据文件即可。
本文设计的基于MATLAB的平差程序设计可以对水准网进行快速、准确的平差计算,并将结果输出存储,具有很高的实用价值。