Questions tagged «preconditioning»

有关解决线性系统的预处理器的设计和实现的问题。

2
为什么我的迭代线性求解器不收敛?
使用KSP(PETSc)的预先设定的Krylov方法时会出什么问题的线性求解器程序包)中的求解稀疏线性系统(例如通过离散化和线性化偏微分方程获得的线性系统)时,会出现什么问题? 我可以采取什么步骤来确定问题出了什么问题? 为了成功有效地求解线性系统,我可以进行哪些更改?

3
在寻找针对特定问题的良好预处理方法时,应使用哪些准则?
对于使用迭代方法求解大型线性系统,通常需要引入预处理,例如,求解,其中用于系统的左预处理。通常,与原始系统的解决方案相比,我们应该使并提供(更多)有效解决方案或减少计算资源(例如内存存储)的基础(即当。但是,我们应该使用什么准则来选择预处理器?从业者如何针对他们的特定问题呢?中号- 1(甲X = b )中号中号- 1 ≈ 甲- 1中号= 甲甲X = bAx=bAx=b中号− 1(A x = b )M−1(Ax=b)M^{-1}(Ax=b)中号MM中号− 1≈ 一− 1M−1≈A−1M^{-1}\approx A^{-1}中号= AM=AM=A


2
有什么办法可以做“双重预处理”
题: 假设您对对称正定矩阵有两个不同的(分解的)前置条件: 和 其中的逆是容易申请。一种一种A一≈ 乙Ť乙一种≈乙Ť乙A \approx B^TB一≈ ÇŤC,一种≈CŤC,A \approx C^TC,乙,乙Ť,C,CŤ乙,乙Ť,C,CŤB, B^T, C, C^T 什么时候可以使用的信息来自两个 和建设比任何一个更好的预处理器或一个人吗?乙乙BCCC乙乙BCCC

1
多项式前置条件的当前状态是什么?
我不知道多项式前置条件发生了什么。我对它们感兴趣,因为从数学角度看它们看上去比较优雅,但是据我在有关克雷洛夫方法的调查中所读到的那样,它们作为预处理器的性能通常很差。用Saad和van der Host的话说,“对这些技术的当前兴趣几乎消失了” (此处)。但是,最近在多核和GPU计算中已得到使用。 谁能告诉我或者更确切地说是我在哪些情况下这些方法仍然有效,以及在哪里可以找到有关当前最新技术水平的良好调查?


2
用另一种krylov方法预处理krylov方法
在类似gmres或bicgstab的方法中,使用另一种krylov方法作为前置条件可能会很有吸引力。毕竟,它们很容易以无矩阵的方式并在并行环境中实现。例如,一个库尔使用未经预处理的bigcstab的几次迭代(约5次)作为gmres的预处理器,或krylov方法的任何其他组合。在文学界,我没有太多参考这种方法,所以我希望这是因为它不是很有效。我想了解为什么效率不高。在某些情况下,这是一个不错的选择吗? 在我的研究中,我对在并行(MPI)环境中解决3D椭圆问题感兴趣。

2
对于不确定的对称系统,我应该使用PETSc中的哪些预处理器(和求解器)?
我的系统是带有拉格朗日乘子的对称有限元问题(例如不可压缩的斯托克斯流): (ABBTC)(ABTBC)\begin{pmatrix}A & B^T \\ B & C\end{pmatrix} 其中是典型情况(我什至已确保方程式已编号,以便拉格朗日乘数出现在最后)。该系统非常大(+ 100k行)。C=0C=0C = 0 阅读了这个问题的答案后,给我的印象是,有合适的预处理器可用于混合有限元问题。 -ksp_type minres -pc_type none -mat_type sbaij尽管精度不高(使用线性问题会导致多次牛顿迭代),但我使用PETSc设法用MINRES()解决了系统。预调节器和ksp-solver的其他组合似乎没有用。 是否有PETSc标志的组合可以比仅使用MINRES更快地解决此系统?

2
高效拉格朗日预处理器
我想解决带有非线性等式约束的非线性问题,并且我正在使用带有惩罚正则项的增广拉格朗日函数,该函数众所周知会破坏我线性化系统的条件数(我是说每次牛顿迭代) 。惩罚期限越大,条件编号越差。有人会知道在特定情况下摆脱这种不良条件的有效方法吗? 更具体地说,我使用经典的增强型拉格朗日法,因为我有很多约束,这些约束通常可能是多余的。因此,将约束直角盲目地合并到原始变量中非常方便。我直接在KKT系统上尝试了其他基于变量消除或有效前置条件的更复杂的方法,但是由于约束冗余,我遇到了一些麻烦。 关于该问题变量被配制成按照我的形式拉格朗日 大号(Û,λ ):= w ^(Û)+ ρ λ Ťu =[ u1个,⋯ ,ūñ]u=[u1,⋯,un]\mathbf u =[u_1,\cdots,u_n]L( u,λ): = W(û)+ ρ λŤc (u)+ ρ2C2(你)L(u,λ):=W(u)+ρλTc(u)+ρ2c2(u)\mathcal L(\mathbf u,\lambda):= \mathcal W(\mathbf u) + \rho \lambda^T \,c(\mathbf u) + \frac{\rho}{2} c^2(\mathbf u) 所以一般在每个牛顿的目标迭代是解决形式的问题 随着(我们的约束的下降麻布) 甲(Û,ρ ):= ∇ 2 ù w ^(Û)+ ρ Ç Ť(ù)ç (Û) …

2
是否存在用于无矩阵方法的黑盒预处理器?
一般而言,Jacob-free牛顿-克雷洛夫(JFNK)方法和克雷洛夫方法非常有用,因为它们不需要显式存储或构造矩阵,而只需要矩阵向量乘积的结果即可。如果您确实形成了稀疏系统,那么这里有许多预处理器。 真正的无矩阵方法有哪些可用?谷歌搜索出现了一些对“矩阵估计”的引用,还有一些其他的事情表明它是可能的。这些方法通常如何起作用?它们与传统预处理器相比如何?基于物理学的无矩阵预处理器是路要走吗?有没有公​​开可用的方法,例如PETSc或其他软件包?


1
嵌套预处理器准则
考虑您要使用预处理Krylov方法求解线性系统的情况,但是应用预处理器本身涉及求解辅助系统,这是通过另一种预处理Krylov方法完成的。 在一种极端情况下,您可以运行内部求解以在外部求解的每个步骤中收敛。 在另一种极端情况下,您根本无法进行内部求解,而只能用内部前置条件替换它。 在中间的某个位置,您可以在固定的迭代次数后或达到一定的公差之后截断内部的Krylov循环。 根据经验,我遇到了第一个极端更好的情况,以及第二个极端更好的情况(就总成本而言)。但是,我找不到明确的理由说明某些情况为什么偏爱一种策略而不是另一种策略。 是否有关于何时使用这些不同策略的指导或理论?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.