假设我们要求解大小为 x的对称矩阵的特征值。
在计算的第一阶段,使用 Householder/Arnoldi 的归约将矩阵归约为三边形形式。理论说这是。
在计算的第 2 阶段,通过使用归一化同时迭代 (NSI)将此三边形形式转换为对角线形式。此迭代中的两个主要步骤是三边矩阵的矩阵乘法和三边矩阵的qr分解。这些中的每一个(如果专门为三边系统实现)将是。由于这些要重复次,因此总数将为。
我想通过实验看到阶段 1 实际上减少了计算时间。最简单的方法是在MATLAB中使用DGEMM例程进行矩阵乘法,并使用 Householder 反射器进行qr分解。
我的问题是:MATLAB中使用的qr算法和DGEMM是否考虑输入矩阵是否为三边形并进行相应优化?文档说它区分了稀疏矩阵和密集矩阵。
如果我必须单独编写代码用于三边系统的矩阵乘法和使用户主反射器的qr,它会比MATLAB中提供的代码更好吗?
有没有办法使用 MATLAB 以外的东西来做到这一点,比如 C 或 C++ 库?