【问题标题】:Solve linear equations on a Gram matrix with numpy用 numpy 求解 Gram 矩阵上的线性方程
【发布时间】:2021-04-08 11:19:04
【问题描述】:

考虑一种情况,给定一个 MxM 矩阵 A 和一个向量 b,我想解决 inv(A @ A.T) @ b 形式的问题(我知道 A 是可逆的)。 据我所知,使用solve_* 总是比使用inv 更快。还有一些变体可以使用 Cholesky 分解更有效地求解 PSD 矩阵(A @ A.T 必须如此)。

我的问题 - 因为我正在构造矩阵 A @ A.T 只是为了立即将其丢弃 - 是否有更专业的程序可以用 A 的 gram 矩阵求解线性方程而无需构造它?

【问题讨论】:

标签: python numpy scipy linear-algebra lapack


【解决方案1】:

您可以计算 A 的因式分解,然后用它来求解您的系统。


假设我们要解决

A A^T x = b

x

计算A=LU 的分解。 然后将Ay=b 求解为y。 然后解决A^T x = yx

这样您就不必计算矩阵A^T A


请注意,如果有一个 A=LU 的因式分解,则可以有效地解决 Ax=bA^T x=bx。 这是因为A^T=U^T L^T 又是一个下乘以上三角矩阵的因式分解。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    相关资源
    最近更新 更多