İstatistiklerde sık karşılaşılan bir problem, simetrik pozitif belirli bir matrisin ters kökünün hesaplanmasıdır. Bunu hesaplamanın en etkili yolu ne olabilir?
Burada (henüz okumadım) bazı literatür ve rastlantısal olarak burada çoğaltacağım bazı rastlantısal R kodlarıyla karşılaştım.
# 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))
}
Hattı anladığımdan tam olarak emin değilim d = (d+abs(d))/2
. Matris karekökünü ters hesaplamanın daha etkili bir yolu var mı? R eigen
işlevi LAPACK'i çağırır .
d[d<0] = 0
daha etkileyici bir şekilde yeniden yazmanızı öneririm .