1

我用熱傳導建模物理系統,並做數值計算,我需要用三對角矩陣求解線性方程組。我正在使用此算法得到結果:http://en.wikipedia.org/wiki/Tridiagonal_matrix_algorithm但我擔心我的方法很簡單,並且不是最優的。應該用什麼C++庫以最快的方式解決該系統?我還應該提到矩陣不會經常改變(只有等式的右邊部分被改變)。謝謝!用三對角矩陣求解線性方程組的庫?

+0

您是否實現了自己的或者您是否在使用庫? – themel

+0

我已經實現了我自己的功能:只是對算法進行編碼,僅使用矩陣不會更改的事實來執行一些預計算。 – user517893

回答

3

結賬Eigen

+0

據我所知,Eigen還沒有三對角矩陣或帶矩陣的概念。你仍然可以製作一個密集的矩陣並解決這個問題,但不知道它是否有效 – Simmovation

1

該算法的性能可能主要由浮點除法決定。使用SSE2一次執行兩個部門(即c i和d i),您將接近最佳性能。

0

值得看看LAPACK和BLAS接口,其中有幾個實現庫。原本是netlib這是開源的,然後是其他如MKL,你必須支付。功能dgtsv做你正在尋找。開源的netlib版本不做任何明確的SIMD指令,但MKL確實會在英特爾芯片上表現最佳。