ปัญหาที่พบบ่อยในสถิติคือการคำนวณค่าผกผันสแควร์รูทของเมทริกซ์แน่นอนบวกที่เป็นสมมาตร อะไรจะเป็นวิธีที่มีประสิทธิภาพสูงสุดในการคำนวณสิ่งนี้?
ฉันเจอวรรณกรรมบางเล่ม (ซึ่งฉันยังไม่ได้อ่าน) และมีรหัส 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
ผมไม่แน่ใจว่าทั้งหมดผมเข้าใจบรรทัด มีวิธีที่มีประสิทธิภาพมากกว่าในการคำนวณเมทริกซ์ผกผันสแควร์รูทหรือไม่? การวิจัยeigen
การเรียกฟังก์ชัน LAPACK
d[d<0] = 0
ใหม่ซึ่งมีความหมายมากกว่า