我正在使用隐式数值方案解决物理问题。这导致我用三对角矩阵求解线性方程。我已经从 Wikipedia编写了这个算法。我想知道是否有一个高效的库可以以优化的方式求解这种类型的方程。一个重要的注意事项是矩阵本身仅在系统参数发生变化时才会发生变化,因此我有机会预先计算一些算法步骤以获得不错的性能奖励。我正在使用 C++。
高效的三对角矩阵算法实现
计算科学
线性代数
图书馆
C++
2021-12-05 02:14:49
3个回答
您可能应该从 LAPACK 实现 ?gtsv 开始,例如dgtsv。如果您想要一个分布式内存版本,那么您可能希望从 ScaLAPACK 的 p?gtsv 开始。
编辑:由于您的矩阵不会经常更改,您可以通过将 LAPACK 例程 ?gtsv 分解为分解步骤 ?gttrf 和求解阶段 ?gttrs 来避免冗余分解三对角矩阵。ScaLAPACK 中存在类似命名的例程,用于相同目的。
我在第 975 页找到了一个有趣的递归算法。它看起来很有希望,我想知道更有经验的人对此有何看法。
其它你可能感兴趣的问题