利用EXCEL内置函数进行测量平差
摘要:测量数据处理过程中,测量平差是一个重要环节。在平差计算过程中,线性方程的解算比较复杂繁琐。本文利用Excel的内置函数简化了线性方程的解算,并讲述利用Excel内置函数进行测量平差的方法。
关键词:矩阵计算 Excel电子表格 测量平差
在测量过程中,通过各种测量方法所采集得到的原始数据,经常需要根据误差理论对存在的各类误差进行平差处理从而取得最或然结果。而对于偶然误差的处理,则利用最小二乘法准则进行平差的计算,通常都要对误差方程式或条件方程式进行整合处理求得法方程组,然后解算法方程、计算改正数、精度评定等等。一系列计算步骤的进行,如果不用专业软件,而用手工计算去完成测量平差,将是一件很复杂繁琐的事情。以下要阐述的就是利用Excel转置粘贴功能以及矩阵计算的函数MMULT(矩阵乘)、MINVERSE(矩阵求逆),实现测量平差之线性方程组解算的过程。
1 平差的数学模型
为了加快平差解算的作业效率,应该根据实际情况选择适当的数学模型。实际工作中,有两种数学模型得到了较为广泛的应用,即间
接平差模型和条件平差模型;它们的应用公式分别如下所示。
1.1 间接平差
误差方程:V=Bδx+J;J=BX0+B0-L; 法方程:BTPBδx+BTPJ=0;
改正数计算:δx=-(BTPB)-1BTPJ; PVV计算:V-1PV=JTPV+δxTBTPV; 权函数式:δΦ=Fδx;
平差值的权倒数计算:1/PΦ=FT(BTPB)-1F;
公式中各种符号的含义:L为观测向量;P为相应的权阵;B为误差方程的系数矩阵;δx为未知数的改正数;J为常数阵;B0为常数向量;X0为未知数的近似值;F为权函数的系数阵。
1.2 条件平差
条件方程式:AV+W=0;W=AL+A0; 法方程:AP-1ATK+W=0; 改正数计算:V=P-1ATK; PVV计算:V-1PV=-WTK;
权函数式:δΦ=Fδi;
平差值的权倒数计算:1/PΦ=FTP-1F-(AP-1F)T(AP-1AT)-1AP-1F;
公式中各种符号的含义:L为观测向量;P为相应的权阵;A为条件方程的系数矩阵;V为条件改正数;W为条件闭合差;K为法方程联系数矩阵;F为权函数的系数阵。
2 计算方法
不难看出,以上平差计算的数学模型,全都是以矩阵的形式给定的。如果掌握了矩阵计算的方法,所有的计算将迎刃而解。
由于测量计算作业过程中采用不同的数学模型,以及图形条件的多样化,对于误差方程或者条件方程的产生,在本文所述的解算方案当中,还不能自动完成;当然,可以利用Excel中的VBA功能编程处理,但将也给计算者增加了难度。在此仅就手工生成误差方程组或者条件方程组之后,如何使用Excel内置函数进行矩阵计算的方案进行阐述(如图1)。
2.1 数据的输入
将系数矩阵的数据填入电子表格的相应区域中。 2.2 矩阵的转置
(1)选中电子表格中系数矩阵的数据区域,点击右键,选击‘复制’菜单选项。(2)在电子表格中点击系数矩阵数据区域以外的任意单元格,点击右键,选击“选择性粘帖”菜单项。(3)点击“选择性粘帖”菜单项,出现“选择性粘帖”对话框;该对话框有三部分选项,第一部分“粘帖”,选中“全部”选项,第二部分“运算”,选中“无”选项,第三部分选中“转置”选项,单击确定,即可完成系数矩阵数据的转置操作。
2.3 矩阵乘运算
(1)选中电子表格中的空白区域,该区域的行数、列数等于矩阵相乘所得矩阵的行数、列数,点击工具栏中的fx(函数)工具按钮。(2)弹出插入函数的对话框,在该对话框的左边的函数分类中选择“数学与三角函数”,在右边的函数名中选中“MMULT”,单击确定。(3)弹出函数参数输入的对话框,该对话框提示输入两组参数,第一个参数Array1栏中输入第4步骤中转置矩阵区域的行列号,在Array2栏中输入系数矩阵区域的行列号—— 可以不用键盘输入,而用Array*内右端的按钮,回到表格视图中用鼠标涂选表格区域,按一下回车键即可;在表格视图的公式栏应该有“=MMULT(‘转置矩阵区域’:‘系数矩阵区域’)”的描述。(4)同时按住Shift和Ctrl两键,按下回车
键,这时,第1步骤选定的区域内的单元格所显示的结果即为联系方程的系数阵。
2.4 矩阵求逆运算
(1)选中电子表格中的空白区域,其行列数与系数矩阵相同,点击工具栏中的fx工具按钮。(2)在弹出的对话框中左边的函数分类选取“数学与三角函数”,右边选择函数名“MINVERSE”,单击确定。(3)在弹出的参数选择对话框中Array1中输入系数矩阵,在表格视图的公式栏中也应该有“=MINVERSE(系数矩阵区域)”的描述。(4)同时按住Shift和Ctrl两键,按下回车键,第1步骤选定区域内的单元格所显示的结果即为系数矩阵的逆矩阵。熟练掌握上述矩阵计算的步骤、方法,解决测量平差之线性方程组解算的问题就会变得简单、容易了。
3 注意事项
在计算过程中,受Excel软件本身的约束和限制,可能会带来不可预想的结果,因此需要注意一下几个事项:(1)受电子表格列数的限制,Excel最多可以计算有256列的矩阵。若要求解有更多列的矩阵,可以利用分块矩阵的办法,或者VBA语言编程进行解决。(2)改变计算结果的精度,可作以下操作:‘格式’菜单→单元格→数字→数值→小数位数,选定相应的数值即可。若需用双精度计算,设定
利用EXCEL内置函数进行测量平差



