传统水深测量涉及到大量离散的、分布不规则的水深数据,针对传统拟合方法计算复杂、速度慢的问题,该文将阵列代数思想应用于测深网格拟合。以双二次多项式拟合为例,建立了阵列代数最小二乘解模型,给出了基于正规方程的双二次矩阵方程的最小二乘解法;给出了改进拟合法实现的基本步骤,最后通过实验数据对反距离加权法、全局多项式法及阵列代数最小二乘拟合方法求得未知点水深的效率及精度进行比较。结果表明,在水深测量中引入阵列代数拟合结果效率要高于另外两种方法,可应用于水深测量数据网格化处理中。 The traditional bathymetric survey involves a large number of discrete, irregularly distributed wa-ter depth data. In order to solve the problem of complex calculation and slow speed of traditional fitting method, the idea of array algebra is applied to the fitting of the sounding grid. The least squares solution of the array algebra is established by taking the biquadratic polynomial fitting as an example, and the least square solution of the quadratic matrix equation with the help of the normal equation is given. Moreover, the paper gives the basic steps to achieve the improved quasi legal, efficiency and accuracy of the experimental data to determine unknown point water depth on the inverse distance weighted method, global polynomial interpolation and least square fitting method of array algebra is compared. The results show that the efficiency of array algebra fitting is better than that of the other two methods, and can be applied to the data processing of hydrology survey.
张瑞辰,刘雁春,边少锋,李厚朴
海军工程大学导航工程系,湖北 武汉
收稿日期:2017年9月8日;录用日期:2017年9月24日;发布日期:2017年9月30日
传统水深测量涉及到大量离散的、分布不规则的水深数据,针对传统拟合方法计算复杂、速度慢的问题,该文将阵列代数思想应用于测深网格拟合。以双二次多项式拟合为例,建立了阵列代数最小二乘解模型,给出了基于正规方程的双二次矩阵方程的最小二乘解法;给出了改进拟合法实现的基本步骤,最后通过实验数据对反距离加权法、全局多项式法及阵列代数最小二乘拟合方法求得未知点水深的效率及精度进行比较。结果表明,在水深测量中引入阵列代数拟合结果效率要高于另外两种方法,可应用于水深测量数据网格化处理中。
关键词 :阵列代数,水深测量,双二次,最小二乘拟合
Copyright © 2017 by authors and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
随着一带一路建设的推进,高效而精确地测量海底地形就显得尤为重要。这就需要将有限的等深线数据,在科学的插值方法下,得到尽可能准确的连续水深数据 [
传统双二次多项式可表示为:
F ( x , y ) = a 00 + a 10 x + a 20 x 2 + a 01 y + a 11 x y + a 21 x 2 y + a 02 y 2 + a 12 x y 2 + a 22 x 2 y 2 (1)
将(1)通过阵列代数的思想变换为矩阵形式:
F ( x , y ) = ∑ i = 0 2 x i ∑ j = 0 2 a i j y j = ( 1 , x , x 2 ) ( a 00 a 01 a 02 a 10 a 11 a 12 a 20 a 21 a 22 ) ( 1 y y 2 ) (2)
线状测深模式是海洋测深的基本作业模式 [
假设取九条主测线,垂直于主测线选择九条检查测线,如图所示。可以得到 9 × 9 个测点 ( x i , y i ) 及对应的水深值 F ( x i , y i ) , ( i = 1 , ⋯ , 9 ) 。则得到:
F 9 × 9 = A 9 × 3 X 3 × 3 B 3 × 9 (3)
对于形如 F = A X B 形式的矩阵方程。设观测阵列方程为式(4),即求其最小二乘解最为关键。
V = A X B − F (4)
图1. 抽象到平面后网状测线
本文用 R m × n 表示所有 m × n 阶实矩阵全体。 A ⊗ B 表示矩阵 A 与 B 的Kronecker乘积,即若 A = ( a i j ) , B = ( b i j ) ,则 A ⊗ B = ( a i j B ) 。 v e c A 表示矩阵 A 的按行拉直,即若 A = [ a 1 T , a 2 T , ⋯ , a m T ] T ,其中 a i 为 A 的行向量,而 v e c A = ( a 1 a 2 ⋯ a m ) T 。
设 A ∈ R m × n , B ∈ R n × m ,考虑线性矩阵方程:
F m × m = A m × n X n × n B n × m (5)
运用Kronecker乘积,方程(5)等价于
[ A ⊗ B T ] ⋅ v e c X = v e c F (6)
从而得到方程(6)的正规方程:
[ A T ⊗ B ] [ A ⊗ B T ] v e c X = A T ⊗ B ⋅ v e c F (7)
由(7)进一步化简得到:
[ A T A ⊗ B B T ] v e c X = ( A T ⊗ B ) ⋅ v e c F (8)
将(8)还原可得:
A T A X B B T = A T F B (9)
由于 A 与 B 均为范德蒙矩阵,所以可知 B B T 与 A T A 皆为可逆矩阵,于是由方程(9)得到其最小二乘解为:
X ^ T = ( B B T ) − 1 B F T A ( A T A ) − 1 (10)
由图2,可以看出,由于 ( B B T ) 3 × 3 为 3 × 3 的矩阵, ( A T A ) 3 × 3 也为 3 × 3 的矩阵,因此,计算速度优于普通的接线性方程组。
为验证插值效率和所构造的双二次插值最小二乘内插模型的性能,取双曲抛物面函数:
f = ( x 0.5 ) 2 + ( y 0.6 ) 2 (11)
写成矩阵形式为:
图2. 阵列代数将大矩阵分解为小矩阵块的过程
f = ( 1 x x 2 ) ( 0 0 4 0 0 0 2.77777 ⋯ 0 0 ) ( 1 y y 2 ) (12)
取 x ∈ [ − 100 , 100 ] 并等分为8份,得到结点 x i ( i = 0 , 1 , ⋯ , 8 ) ;取 y ∈ [ − 100 , 100 ] 并等分为8份,得到结点 y i ( i = 0 , 1 , ⋯ , 8 ) 。可得到样本点 ( x i , y j ) ( i , j = 0 , 1 , ⋯ , 8 ) 。采用基于阵列代数的双二次最小二乘拟合模型进行测试,用时0.010秒,拟合结果如下:
C h e c k − f = ( 1 x x 2 ) ( 6.4 × e − 10 − 2.2 × e − 11 4.0 − 4.4 × e − 12 5.8 × e − 13 − 4.4 × e − 15 2.8 − 9.6 × e − 15 7.3 × e − 17 ) ( 1 y y 2 ) (13)
取 x ∈ [ − 80 , 80 ] 并等分为49份,得到结点 x i ( i = 0 , 1 , ⋯ , 49 ) ;取 y ∈ [ − 100 , 100 ] 并等分为49份,得到结点 y i ( i = 0 , 1 , ⋯ , 49 ) 。可得到检查点 ( x i , y j ) ( i , j = 0 , 1 , ⋯ , 49 ) ,求其拟合精度的公式为:
σ = δ 1 2 + δ 2 2 + ⋯ + δ n 2 n = ∑ i = 1 n δ i 2 n = ∑ i = 1 n ( f i − c h e c k _ f i ) 2 n ( n = 2500 ) (14)
其中, σ 为标准差, f i 为真值, c h e c k _ f i 为拟合值, δ i 为真值 f i 与拟合值 c h e c k _ f i 的差值, n 为试样总数 ( n = 2500 ) , i 为各次拟合值。
由式(14)可得精度结果:
σ = 3.3659 × 10 − 17 (15)
如图3所示,图中曲面为基于阵列代数的双二次插值最小二乘拟合模型及原函数图像的叠加结果图,可以误差很小,肉眼不可见。
用Matlab编程,使用反距离加权插值法(IDW),同样的采样点,当 p = 4 时得到内插标准差较小,标准差为:
σ = 1.49 × 10 − 2 (16)
同时,将内插出的点与原函数点绘制成图,进行比较。可以看出,当权重为4时,内插出的图像有很多小的凹陷,不平整,如图3(b)所示。用Matlab编程得到的反距离加权插值法的插值效果一般,该方法总共需要花费时长为0.209 s,远远超出基于阵列代数的双二次插值最小二乘内插模型的时间。
采用传统不完全双二次函数进行拟合。不完全双二次函数如下式(17)所示。
f ( x , y ) = a 0 + a 1 x + a 2 y + a 3 x y + a 4 x 2 + a 5 y 2 (17)
图3. (a) 本文方法图像与原函数图像对比图(b) IDW( p = 4 )与原函数图像对比图
方法 | 方法用时 | 精度分析 |
---|---|---|
本文方法 | 0.010 | 3.366 × 10 − 17 |
传统不完全双二次最小二乘拟合 | 0.072 | 7.105 × 10 − 17 |
反距离加权插值法 | 0.209 | 1.49 × 10 − 2 |
表1. 三种方法用时与精度比较
用Matlab编程用时为0.072秒,得到的拟合结果为:
f ( x , y ) = a 0 + a 1 x + a 2 y + a 3 x y + a 4 x 2 + a 5 y 2 a 0 = a 1 = a 2 = a 3 = 0 , a 4 = 4 , a 5 = 2.7778 (18)
即:
f ( x , y ) = 4 x 2 + 2.7778 y 2 (19)
标准差为:
σ = 7.105 × 10 − 17 (20)
比较三种方法的用时和精度,可以得到表1。
由表1可以看出,相比较传统双二次多项式最小二乘拟合,基于阵列代数的双二次多项式最小二乘拟合算法能够有效地分解大型稀疏矩阵,不需要复杂的奇异值分解等分解形式,即可求出拟合值,同时具有较好的精度和效率。相比于常用水深内插方法反距离加权插值法,在用时和精度方面,本论文方法都有较大优势。
双二次插值最小二乘内插模型属于整体内插方法,容易受区域内极值的影响,适用于较平缓地区;同时,阵列代数的应用要求所给的数据必须是格网数据。基于阵列代数的双二次插值最小二乘内插模型,将水深测量的大数据块分割成若干小数据块,同时将双二次多项式与最小二乘拟合相结合得出基于正规方程的最小二乘解,一定程度上提高了计算精度,同时有效得提高了计算机的运算效率,减小了计算机存储量,具有非常重要的实用价值。
国家自然科学基金项目(41576105, 41631072)。
张瑞辰,刘雁春,边少锋,李厚朴. 基于阵列代数的测深数据拟合方法Fitting Method of Hydrographic Data Based on Array Algebra[J]. 应用数学进展, 2017, 06(06): 795-800. http://dx.doi.org/10.12677/AAM.2017.66096