在无矩阵状态下应用矩阵平方根逆

计算科学 线性代数 无基质
2021-12-24 09:34:21

假设是一个大的对称正定矩阵,并假设我们可以有效地应用并且有一个快速求解器来应用,但是我们无法访问AAA1AA1

如何使用它来解决系统,

Ax=b?


正如前一个问题中所建议的,可以通过计算的特征值分解来解决该问题。在我的例子中,由于速度和内存的原因,完整的特征值分解是不可行的,专注于矩阵元素(如 Cholesky)的分解也是如此。A

2个回答

在浏览了一些文献后,我正在回答我自己的问题。我会等几天接受,以防其他人有更好的答案。

首先,这个问题等价于求解, 所以唯一需要的平方根部分就是计算,然后是正常的求解。

Ax=Ab,
Ab

下面的论文讨论了两种方法来做到这一点,

矩阵的平方根与向量的乘积的数值近似,Allen,EJ 和 Baglama,J 和 Boyd,SK,线性代数及其应用 2000, http://www.sciencedirect.com/science/article/pii /S0024379500000689

第二种方法将问题转换为求解一个 ODE,其在时间的解为这个 ODE 是, 这可以通过标准技术如前向欧拉来解决。在每个时间步必须应用于,然后的正则化版本: 必须应用于结果。在我的特殊情况下,应用的方法可以扩展为也应用t=1A1/2b

{dxdt=12(At+(1t)I)1(IA)x(t)x(0)=b,
tk(IA)x(tk)A1
(Atk+(1tk)I)1
A1(A+αI)1. 在其他情况下,应该可以使用构建预处理器。A1(Atk+(1tk)I)

编辑:这种方法的一个主要缺点是 ODE 变得僵硬作为条件数A增加。

尼克,你的回答当然是有效的。但是, ,则可以避免 where的额外求解。这是 Henk van der Vorst http://link.springer.com/chapter/10.1007%2F978-3-642-58333-9_2的一本书章节的主题。Ax=b~b~=A1/2bf(A)x=b

计算矩阵平方根(或其逆)的其他几个选项可用。正如您提到的解决 ODE 是一种这样的方法。从广义上讲,还有其他一些方法 - 平方根的多项式逼近http://link.springer.com/article/10.1007%2FBF02083211#page-1,平方根的有理逼近http://citeseerx.ist.psu。 edu/viewdoc/summary?doi=10.1.1.131.1310,基于 Krylov 子空间的方法http://epubs.siam.org/doi/abs/10.1137/130920587和扩展的 Krylov 子空间方法http://epubs.siam.org/ doi/pdf/10.1137/S0895479895292400

我只为每种情况提供了一个示例,但是关于计算矩阵平方根的文献非常丰富。您使用的方法的特定选择最终将取决于矩阵和特征值的分布。但是,我倾向于基于轮廓积分的有理近似http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.131.1310因为即使对于病态矩阵,计算 f(A) b 归结为在移动方程组上计算大约十几个解。如果 A 仅以无矩阵形式可用,则它可能不起作用,在这种情况下,扩展 Krylov 方法可能是您最好的选择。