统计中的一个常见问题是计算对称正定矩阵的平方根逆。什么是最有效的计算方式?
我碰上了一些文献(我还没有读),以及一些附带的R代码里面在这里,我将在这里重现为了方便
# function to compute the inverse square root of a matrix
fnMatSqrtInverse = function(mA) {
ei = eigen(mA)
d = ei$values
d = (d+abs(d))/2
d2 = 1/sqrt(d)
d2[d == 0] = 0
return(ei$vectors %*% diag(d2) %*% t(ei$vectors))
}
我不能完全确定我了解这条线d = (d+abs(d))/2
。有没有更有效的方法来计算矩阵平方根逆?R eigen
函数调用LAPACK。
d[d<0] = 0
,这更具表现力。