आंकड़ों में एक आम समस्या एक सममित सकारात्मक निश्चित मैट्रिक्स के वर्गमूल व्युत्क्रम की गणना कर रही है। यह कंप्यूटिंग का सबसे कुशल तरीका क्या होगा?
मुझे कुछ साहित्य (जो मैंने अभी तक नहीं पढ़े हैं), और कुछ आकस्मिक आर कोड यहाँ आए , जिन्हें मैं यहाँ अलग करने के लिए पुन: पेश करूँगा
# 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
, जो अधिक अभिव्यंजक है।