下一节:带状矩阵的直接求解器
上一级:直接线性求解器简述
上一节:直接线性求解器简述
稠密矩阵的直接求解器
考虑对稠密矩阵使用迭代方法而非变换方法的原因有二:
- 如果只需要计算靠近一个或几个位移 \sigma 的少数特征值和/或特征向量,使用带有迭代方案的位移-反演方法可能比变换方法更经济。对于非厄米矩阵而言,这种情况更为常见,因为厄米矩阵的变换方法速度更快。
- 当矩阵不够稀疏或不够大时,稠密求解器可能比稀疏求解器更快。
稠密求解器的选择取决于 A-\sigma I 的数学结构,具体如下:
- A-\sigma I 是厄米正定矩阵。
- 在这种情况下,首选算法是 Cholesky 分解。它已在 LAPACK 计算例程中实现,用于计算分解的 xPOTRF 和使用分解求解的 xPOTRS(两者在 LAPACK 驱动例程 xPOSVX 中结合)。针对压缩数据存储的版本也已提供(将 PO 替换为 PP)。Cholesky 分解在类似的 ScaLAPACK 例程中实现,如 PxPOTRF、PxPOTRS 和 PxPOSVX。在 MATLAB 中,该分解称为 chol。
- A-\sigma I 是厄米不定矩阵。
- 在这种情况下,首选算法是 Bunch-Kaufman 分解。它已在实数(复数)LAPACK 计算例程中实现,用于计算分解的 xSYTRF(xHETRF) 和使用分解求解的 xSYTRS(xHETRS)(两者在 LAPACK 驱动例程 xSYSVX(xHESVX) 中结合)。针对压缩数据存储的版本也已提供(将 SY(HE) 替换为 SP(HP))。ScaLAPACK 或 MATLAB 中未提供此算法。
- A-\sigma I 是非厄米矩阵。
- 在这种情况下,首选算法是高斯消元法。它已在 LAPACK 计算例程中实现,用于计算分解的 xGETRF 和使用分解求解的 xGETRS(两者在 LAPACK 驱动例程 xGESVX 中结合)。在类似的 ScaLAPACK 例程中,高斯消元法实现为 PxGETRF、PxGETRS 和 PxGESVX。在 MATLAB 中,该分解称为 lu。
下一节:带状矩阵的直接求解器
上一级:直接线性求解器简述
上一节:直接线性求解器简述
Susan Blackford
2000-11-20