关于解决稠密问题的香草预处理器A x = bAx=b迭代地

计算科学 预处理 迭代法
2021-11-24 23:18:28

我正在寻找不假设任何关于矩阵或其起源的预处理器。我基本上希望能够在 MATLAB 中输入以下内容并快速解决问题:

a = rand(5000,5000);
b = rand(5000,1);
precond_a= my_precond_algorithm(a);
qmr(a,b,1e-8,100,precond_a)

不用说,是稠密的。a

我调查过:

  1. 卢工作得很好。但这并不奇怪。

  2. 我仍然要为密集矩阵的 ILU 找到一个好的算法,但我认为它应该工作得相对较好。

  3. 稀疏逆近似器(Benzi 等人)。

  4. Prakash 和 Mittra 的一篇论文讨论了使用 Multifrontal Preconds 解决密集 Maxwell 方程离散化问题。

除了 LU,我仍然有点担心将它们用作大型密集矩阵的有效预处理器的可行性。任何资源/意见将不胜感激!

3个回答

了解更多有关结构的信息至关重要。随机条目是均匀分布还是正态分布以及是否存在偏移很重要。如果根本没有结构,那么你就不能渐近地击败直接解决方案。对您提出的方法的一些评论

  1. 当应用于密集矩阵时,不完全 LU 是完全 LU。您可以考虑一些阈值,但它不太可能起作用,尤其是在没有均匀分布的情况下。

  2. 逆不是稀疏的或具有有用的衰减特性,因此预计稀疏的近似逆不会表现良好。

  3. 麦克斯韦方程组的积分公式具有非常特殊的结构。那篇论文使用阈值来创建一个稀疏系统。这是否有益(以及稀疏矩阵是否更容易解决)很大程度上取决于问题中的任何特殊结构。

我想如果有一个前置条件

  • 在为没有定义结构或内容的任意密集矩阵工作的意义上是通用的
  • 加快您的解决速度,没有其他缺点

那么您将始终在您的解决方案算法中使用它,因此它将成为您的求解器的一部分。

对于没有结构的稠密矩阵,多项式预处理可能是唯一可行的方法,尽管它有局限性(例如,参见http://amath.colorado.edu/pub/iterative/psi-phi.ps.Z)。如果您的矩阵具有不同大小的条目,则可能需要首先使用匹配的 http://www.cerfacs.fr/algor/reports/1997/TR_PA_97_45.ps.gz缩放矩阵