用三对角矩阵求解线性方程组的库?

发布于 2024-12-14 06:33:58 字数 282 浏览 2 评论 0原文

我正在用热传导对物理系统进行建模,为了进行数值计算,我需要用三对角矩阵求解线性方程组。我正在使用此算法来获取结果: http://en.wikipedia.org/wiki/Tridiagonal_matrix_algorithm 但恐怕我的方法很简单而且不是最佳的。应该使用什么 C++ 库以最快的方式解决该系统?我还应该提到矩阵不经常改变(只有方程的右侧部分改变)。谢谢!

I am modelling physical system with heat conduction, and to do numerical calculations I need to solve system of linear equations with tridiagonal matrix. I am using this algorithm to get results: http://en.wikipedia.org/wiki/Tridiagonal_matrix_algorithm But I am afraid that my method is straightforward and not optimal. What C++ library should be used to solve that system in the fastest way? I should also mention that matrix is not changed often (only right part of the equation is changed). Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

扎心 2024-12-21 06:33:58

查看Eigen

Check out Eigen.

[旋木] 2024-12-21 06:33:58

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

The performance of this algorithm is likely dominated by floating-point division. Use SSE2 to perform two divisions (of ci and di) at once, and you will get close to optimal performance.

此生挚爱伱 2024-12-21 06:33:58

LAPACK 和 BLAS 接口值得一看,其中有几个实现库。本来 netlib 是开源的,然后其他如MKL需要付费为了。函数 dgtsv 可以满足您的需求。开源 netlib 版本不执行任何显式 SIMD 指令,但 MKL 执行并且将在英特尔芯片上表现最佳。

It is worth looking at the LAPACK and BLAS interfaces, of which there are several implementation libraries. Originally netlib which is open-source, and then other such as MKL that you have to pay for. The function dgtsv does what you are looking for. The open-source netlib versions don't do any explicit SIMD instructions, but MKL does and will perform best on intel chips.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文