矩阵的逆和平方根的 lapack cholesky 分解
lapack cholesky factorization for inverse and square root of a matrix
我有一个 nxn 维的对称正定矩阵 "A"。我想计算它的倒数和平方根。我的问题是:
我可以使用 lapack 子例程 "dpotri" 计算逆,其中 returns A 的逆的 upper/lower 三角形部分。我可以计算 A 的平方根吗使用从 dpotri 获得的信息,还是我需要使用 "dpotrf" 单独计算平方根。顺序并不重要。我的意思是说,我们能否先使用 "dpotrf" 来计算 A=LL'(其中 L' 是平方根),然后在不使用 dpotri 的情况下从中计算 A 的倒数。
我只有A的上三角部分,其余元素初始设置为0。我可以通过从上部复制元素来更改其下部,但我想避免此操作。我们可以在矩阵 "A" 上使用 "dpotri" 或 "dpotrf" 只有上部(其余矩阵元素设置为 0)吗?
好的。所以另一条路线是 dsyevr
特征值和特征向量。但从技术上讲,这取决于矩阵的条件。然后 dsyevr
收敛得非常快,应该很容易胜过 Cholesky 方法。但是条件较差的矩阵在 dpotrf
.
中表现更好
我有一个 nxn 维的对称正定矩阵 "A"。我想计算它的倒数和平方根。我的问题是:
我可以使用 lapack 子例程 "dpotri" 计算逆,其中 returns A 的逆的 upper/lower 三角形部分。我可以计算 A 的平方根吗使用从 dpotri 获得的信息,还是我需要使用 "dpotrf" 单独计算平方根。顺序并不重要。我的意思是说,我们能否先使用 "dpotrf" 来计算 A=LL'(其中 L' 是平方根),然后在不使用 dpotri 的情况下从中计算 A 的倒数。
我只有A的上三角部分,其余元素初始设置为0。我可以通过从上部复制元素来更改其下部,但我想避免此操作。我们可以在矩阵 "A" 上使用 "dpotri" 或 "dpotrf" 只有上部(其余矩阵元素设置为 0)吗?
好的。所以另一条路线是 dsyevr
特征值和特征向量。但从技术上讲,这取决于矩阵的条件。然后 dsyevr
收敛得非常快,应该很容易胜过 Cholesky 方法。但是条件较差的矩阵在 dpotrf
.