我正在阅读这些关于预处理器的幻灯片。我相信我掌握了它们如何工作的想法,但有些东西仍然没有意义。
如果我们有系统并使用预处理器,我们最终得到一个系统.
现在说我决定使用分解,这意味着我需要计算并将其用作预处理器,我需要将其反转。
这是我有点想念的地方,这是否意味着我们实际上正在计算的逆?我猜想有一些下/上矩阵的属性可以使逆很容易,但我似乎找不到它。如果我们实际上是在计算逆矩阵并且没有下/上矩阵的属性使任务变得容易,为什么我们要费心计算预条件子的逆而不是计算的逆(或近似逆) ?
我正在阅读这些关于预处理器的幻灯片。我相信我掌握了它们如何工作的想法,但有些东西仍然没有意义。
如果我们有系统并使用预处理器,我们最终得到一个系统.
现在说我决定使用分解,这意味着我需要计算并将其用作预处理器,我需要将其反转。
这是我有点想念的地方,这是否意味着我们实际上正在计算的逆?我猜想有一些下/上矩阵的属性可以使逆很容易,但我似乎找不到它。如果我们实际上是在计算逆矩阵并且没有下/上矩阵的属性使任务变得容易,为什么我们要费心计算预条件子的逆而不是计算的逆(或近似逆) ?
根据您的评论,您的主要困难似乎是如何对给定矩阵进行 LU 分解可以很容易地找到一个向量这样对于给定的. 希望你感到舒服,如果我们有一个简单的方法来做到这一点,那么这个问题就解决了,因为我们可以处理作为一个黑匣子,我们得到一个输入,该方法返回一个输出。
让我们假设我们(不知何故)知道如何找到一个这样对于给定的. 然后提供我们可以找到一个这使, 然后
所以现在我们需要回到寻找. 但是第一个方程只是
好的 - 所以你的原始方程是
假设您已经为提出了一个很好的预处理器,称之为。预先计算了一个 LU 分解,即
我使用下标表示这是我们在这里讨论的分解)。然后,假设左预处理,您将求解预处理线性系统
或者,等效地
要么
因此,预条件系统矩阵现在是条件好得多。
现在你可以
(a)(作为纯粹的学术练习)用非预处理的 Krylov 方法(比如 GMRES)求解系统。由于系统矩阵条件良好,您可以期待快速收敛。
Krylov 算法需要将此矩阵乘以任意(已知)向量,称为。换句话说,Krylov 过程需要你的是一个例程,给定,计算
这相当于求解线性系统(对于)。这个系统很容易(=便宜)求解,因为矩阵和是三角形的。
要么
(b)(你在实践中会做什么)在预处理系统上运行预处理 CG。CG 将逆预处理器应用于残差向量。同样,这只是意味着它解决了线性系统(对于)。
所以,总而言之:永远不要显式地反转矩阵(无论如何你不能在实践中对大矩阵这样做),而是求解相应的线性系统(这在数学上相当于将逆矩阵运算符应用于已知向量)。