来自不完全 Cholesky 分解的条件数

计算科学 稀疏矩阵 特征值 条件数
2021-11-26 02:20:01

从我读到的关于获得实数、对称、正定稀疏矩阵的条件数的内容中,我很难将它们拼凑在一起。

在我的代码中,我发现Cholesky 分解例程不完整(我想用作预处理器)。我还有一个ILU预条件器,我可以将其用作Wolfgang Bangerth在这个问题的病态版本中推荐的

我想我可以使用 Cholesky 分解来估计条件数,但我不确定。

预处理器的结果是U=LT我的 CRS 矩阵。为了估计条件数,我需要最大和最小特征值的比率。使用它可以非常快速地进行编码。

但是我该如何使用U得到特征值?

到目前为止,我看到的第二个最佳方法是将矩阵写入文件并使用scipy.sparse.linalg.lsmr来解决最小二乘问题。这也输出条件编号,但有点矫枉过正并且需要更多工作。

请理解矩阵和线性代数不是我的日常工作:)

2个回答

可以从 Krylov 子空间方法(例如 GMRES)获得估计值,而PETSc 具有这方面的功能

对于对称矩阵,2-范数条件数是谱条件数,并且存在估计 2-范数条件数的算法,因此如果您确实需要未预处理矩阵的条件数,您可以使用方法进行估计2-范数条件数也是如此。相同的方法适用于您的预处理矩阵,但如果它不是对称的,则 2 范数和谱条件数将不重合。另请注意,条件数与范数相关,因此您应该真正确定用于评估收敛性的范数中的条件数。

您可以使用 Gershgorin 圆定理粗略估计条件数。维基百科中的这篇文章有一个很好的解释:http ://en.wikipedia.org/wiki/Gershgorin_circle_theorem

对于复矩阵A大小的n×n, 它的 n 个 Gershgorin 圆是在复平面上画的,圆的中心是aii,第 i 个圆的半径为ij|aij|. 该定理说,每个特征值A位于 Gershgorin 圈内。

对于 SPD 矩阵,特征值在实轴上,因此您可以估计可能的最高值和可能的最低值。使用它,您可以粗略估计条件数。