假设是一个大的对称正定矩阵,并假设我们可以有效地应用并且有一个快速求解器来应用,但是我们无法访问或。
如何使用它来解决系统,
正如前一个问题中所建议的,可以通过计算的特征值分解来解决该问题。在我的例子中,由于速度和内存的原因,完整的特征值分解是不可行的,专注于矩阵元素(如 Cholesky)的分解也是如此。
假设是一个大的对称正定矩阵,并假设我们可以有效地应用并且有一个快速求解器来应用,但是我们无法访问或。
如何使用它来解决系统,
正如前一个问题中所建议的,可以通过计算的特征值分解来解决该问题。在我的例子中,由于速度和内存的原因,完整的特征值分解是不可行的,专注于矩阵元素(如 Cholesky)的分解也是如此。
在浏览了一些文献后,我正在回答我自己的问题。我会等几天接受,以防其他人有更好的答案。
首先,这个问题等价于求解, 所以唯一需要的平方根部分就是计算,然后是正常的求解。
下面的论文讨论了两种方法来做到这一点,
矩阵的平方根与向量的乘积的数值近似,Allen,EJ 和 Baglama,J 和 Boyd,SK,线性代数及其应用 2000, http://www.sciencedirect.com/science/article/pii /S0024379500000689
第二种方法将问题转换为求解一个 ODE,其在时间的解为。这个 ODE 是, 这可以通过标准技术如前向欧拉来解决。在每个时间步,必须应用于,然后的正则化版本: 必须应用于结果。在我的特殊情况下,应用的方法可以扩展为也应用
编辑:这种方法的一个主要缺点是 ODE 变得僵硬作为条件数增加。
尼克,你的回答当然是有效的。但是, ,则可以避免 where的额外求解。这是 Henk van der Vorst http://link.springer.com/chapter/10.1007%2F978-3-642-58333-9_2的一本书章节的主题。
计算矩阵平方根(或其逆)的其他几个选项可用。正如您提到的解决 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 方法可能是您最好的选择。