在本征,如果我们有对称正定矩阵A
那么我们就可以通过本征对称正定矩阵的高效逆
A.inverse();
或
A.llt().solve(I);
计算的A
逆其中I
是与A
大小相同的单位矩阵。但是有没有更有效的方法来计算对称正定矩阵的逆?
例如,如果我们写的A
的Cholesky分解为A = LL^{T}
,然后L^{-T} L^{-1}
是因为A L^{-T} L^{-1} = LL^{T} L^{-T} L^{-1} = I
(和其中L^{-T}
表示的L
转置的倒数)的A
倒数。因此,我们可以获得A
的Cholesky分解,计算其逆,然后获得该逆的叉积来找到A
的逆。但我的直觉是,计算这些明确的步骤将比上述使用A.llt().solve(I)
慢。
而在任何人问起之前,我的确需要明确的反转 - 它是对Gibbs采样器的一部分进行计算。
虽然接受的答案没有说明是否有更快的方法来计算具有特征的对称正定矩阵的逆,但我在问题中提到的显式方法是最快的方法(并且有序O((1/3)n^3 + 2n^2)) - 这显然是Eigen所做的。 – dpritch