三次B样条曲线插值的LUTS-PIA算法
LUTS-PIA Algorithm for Cubic B-Spline Curve Interpolation
DOI: 10.12677/AAM.2023.1210415, PDF, HTML, XML, 下载: 141  浏览: 224  科研立项经费支持
作者: 仇佩瑶, 刘仲云:长沙理工大学数学与统计学院,湖南 长沙
关键词: 曲线插值B样条曲线配置矩阵LUTS分裂渐进迭代逼近Curve Interpolation B-Spline Curve Allocation Matrix LUTS Splitting Progressive Iterative Approximation
摘要: 本文研究了三次B样条曲线插值问题。首先,我们将配置矩阵进行下上三角分裂,然后基于该下上三角分裂提出了(Lower Upper Triangular Splitting-Progressive Iterative Approximation) LUTS-PIA算法,并证明了该算法的收敛性。最后,数值实验结果表明:LUTS-PIA算法明显优于(Hermitian and Skew-Hermitian Splitting-Progressive Iterative Approximation) HSS-PIA算法。
Abstract: The cubic B-spline curve interpolation problem is studied in this paper. First, we split the allocation matrix into lower and upper triangular parts called lower upper triangular splitting (LUTS). Based on this LUTS, we propose lower upper triangular splitting-Progressive Iterative Approximation (LUTS-PIA) algorithm and prove its convergence. Finally, we test some numerical experiments which show that LUTS-PIA has a better convergence behavior than the HSS-PIA.
文章引用:仇佩瑶, 刘仲云. 三次B样条曲线插值的LUTS-PIA算法[J]. 应用数学进展, 2023, 12(10): 4216-4223. https://doi.org/10.12677/AAM.2023.1210415

1. 引言

渐进迭代逼近法(PIA) [1] 是曲线插值中一种常用的数值方法,该方法的基本思想是让给定点列作为初始控制顶点序列,构造一条初始混合曲线,通过迭代调整它的控制顶点,使得这条函数曲线或曲面在控制点列与原始数据点列之间逼近。该方法具有清晰的几何意义和很强的数值稳定性。更重要的是,避免了求解线性方程组,而且当插值点增加的时候我们只需要部分分量的矫正。然而,当插值点数量增加到一定程度时,由一些归一化全正基(NTP)产生的配置矩阵往往是病态的,得到的配置矩阵并不总是正定的,这促使着研究者们继续深入研究PIA。

为了提高PIA的收敛率,陆利正 [2] 提出了一种加权的PIA (WPIA)。刘晓艳 [3] 和王志好 [4] 基于非均匀B样条配置矩阵的Jacobi分裂和GS分裂,分别提出了Jacobi-PIA和GS-PIA。另外,刘成志等人 [5] 提出了预处理的PIA (PPIA)。最近Hu L等人 [6] 基于归一化全正基配置矩阵Hermitian and Skew-Hermitian (HSS)分裂提出了HSS-PIA。以上方法能明显改进PIA的收敛速度。

本文将研究三次B样条基配置矩阵的LU分裂文献 [7] 中的LUTS-PIA。我们证明了LUTS-PIA算法的收敛性,通过数值实验表明,本文所得的LUTS-PIA算法在具有正对角元严格的或不可约的对角占优矩阵分裂中优于HSS-PIA算法。

2. LUTS-PIA算法

{ b i ( t ) } i = 0 n 为三次B样条基,给定一待插值有序点集 { v i } i = 1 n R 3 其中每个点 v i 都赋予一个参数值 t i 且参数值满足 t 0 < t 1 < < t n ,以 { v i } i = 1 n 这个点列为初始控制点,生成一条初始曲线

γ ( 0 ) ( t ) = i = 0 n w i ( 0 ) b i ( t ) w i ( 0 ) = v i i = 0 , 1 , , n

假定第k次迭代后生成的曲线为

γ ( k ) ( t ) = i = 0 n w i ( k ) b i ( t )

为进行第 k + 1 次迭代,首先计算校正向量

δ i ( k ) = v i γ ( k ) ( t i ) i = 0 , 1 , , n

并令

w i ( k + 1 ) = w i ( k ) + δ i ( k ) i = 0 , 1 , , n

进而得到第 k + 1 次曲线

γ ( k + 1 ) ( t ) = i = 0 n w i ( k + 1 ) b i ( t )

可以得到

w i k + 1 = w i k + v i j = 0 n w j k b j ( t i ) (1)

lim x r k ( t i ) = v i 该方程(1)称为PIA格式,PIA适用于任何归一化全正基(NTP)。

W ( k ) = [ w 0 ( k ) , w 1 ( k ) , , w n ( k ) ] T V = [ v 0 , v 1 , , v n ] T ,则用矩阵形式表示如下:

W ( k + 1 ) = W ( k ) + ( V B W ( k ) )

其中,B等于

[ b 0 ( t 0 ) b 1 ( t 0 ) b n ( t 0 ) b 0 ( t 1 ) b 1 ( t 1 ) b 0 ( t 0 ) b 0 ( t n ) b 1 ( t n ) b n ( t n ) ]

称为配置矩阵,这就是经典的PIA。

实际上,PIA算法在数学上等同于求解配置矩阵方程

B W = V (2)

在本文中,设 B = D + L ^ + U ^ ,其中D是配置矩阵B的对角元组成的矩阵 L ^ U ^ 分别是配置矩阵B的严格下三角部分和严格上三角部分组成的矩阵,因此我们可以将B分裂成

B = L + U (3)

其中, L = D 1 + L ^ U = D 2 + U ^ D = D 1 + D 2

那么,由

B = ( α I + L ) ( α I U ) B = ( α I + U ) ( α I L )

我们就可以得到了B的LUTS并进而可以提出如下的LUTS-PIA。

3. LUTS-PIA算法

可以得到

{ w i ( k + 1 2 ) = w i ( k ) + d i ( k ) , d i ( k ) = ( α I + L ) 1 δ i ( k ) w i ( k + 1 ) = w i ( k + 1 2 ) + d i ( k + 1 2 ) , d i ( k + 1 2 ) = ( α I + U ) 1 δ i ( k + 1 2 ) (4)

其中 δ i k = γ ( k ) ( t ) i = 0 n w i ( k ) b i ( t ) k = 0 , 1 2 , 1 , ,我们称(4)为曲线的LUTS-PIA格式。

W ( k ) = [ w 0 ( k ) , w 1 ( k ) , , w n ( k ) ] T Δ ( k ) = [ δ 0 ( k ) , δ 1 ( k ) , , δ n ( k ) ] T D ( k ) = [ d 0 ( k ) , d 1 ( k ) , , d n ( k ) ] T ,则方程(4)的矩阵形式表示如下:

{ W ( k + 1 2 ) = W ( k ) + D ( k ) , D ( k ) = ( α I + L ) 1 Δ ( k ) W ( k + 1 ) = W ( k + 1 2 ) + D ( k + 1 2 ) , D ( k + 1 2 ) = ( α I + U ) 1 Δ ( k + 1 2 ) (5)

这就是LUTS-PIA算法,它由两个半迭代组成,取代了PIA中每个控制点的迭代长度。

显然,通过直接代换可以有效地得到下三角矩阵 ( α I + L ) 和上三角矩阵 ( α I + U ) 的精确解。

注:我们观察到矩阵 ( α I + L ) ( α I + U ) 能够保持原有矩阵B的稀疏性,而HSS方法中的H和S两个矩阵可能是稠密的,尽管原有矩阵B是稀疏的,可以参见 [8] 。

4. LUTS-PIA算法的收敛性分析

首先介绍一些基本的定义、符号和文中将使用的预备知识。在整篇文章中,我们用 B * 表示所有n维复向量B的共轭转置,用 C n × n 表示所有 n × n 个复矩阵的共轭转置,用 2 表示2-范数。

设矩阵 B = ( b i j ) C n × n

1) B正定,如果 x * B x > 0 对于所有非零的 x C n 都成立,或者等价地,B的Hermitian部分 ( B + B * ) / 2 是Hermitian正定;

2) 如果按行对角占优,则对于 i = 1 , , n | b i i | j = 1 , j i j = n | b i j | ;如果按列对角占优,则对于 j = 1 , , n | b j j | i = 1 , i j i = n | b i j |

3) 如果 | b i i | | b i j | ( i j ) ( | b j j | | b i j | ( i j ) ) 则称B按行(按列)弱对角占优。若式中每一个不等式都是严格不等式(>),则称B按行(按列)严格对角占优;

4) 如果B是按行(按列)不可约的,则B按行(按列)弱对角占优,并且对角占优不等式至少一个i值(一个j值)是严格的。

现在我们讨论LUTS-PIA算法的收敛性。注意到LUTS-PIA算法(5)中是两个半步分裂迭代,可以整合成单步迭代,即从(5)中消去 w ( k + 1 2 ) ,得到以下迭代

w k + 1 = Q α w ( k ) + P α 1 v (6)

其中,

Q α = ( α I + U ) 1 ( α I L ) ( α I + L ) 1 ( α I U ) (7)

并且

P α = 1 2 α ( α I + L ) ( α I + U ) (8)

这个迭代可以看成是分裂 B = P α P α Q α 诱导的。

为了证明(6)的收敛性,我们引入下面的引理。

引理1 设

H ( α ) = ( α I A ) ( α I + A ) 1

如果 A C n × n 是一个正定矩阵,则对于 α > 0 H ( α ) 2 < 1

如果L和U是正定的, Q α 如(6)中定义那样,利用引理1和矩阵谱的相似不变性。则如下

ρ ( Q α ) ( α I L ) ( α I + L ) 1 2 ( α I U ) ( α I + U ) 1 2 σ ( α ) < 1

成立,我们有以下收敛结果。

引理2 设配置矩阵LU分裂为 B = L + U 。如果L和U两个都是正定的,则对于所有 α > 0 ,LUTS-PIA 算法(4)收敛到(2)的唯一解。

一般来说,迭代法求解出使谱半径达到最小的最优参数值 α ,目前还没有研究出求解谱半径达到最小的最优参数值,一般使用使谱半径上界达到最小时的最优参数 α 来近似,为了找出 α 作为 α 的一个粗略估计,我们定义

max λ i λ ( L ) | α λ i α + λ i | max λ j λ ( U ) | α λ j α + λ j | σ ( α )

ρ ( Q α ) σ ( ) ( α I L ) ( α I + L ) 1 2 ( α I U ) ( α I + U ) 1 2 或者 σ ( ) ρ ( Q α ) ,对于任意的 α > 0 ,我们可以把 σ ( α ) 作为 ρ ( Q α ) 的最优 α 的近似。

λ i λ j 是正的,其中 i , j = 1 , 2 , , n ,因此对于任意的 α > 0 ,都有 ρ ( Q α ) < 1 。我们可以看到如果将矩阵L和U的特征值放在一个集合 κ 中,即 κ = [ λ min , λ max ] ,则我们可以将 max λ κ ( α λ ) 2 ( α + λ ) 2 作为 σ ( α ) 的估计,其中 λ min λ max 是矩阵L和U整体特征值的最小值和最大值。

定理3 ρ ( Q α ) 相对于所有的正 α 的最小值在

α = λ min λ max (9)

对应的最小值为

σ ( α ) = ( λ max λ min λ max + λ min ) 2 λ max λ min λ max + λ min

证明:定理3的证明可以由 Bai,Golub和Ng等人 [8] 中的推论2.3得出。

注:我们可以得到使迭代矩阵谱半径 ρ ( Q α ) 的上界最小值 σ ( α ) 的最优参数 α ,即

α = arg min α > 0 σ ( α ) = λ min λ max

但是没有最小谱半径,即

α arg min α > 0 ρ ( Q ( α ) ) α

特别地,相倩等人提出的LU分裂迭代法并没有指定D1和D2的构造。因此,本文给出了一个LU分裂迭代中D1和D2的构造思想,当B是具有正对角元严格的或不可约的对角占优矩阵时,这样的分裂构造使得下三角矩阵L和上三角矩阵U都是正定的。接下来,为了确保L和 U C n × n 是正定的,我们给出D1和D2的构造。矩阵 B = ( b i j ) C n × n 并且 D = diag ( b 11 , , b n n ) ,其中 D 1 = diag ( d 1 , , d n ) ,我们设

d i = 1 2 ( b i i + r i c i )

其中 r i = j = 1 i 1 | b i j | c i = j = 1 i 1 | b j i | ,并且 D 1 = D D 2

众所周知,这类矩阵经常出现在各种各样的领域,包括偏微分方程的数值解、经济学中的生产和增长模型、运筹学中的线性互补问题和随机分析中的马尔可夫链,可以参见 [9] [10] [11] 及其他参考文献。

定理4 设B是一个按行(按列)具有正对角元严格的或不可约的对角占优矩阵,且D1和D2如前面所构造的一样,对任意的 α > 0 ,都有LUTS-PIA算法(4)收敛到方程(2)的唯一解。

证明:根据引理2可以证明L和U是正定的。如果 L ^ U ^ 分别是配置矩阵B的严格下和上三角部分,则

L = D 1 + L ^ U = D 2 + U ^ ,其中 D 1 + D 2 = D

首先,我们观察到配置矩阵的对角项都是正的。根据对配置矩阵B的假设,与对L和U的构造,我们得出 L + L U + U 具有正对角项,并且都是严格或不可约对角占优的。因此, L + L U + U 的所有特征值都是正的,参见 [12] 的定理6.1.10和推论6.2.27。

当矩阵B按列对角占优时

( L + L ) i , i = 2 d i = b i i + r i c i = b i i + j = 1 i 1 | b i j | j = 1 i 1 | b j i | = b i i + ( j = 1 i 1 | b i j | + j = i + 1 n | b j i | ) ( j = 1 i 1 | b j i | + j = i + 1 n | b j i | ) = ( b i i j = 1 , j i n | b j i | ) + j = 1 , j i n | ( L + L ) i , j | > j = 1 , j i n | ( L + L ) i , j |

L + L 是严格的对角占优。

类似地,当矩阵B按行对角占优时

( U + U ) i , i = 2 [ b i i 1 2 ( b i i + r i c i ) ] = b i i + c i r i > j = 1 , j i n | ( U + U ) i , j |

U + U 是严格的对角占优,证毕。

5. 数值实验

在本节中,我们利用三次B样条基文献来证明LUTS-PIA算法求解配置矩阵方程(2)的有效性。为了进行比较,我们还测试了HSS-PIA算法。数值实验在Matlab环境中实现,以待插值点集作为初始的控制顶点集,终止条件为 ε k t o l ,其中,k表示迭代步数,在第k步得到的拟合误差,其定义为

ε k = b A x k b A x 0

当对 α 进行选取时,我们将按照定理3中的公式计算,可以得出 α ,由于数值的特性,得出的 α 并不是精确的最优值。通过数值实验发现,最优的 α 在计算最优值的附近选取。表1中,给出了HSS-PIA算法和LUTS-PIA算法的数值结果,其中,“n”表示矩阵阶数,“ ε ”表示迭代误差,“CPU”表示迭代时间(s),“IT”表示迭代次数。

例1. 螺旋线的参数方程为

{ x = r × cos ( t × ( θ 2 θ 1 ) + θ 1 ) y = r × sin ( t × ( θ 2 θ 1 ) + θ 1 ) z = h × t

刘成志等人提出的三次均匀B样条扩展曲线的渐进迭代逼近法得出配置矩阵与形状参数 λ 有关,当 λ [ 2 , 1 ] 时,迭代矩阵的谱半径随着 λ 的增加而减少,从而当 λ = 1 时,具有最快的收敛速度,可以参见文献 [13] 的定理1。因此,在本文中我们令形状参数 λ = 1 r = 30 h = 50 t [ 0 , 1 ] θ 1 = p i / 6 θ 2 = 20 × p i ,得出配置矩阵。

随着阶数n的增加,其渐进迭代逼近误差、运算时间和迭代次数分别如表1所示。

Table 1. Uniform cubic B-spline helix interpolation

表1. 均匀三次B样条螺旋线插值

注:对于非均匀三次B样条螺旋线插值,如果生成的配置矩阵是广义对角占优的,则直接使用LUTS-PIA算法不能保证该算法的收敛性,如果我们很容易找到一个正对角阵D,使得BD严格对角占优,然后使用上述算法再继续求解。

6. 结论

本文给出了对角占优的矩阵B对角线的一个特殊分裂,分裂能够保持原有矩阵B的稀疏性,提高收敛速度。利用三次B样条基 [10] [14] 来研究LU-PIA算法和HSS-PIA算法的计算复杂度。数值结果表明:无论是收敛速度还是计算复杂度,LU-PIA算法解配置矩阵方程(2.3)的效果都好于HSS-PIA算法。并且,如果配置矩阵B是对称正定的或者Heimitian正定的,HSS-PIA就不能解决Heimitian正定的情况,因为HSS-PIA该算法不存在HSS分裂。

我们的方法可以应用于径向基函数,还可以推广到三次B样条基函数下的曲面插值,曲线(曲面)逼近等求解问题。而最优参数的估计还有待进一步的深入研究。

基金项目

湖南省研究生科研创新项目(CX20220953)。

NOTES

*通讯作者。

参考文献

[1] Lin, H.W., Bao, H.J. and Wang, G.J. (2005) Totally Positive Bases and Progressive Iteration Approximation. Computers and Mathematics with Application, 50, 575-586.
https://doi.org/10.1016/j.camwa.2005.01.023
[2] Lu, L.Z. (2010) Weighted Progressive Iteration Approximation and Convergence Analysis. Computer Aided Geometric Design, 27, 129-137.
https://doi.org/10.1016/j.cagd.2009.11.001
[3] 刘晓艳, 邓重阳. 非均匀三次B样条曲线插值的Jacobi-PIA算法[J]. 计算机辅助设计与图形学学报, 2015, 27(3): 485-491.
[4] 王志好, 李亚娟, 邓重阳. GS-PIA算法的收敛性证明[J]. 计算机辅助设计与图形学学报, 2018, 30(11): 2035-2041.
[5] Liu, C.Z. and Liu, Z.Y. (2020) Progressive Iterative Approximation with Preconditioners. Mathematics, 8, Article 1503.
https://doi.org/10.3390/math8091503
[6] Hu, L., Shou, H. and Dai, Z. (2019) HSS-Iteration-Based Iterative In-terpolation of Curves and Surfaces with NTP Bases. In: Song, H. and Jiang, D., Eds., SIMUtools 2019: Simulation Tools and Techniques, Springer, Cham, 374-384.
https://doi.org/10.1007/978-3-030-32216-8_36
[7] Xiang, Q., Wu, S. and Xu, Y. (2012) Alternating Low-er-Upper Splitting Iterative Method and Its Application in CFD. Journal of Beijing University of Aeronautics and Astro-nautics, No. 7, 953-956.
[8] Bai, Z.Z., Golub, G.H. and Ng, M.K. (2003) Hermitian and Skew-Hermitian Splitting Methods for Non-Hermitian Positive Definite Linear Systems. SIAM Journal on Matrix Analysis and Applications, 24, 603-626.
https://doi.org/10.1137/S0895479801395458
[9] Zhang, C.Y., Yang, Y.Q. and Sun, Q. (2014) Convergence of TTS Iterative Method for Non-Hermitian Positive Definite Linear Systems. Mathematical Problems in Engineering, 2014, Article ID: 328901.
https://doi.org/10.1155/2014/328901
[10] Lin, H.W., Wang, G.J. and Dong, C.S. (2004) Constructing Iterative Non-Uniform B-Spline Curve and Surface to Fit Data Points. Science in China Series: Information Sciences, 47, 315-331.
[11] Bai, Z.Z., Golub, G.H., Lu, L.Z. and Yin, J.F. (2005) Block Triangular and Skew-Hermitian Splitting Methods for Positive-Definite Linear Systems. Siam Journal on Scientific Computing, 26, 844-863.
https://doi.org/10.1137/S1064827503428114
[12] Lin, H.W., Maekawa, T. and Deng, C.Y. (2017) Survey on Geometric Iterative Methods and Their Application. Computers-Aided Design, 95, 40-51.
https://doi.org/10.1016/j.cad.2017.10.002
[13] 蔺宏伟. 几何迭代法及其应用综述[J]. 计算机辅助设计与图形学学报, 2015(4): 582-589.
[14] 刘成志, 韩旭里, 李军成. 三次均匀B样条扩展曲线的渐进迭代逼近法[J]. 计算机辅助设计与图形学学报, 2019, 31(6): 899-910.