我有一个复杂且对称的稀疏系统(大约 78% 的零条目)(但不是 Hermitian)。下图显示了问题的结构。非对角块是关联矩阵,对角块是密集复矩阵,其元素的绝对值范围为到.
我使用 PETSc 构建了一个代码(确保配置--with-scalar-type=complex),它编译并运行,但求解器要么发散,要么如果收敛,会给出无意义的结果。
使用密集例程(LAPACK,无 PETSc)的代码版本给出了预期的结果。PETSc 生成的矩阵结构(见上图)与预期一致。除了单个条目(第一个条目)之外,右侧为零。我见过的该系统最差的条件数是; 但它,通常,.
为了解决特定类型的问题(稀疏复杂对称,而不是 Hermitian),推荐使用什么方法(求解器)?我可以将它与 PETSc 一起使用吗?
这个答案提到
对于复杂的问题,与直接方法相比,迭代方法的鲁棒性要差得多。
这是为什么?
可能相关的附加信息
不使用预处理。此外,当我配置 PETSc 时--with-scalar-type=real,当系统的虚部与实部相比较小时,系统使用最小残差法 (MINRES) 给出了一些正确的结果。
