基于SOR预条件的全局GMRES方法求解Sylvester矩阵方程
SOR Preconditioned Global GMRES Method for Solving Sylvester Matrix Equations
DOI: 10.12677/aam.2025.1412495, PDF, HTML, XML,    科研立项经费支持
作者: 陈豪杰, 张辰旭, 张鎏玮, 杜智强, 鲍 亮:华东理工大学数学学院,上海
关键词: Sylvester矩阵方程全局GMRESSOR预条件Sylvester Matrix Equations Global GMRES SOR Preconditioning
摘要: Sylvester矩阵方程在控制理论、图像处理及微分方程数值解等领域应用广泛。对于大规模问题,直接求解方法因计算量和存储需求巨大而不再适用。全局GMRES (Generalized Minimal Residual Method)方法是求解此类大规模方程的有效迭代方法。为提升其收敛速度,本文引入了基于SOR (Successive Over-Relaxation)迭代的预条件技术,构建了SOR预条件全局GMRES方法。数值实验表明,与传统的全局GMRES方法相比,新方法能显著减少迭代步数与计算时间,验证了其有效性。
Abstract: The Sylvester matrix equation is widely used in fields such as control theory, image processing, and numerical solutions to differential equations. For large-scale problems, direct solution methods become impractical due to their high computational cost and storage requirements. The global Generalized Minimal Residual Method (GMRES) is an effective iterative approach for solving such large-scale equations. To enhance its convergence speed, this paper introduces a preconditioning technique based on the Successive Over-Relaxation (SOR) iteration, establishing the SOR-preconditioned global GMRES method. Numerical experiments demonstrate that, compared to the traditional global GMRES method, the proposed approach significantly reduces the number of iteration steps and computational time, confirming its effectiveness.
文章引用:陈豪杰, 张辰旭, 张鎏玮, 杜智强, 鲍亮. 基于SOR预条件的全局GMRES方法求解Sylvester矩阵方程[J]. 应用数学进展, 2025, 14(12): 155-161. https://doi.org/10.12677/aam.2025.1412495

1. 引言

Sylvester矩阵方程是科学计算中的一类重要方程,其形式为:

AX+XB=C

其中 A m×m ,B n×n ,C m×n 为已知矩阵, X m×n 为待求的未知矩阵。该方程在控制和通信理论、模型降阶、图像恢复等诸多领域都有着重要的应用[1] [2]

求解Sylvester方程的方法主要分为直接法和迭代法两大类。直接法(如Bartels-Stewart算法[3])适合求解中小规模问题。对于由偏微分方程离散化等产生的大规模稀疏问题,直接法往往因计算复杂度和存储需求过高而变得不再适用。因此,发展高效、低存储的迭代法成为研究的重点。

在众多迭代法中,基于Krylov子空间的方法,如GMRES [4],因其适用于非对称矩阵而备受关注。为了更高效地处理矩阵形式的未知量,有学者提出了全局Krylov子空间方法的概念[5]。这类方法将整个矩阵视为迭代变量,在扩展的Krylov子空间中寻找解,通常比将其向量化的方法具有更高的计算效率和更低的存储需求。

尽管全局GMRES方法在处理大规模问题上较为有效,但其收敛速度严重依赖于系数矩阵AB的谱性质。当矩阵谱分布不佳时,收敛可能非常缓慢。预条件技术是改善迭代法收敛性的关键手段[6]。其核心思想是将原系统转化为一个等价的、具有更优谱分布的系统,从而加速迭代收敛。

本文旨在研究如何将SOR预条件技术与全局GMRES方法结合,以高效求解Sylvester方程。本文结构如下:第二节介绍预备知识和全局GMRES方法;第三节讨论SOR预条件技术及其实现;第四节通过数值实验验证算法性能;第五节总结全文。

2. 全局GMRES方法

考虑Sylvester方程 AX+XB=C 。利用Kronecker积和向量化算子 vec( ) ,可将其等价地转化为线性方程组:

Ax=c

其中 A= I n A+ B T I m ,x=vec( X ),c=vec( C ) 。此时如果应用广义最小残差法(GMRES)等Krylov子空间方法求解会发现:当 m,n 很大时, mn×mn 的矩阵 A 将导致巨大的存储和计算成本。因此需要采用全局迭代法来避免这种显式的向量化[5]

定义线性算子: L( X )=AX+XB ,则原方程等价于 L( X )=C 。与传统Krylov子空间针对向量不同,全局Krylov子空间是针对矩阵定义的。对于初始残差矩阵 R 0 =CL( X 0 ) (其中 X 0 为初始猜测,通常取零矩阵),其对应的 k 维全局Krylov子空间定义为:

K k ( L, R 0 )=span{ R 0 ,L( R 0 ), L 2 ( R 0 ),, L k1 ( R 0 ) }

全局GMRES方法的目标是在该矩阵Krylov子空间中寻找近似解。通过矩阵的Frobenius内积 U,V F =trace( U T V ) 及其诱导的范数 U F = U,U F ,生成一组F-正交的矩阵序列 { V 1 , V 2 ,, V k } ,满足:

V i , V j F =trace( V i T V j )= δ ij ={ 1 i=j 0 ij

全局Arnoldi过程的算法[5]如下:

算法1全局Arnoldi过程

1. 令 V 1 = R 0 / R 0 F .

2. For j=1,2,,k

W=L( V j )=A V j + V j B

For i=1,2,,j

h ij = W, V j F

W=W h ij V i

End For

h j+1,j = W F ,若 h j+1,j =0 则停止,否则 V j+1 =W/ h j+1,j

End For

此过程生成了一个F-正交基 V k =[ V 1 , V 2 ,, V k ] 和一个上Hessenberg矩阵 H ¯ k ( k+1 )×k 。它们满足全局Arnoldi关系:

L( V k )= V k+1 H ¯ k

全局GMRES方法的目标是在k维全局Krylov子空间 K k 中寻找近似解 X k = X 0 + i=1 k y i V i 。令向量 y= [ y 1 , y 2 ,, y k ] T k ,该近似解可以通过最小化残差范数来确定:

min y k CL( X k ) F = min y k CL( X 0 + i=1 k y i V i ) F

利用全局Arnoldi关系,上式可转化为:

min y k R 0 F e 1 H ¯ k y 2

其中 e 1 = [ 1,0,,0 ] T k+1 。这是一个小型的最小二乘问题,可以通过Givens旋转高效求解得到向量y,从而得到近似解

X k = X 0 + i=1 k y i V i

3. SOR预条件全局GMRES方法

3.1. SOR预条件子

全局GMRES方法是求解Sylvester方程的有效方法。但是对于病态或困难问题,全局GMRES的收敛速度可能会较为缓慢。因此,引入高效的预条件技术至关重要。

预条件的基本思想是将原系统 Ax=c 转化为一个具有更优谱性质的新系统,从而加速收敛。对于Sylvester方程,我们寻求一个预条件子 M ,使得 M 1 Ax= M 1 c 更容易求解。

逐次超松弛(SOR: Successive Over-Relaxation)方法作为一种经典的分裂迭代法,其迭代矩阵可以自然地导出一种分裂预条件子。SOR预条件子具有形式简单、易于实现等优点。我们首先回顾对于普通线性系统 Ax=b 的SOR迭代过程[7]

A=DLU ,其中 D,L,U 分别为矩阵A的对角、严格下三角和严格上三角部分。SOR迭代格式为:

x ( k+1 ) = ( DωL ) 1 [ ( 1ω )D+ωU ] x ( k ) +ω ( DωL ) 1 b

其中 ω( 0,2 ) 为松弛因子。相应的SOR预条件子为

M SOR = 1 ω ( DωL )

我们推广到Sylvester方程 AX+XB=C 。SOR预条件子 M SOR 定义为使得一次SOR迭代等价于求解 M SOR 1 ( AX+XB )= M SOR 1 ( C ) 的算子。

我们对矩阵AB进行如下分裂: A= D A L A U A ,B= D B L B U B ,其中 D A , D B , L A , L B , U A , U B 分别是矩阵AB的对角、严格下三角和严格上三角部分。

此时 AX+XB=C 对应的线性方程组 Ax=c 在 Kronecker 乘积形式下可以分裂为:

A=( I D A + D B T I )( I L A + U B T I )( I U A + L B T I )

因此相应的SOR预条件子为

M SOR = 1 ω ( I( D A ω L A )+ ( D B ω U B ) T I )

从结构上可以看出, M SOR 主要由系数矩阵的对角矩阵和下三角矩阵构成,通过引入松弛因子 ω 进行缩放,可以调整预条件算子的性质。当矩阵的对角占优特性不明显时,适当选择松弛因子 ω 可以增强对角部分的作用,改善矩阵的条件数,从而加速迭代收敛。

而且由于 M SOR 的构成核心是两个下三角矩阵 ( D A ω L A ) ( D B ω U B ) T ,因此其对应的线性系统可以高效求解。具体来说,作用于残差 R=CAXXB 的SOR预条件步 Z= M SOR 1 ( R ) 可以通过求解以下方程来实现:

( D A ω L A )Z+Z( D B ω U B )=ωR

因为该Sylvester方程的系数矩阵均为三角矩阵,因此可以利用逐列或逐行的方式快速求解,计算成本远低于直接处理原方程。我们给出求解系数矩阵为上、下三角矩阵的Sylvester方程的快速算法如下:

算法2 求解Sylvester方程 LX+XU=C 算法

输入: L m×m 是下三角矩阵, U n×n 是上三角矩阵, C m×n

输出: X m×n

For j=1,2,,n

For i=1,2,,m

X ij = 1 L ii + U jj ( C ij L( i,1:i1 )X( 1:i1,j )X( i,1:j1 )U( 1:j1,j ) )

End For

End For

基于上述SOR预条件技术,我们构建出求解Sylvester方程的SOR预条件全局GMRES算法:

算法3 SOR预条件全局GMRES算法(SOR-P-GL-GMRES)

1.初始化:选择初始解 X 0 ,计算残差 R 0 =CA X 0 X 0 B

2. V 1 = M SOR 1 ( R 0 )/ M SOR 1 ( R 0 ) F

3.For j=1,2,,k

W= M SOR 1 ( A V j + V j B )

For i=1,2,,j

h ij = W, V j F

W=W h ij V i

End For

h j+1,j = W F ,若 h j+1,j =0 则停止,否则 V j+1 =W/ h j+1,j

End For

4.最小化问题:寻找y使得 R 0 F e 1 H ¯ k y 2 最小

5.更新解: X k = X 0 + i=1 k y i V i

3.2. 松弛因子的选取策略

SOR预条件全局GMRES算法方法的一个难点在于如何确定最优松弛因子 ω opt 。理论上,最优松弛因子与系数矩阵 A B 的谱特性密切相关。对于对称正定矩阵等特殊矩阵,可以找出较为合适的松弛因子,但对于系数矩阵非对称的Sylvester方程,难以精确计算其最优松弛因子。此时可以采用数值搜索方法来选取松弛因子,即在一定范围内对松弛因子 ω 进行搜索,以找到使迭代算法收敛速度最快的 ω 值。

其中试算法是一种较为直接的数值搜索方法。其基本思路是在一个合理的范围内,循环尝试多个不同的 ω 值,针对每个 ω 值运行迭代算法,并记录其迭代次数或收敛时间,最后比较不同 ω 值下的收敛速度,选择使收敛速度最快的 ω 作为最优松弛因子。

如果系数矩阵 A B 的维数很大,用试算法可能成本太高。此时可以考虑一种替代方案:从原问题中提取一个小模型其矩阵 A small B small 保持原矩阵的主要性质但规模小得多。在这个小问题上执行对 ω 的搜索,然后将找到的最佳值 ω opt 用于原始的大规模问题。通过这些策略,可以使得SOR预条件全局GMRES方法适应多样化的应用场景。

4. 数值实验

本节通过数值算例验证SOR预条件全局GMRES (SOR-P-GL-GMRES)方法的有效性。我们将其与未预条件的全局GMRES (GL-GMRES)方法进行比较。所有实验均在MATLAB R2024a环境中进行,机器配置为Macbook M4,16 GB RAM。在下面的例子中,初始解均取为 X 0 =O 。停机准则是

R k F R 0 F 10 11

1 我们考虑二维对流–扩散方程 Δu+vu=f 离散化后产生的Sylvester方程。令 A=tridiag( 1α,4,1+α ),B=tridiag( 1β,4,1+β ) 为三对角矩阵。右端项C随机生成。 A m×m ,B n×n ,C m×n 。取 m=160,n=180,α=0.2,β=1.6 ,松弛因子 ω=1.1 表1图1展示了两种方法的收敛性能。从中可以看出,SOR预条件技术显著加速了收敛。SOR-P-GL-GMRES需要26步迭代,而GL-GMRES需要58步迭代。

Table 1. Performance comparison of global GMRES and SOR-preconditioned global GMRES (Example 1)

1. 全局GMRES与SOR预条件全局GMRES的性能比较(例1)

方法

迭代步数

耗时(秒)

相对残差

GL-GMRES

58

0.35

8.92 × 1012

SOR-P-GL-GMRES

26

0.22

3.65 × 1012

Figure 1. Plot of relative residual norm versus iteration steps (Example 1)

1. 相对残差范数随迭代步数下降图(例1)

2 这个例子的结构和上个例子相同,我们取 m=500,n=300,α=0.1,β=1.2 ,松弛因子 ω=1.2

两种方法的收敛性能展示在表2图2中。从结果可以清晰地看出SOR-P-GL-GMRES的性能也要优于GL-GMRES。SOR-P-GL-GMRES需要24步迭代,而GL-GMRES需要49步迭代。

Figure 2. Plot of relative residual norm versus iteration steps (Example 2)

2. 相对残差范数随迭代步数下降图(例2)

Table 2. Performance comparison of global GMRES and SOR-preconditioned global GMRES (Example 2)

2. 全局GMRES与SOR预条件全局GMRES的性能比较(例2)

方法

迭代步数

耗时(秒)

相对残差

GL-GMRES

49

5.26

7.57 × 1012

SOR-P-GL-GMRES

24

3.56

3.89 × 1012

5. 结论

本文给出了求解大规模Sylvester矩阵方程的SOR预条件全局GMRES方法。数值实验结果表明,SOR预条件技术能有效改善算法的收敛性,减少迭代步数和计算时间。未来的工作将集中于研究更高效的预条件子,例如基于低秩近似或多重网格方法的预条件子,以应对更复杂和病态的问题。

基金项目

由2025年上海市级大学生创新训练计划项目S202510251170资助。

参考文献

[1] Sorensen, D.C. and Zhou, Y. (2003) Direct Methods for Matrix Sylvester and Lyapunov Equations. Journal of Applied Mathematics, 2003, 277-303. [Google Scholar] [CrossRef
[2] Simoncini, V. (2016) Computational Methods for Linear Matrix Equations. SIAM Review, 58, 377-441. [Google Scholar] [CrossRef
[3] Bartels, R.H. and Stewart, G.W. (1972) Algorithm 432 [C2]: Solution of the Matrix Equation AX + XB = C [f4]. Communications of the ACM, 15, 820-826. [Google Scholar] [CrossRef
[4] Saad, Y. and Schultz, M.H. (1986) GMRES: A Generalized Minimal Residual Algorithm for Solving Nonsymmetric Linear Systems. SIAM Journal on Scientific and Statistical Computing, 7, 856-869. [Google Scholar] [CrossRef
[5] Jbilou, K., Messaoudi, A. and Sadok, H. (1999) Global FOM and GMRES Algorithms for Matrix Equations. Applied Numerical Mathematics, 31, 49-63. [Google Scholar] [CrossRef
[6] Benzi, M. (2002) Preconditioning Techniques for Large Linear Systems: A Survey. Journal of Computational Physics, 182, 418-477. [Google Scholar] [CrossRef
[7] Song, S. and Huang, Z. (2021) A Modified SSOR-Like Preconditioner for Non-Hermitian Positive Definite Matrices. Applied Numerical Mathematics, 164, 175-189. [Google Scholar] [CrossRef