用于求解 Ax=b 的无矩阵方法的预处理器

计算科学 线性求解器 宠物 稀疏算子
2021-12-11 08:14:48

我需要解决 Ax=b,但我意识到即使它是稀疏的,存储我的问题的矩阵系数也会占用太多内存。所以现在我正在考虑使用无矩阵的方法,因为相同的系数在矩阵中出现的时间很多,所以我可以使用自己的私有存储方案(顺便提高缓存效率)。

我正在查看 petsc,它为此类无矩阵线性运算符提供接口,但我不太明白的是,preconditioner 是如何由 petsc 计算的?或者我应该提供我自己的预处理器?如果是这样,是否有可用于从无矩阵线性算子构造预处理器的工具或配方?

有关我的运算符的更多信息:它是不对称的,不是对角线占主导地位,而是由几个边带主导(但它也不是带状对角线)

1个回答

您需要推出自己的预处理器。例如,如果您知道矩阵,那么实现诸如 SSOR 预条件器之类的东西应该不会非常困难。如果您对问题有所了解,例如它来自一个 PDE,其解决方案可以很好地近似于较粗的网格,那么您还可以考虑通过将问题限制在较粗的网格上来构造预条件子,在那里求解,然后扩展解决方案回到原来的那个。限制和延长可以实现为无矩阵操作。