Ein häufiges Problem in der Statistik ist die Berechnung der Quadratwurzel einer symmetrischen positiven definitiven Matrix. Was wäre der effizienteste Weg, dies zu berechnen?
Ich bin auf Literatur gestoßen (die ich noch nicht gelesen habe) und habe hier zufälligen R-Code gefunden , den ich hier der Einfachheit halber wiedergeben werde
# 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))
}
Ich bin nicht ganz sicher, ob ich die Zeile verstehe d = (d+abs(d))/2
. Gibt es eine effizientere Methode zur Berechnung der Quadratwurzel-Inversen? Die R- eigen
Funktion ruft LAPACK auf .
d[d<0] = 0
, was aussagekräftiger ist.