奇异矩阵 - 但 SVD 有效 - 特征值是什么意思?找到我的“依赖”行?

计算科学 拉帕克 特征值 矩阵
2021-11-29 01:28:48

请问我可以问一个有点愚蠢的问题吗?我有一个复杂的矩阵A作为一组方程。我想找到Ax=b的解决方案,其中b是右侧的向量。所以我A上调用了 zgetrf(进行 LU 分解),然后从Lapack /MKL 调用了Ab上的 zgetrs (求解 LU 矩阵的线性系统)。但这最终会出现错误,zgetrf无法分解矩阵A并说它是奇异的。所以我在上面调用了 SVD - zgesvd这有效。但是矩阵A的特征值如下:

(2885.24776463951,8.34234423485148)

(1.41421356237310,1.41421356237310)

(1.41421356237309,0.144427825453540)

(1.257628062933306E-014,0.000000000000000E+000)

(0.000000000000000E+000,0.000000000000000E+000)

(0.000000000000000E+000,0.000000000000000E+000)

(0.000000000000000E+000,0.000000000000000E+000)

(0.000000000000000E+000,0.000000000000000E+000)

我能找到zgetrf分解的问题在哪里吗?我认为这样的特征值表明矩阵 A 仅具有 4 级,尽管物理尺寸为 8 x 8 ...我可以估计哪些线是相关的吗?非常感谢

1个回答

我假设你给了我们来自 SVD 的奇异值,而不是特征值(它们是相关的,但不相同)。你是对的:这意味着你的矩阵是 4 级,尽管是 8x8 矩阵。SVD 已经为您提供了所需的一切:前四个左右奇异向量是将您的运算符表示为 4x4 矩阵的基础。如果矩阵 A 是静态的,那么您可以将整个计算转换为那些基并继续使用非奇异矩阵。一个更好的想法可能是使用 SVD 形成一个伪逆A. 回想一下 SVDA

A=UΣV
在哪里U,V是单一的并且Σ是具有非负值的对角线(但有一些零,如您的情况)。的对角线元素Σ是有序的,称为奇异值。您可以将伪逆构造为:
A=VΣUΣii=Σii1 if Σii>0, else 0