NumPy 1.14 - numpy.linalg.cholesky()

numpy.linalg.cholesky




numpy

numpy.linalg.cholesky

numpy.linalg.cholesky(a) [source]

चोल्स्की अपघटन।

चॉल्स्की अपघटन लौटें, L * LH , स्क्वायर मैट्रिक्स a , जहां L लोअर-त्रिकोणीय है और। एच एक संयुग्मित ट्रांसजेंडर ऑपरेटर है (जो कि a वास्तविक-मूल्यवान है तो साधारण ट्रांसपोज़ है)। हर्मिटियन होना चाहिए (यदि वास्तविक-मूल्यवान हो तो सममित) और सकारात्मक-निश्चित। केवल L वास्तव में वापस आ गया है।

पैरामीटर:

a : (…, M, M) array_like

हर्मिटियन (सममिति यदि सभी तत्व वास्तविक हैं), सकारात्मक-निश्चित इनपुट मैट्रिक्स।

यह दिखाता है:

एल : (…, एम, एम) array_like

एक के ऊपरी या निचले-त्रिकोणीय चोल्स्की कारक। यदि कोई मैट्रिक्स ऑब्जेक्ट है, तो मैट्रिक्स ऑब्जेक्ट लौटाता है।

जन्म देती है:

LinAlgError

यदि अपघटन विफल हो जाता है, उदाहरण के लिए, यदि कोई सकारात्मक-निश्चित नहीं है।

टिप्पणियाँ

संस्करण 1.8.0 में नया।

प्रसारण नियम लागू होते हैं, विवरण के लिए numpy.linalg प्रलेखन देखें।

चोल्स्की अपघटन को अक्सर हल करने के तेज़ तरीके के रूप में उपयोग किया जाता है

A \ mathbf {x} = \ mathbf {b}

(जब A दोनों हर्मिटियन / सममित और सकारात्मक-निश्चित हैं)।

सबसे पहले, हम हल करते हैं \ Mathbf {y} में

L \ mathbf {y} = \ mathbf {b},

और फिर के लिए \ Mathbf {x} में

L.H \ mathbf {x} = \ mathbf {y}।

उदाहरण

>>> A = np.array([[1,-2j],[2j,5]])
>>> A
array([[ 1.+0.j,  0.-2.j],
       [ 0.+2.j,  5.+0.j]])
>>> L = np.linalg.cholesky(A)
>>> L
array([[ 1.+0.j,  0.+0.j],
       [ 0.+2.j,  1.+0.j]])
>>> np.dot(L, L.T.conj()) # verify that L * L.H = A
array([[ 1.+0.j,  0.-2.j],
       [ 0.+2.j,  5.+0.j]])
>>> A = [[1,-2j],[2j,5]] # what happens if A is only array_like?
>>> np.linalg.cholesky(A) # an ndarray object is returned
array([[ 1.+0.j,  0.+0.j],
       [ 0.+2.j,  1.+0.j]])
>>> # But a matrix object is returned if A is a matrix object
>>> LA.cholesky(np.matrix(A))
matrix([[ 1.+0.j,  0.+0.j],
        [ 0.+2.j,  1.+0.j]])