C中的稀疏线性求解器?

计算科学 宠物 线性求解器 C
2021-12-21 11:28:11

我正在将不连续的 Galerkin 代码从 MATLAB 转换为 C,我正处于需要解决稀疏系统的最后一点。我以前学过 C 的课程,但我很生疏,一开始就不是那么好。

我以前使用过 LAPACK,但想知道是否有更好的选择。我的教授使用 PetSc,但我正在查看文档,不知道如何安装它,更不用说使用它了。ANL 网站上的“教程”部分已经写得很高了。

此外,对于 C 中的稀疏求解器,是否存在必须存储数组的“特殊方式”?或者我可以直接将我的数组输入到求解器中并获得解决方案吗?

这是矩阵结构的图 在此处输入图像描述

1个回答

很大程度上取决于您是否有兴趣使用迭代方法或直接分解矩阵来求解方程组。您需要清楚这些方法的相对优缺点。

如果您对直接因式分解感兴趣,您可能需要查看 Tim Davis 的 SuiteSparse 软件。

对于迭代方法,强烈推荐使用 PETSc。

无论哪种方式,LAPACK 都是一个糟糕的选择,因为它只适用于密集矩阵。