求解具有三对角矩阵的线性方程组的库

Library for solving system of linear equations with tridiagonal matrix?

本文关键字:线性方程组      更新时间:2023-10-16

我正在用热传导来模拟物理系统,为了进行数值计算,我需要求解具有三对角矩阵的线性方程组。我正在使用这个算法来得到结果:http://en.wikipedia.org/wiki/Tridiagonal_matrix_algorithm但是我担心我的方法是直接的,不是最优的。应该使用什么c++库以最快的方式解决该系统?我还应该提到,矩阵不经常改变(只改变方程的正确部分)。谢谢!

查看Eigen

该算法的性能可能主要由浮点除法控制。使用SSE2一次执行两次除法(ci和di),您将接近最佳性能。

LAPACK和BLAS接口值得一看,其中有几个实现库。最初是netlib,它是开源的,然后是其他的,比如MKL,你需要付费。函数dgtsv完成了您正在寻找的功能。开源netlib版本不做任何显式的SIMD指令,但MKL做,并将在英特尔芯片上表现最好。