来自椭圆算子的稀疏带状非对称矩阵的特征值
计算科学
线性代数
稀疏矩阵
迭代法
特征值
2021-12-07 16:11:50
3个回答
简单的答案是您将使用逆迭代(子空间或通缩)。这基本上是适用于. 既然你渴望最接近原点,需要使用某种分块法或正交化,否则幂次迭代每次收敛到相同的特征向量。
实际上,这些简单的算法太原始而无用(它们会花费太长时间)。这些更复杂的变体包括(块)Lanczos或Arnoldi或Jacobi-Davidson方法。请注意对矩阵属性的限制(例如,经典的 Lanczos 仅适用于 Hermitian 矩阵)。请注意,由于您想要最小的特征值,因此您需要能够应用在这些迭代中。所以每次迭代都需要一个稀疏矩阵求解。您的 3D 空间网格结构可能适合多重网格技术以加快求解速度,或者如果它的大小适中,您可以进行(不完整的)LU 或 Cholesky 分解。您还可以将它们用作求解器的预处理器,通常特征值方法将其用作参数。
实际上,Matlab 有eigs,而且这本免费的书有一个不错的现有代码清单。
如果矩阵很小(最多可能有 1,000 行),最简单的方法是使用 Matlab、Maple 或 Mathematica。如果您有更大的东西,请使用 ARPACK 等软件包。
我建议这样做,因为从头开始编写特征值求解器绝对是一项非常重要的工作——而且完全没有必要,因为周围已经有很好的包来完成这项任务!
有 EIGEN C++ 库 ( http://eigen.tuxfamily.org/ )
其它你可能感兴趣的问题
