NumPy 1.14 - numpy.linalg.slogdet()

numpy.linalg.slogdet




numpy

numpy.linalg.slogdet

numpy.linalg.slogdet(a) [source]

किसी सरणी के निर्धारक के चिह्न और (प्राकृतिक) लघुगणक की गणना करें।

यदि किसी सरणी में बहुत छोटा या बहुत बड़ा निर्धारक होता है, तो कॉल करने के लिए अतिप्रवाह या कम प्रवाह हो सकता है। इस तरह के मुद्दों के खिलाफ यह दिनचर्या अधिक मजबूत है, क्योंकि यह स्वयं निर्धारक के बजाय निर्धारक के लघुगणक की गणना करता है।

पैरामीटर:

a : (…, M, M) array_like

इनपुट सरणी, का वर्ग 2-डी सरणी होना चाहिए।

यह दिखाता है:

साइन इन करें : (…) array_like

निर्धारक के संकेत का प्रतिनिधित्व करने वाली एक संख्या। एक वास्तविक मैट्रिक्स के लिए, यह 1, 0, या -1 है। एक जटिल मैट्रिक्स के लिए, यह एक जटिल संख्या है जिसका निरपेक्ष मान 1 है (यानी, यह इकाई चक्र पर है), या फिर 0।

logdet : (…) array_like

निर्धारक के निरपेक्ष मान का प्राकृतिक लॉग।

यदि निर्धारक शून्य है, तो sign 0 होगा और logdet होगा

-Inf। सभी मामलों में, निर्धारक sign * np.exp(logdet) बराबर है।

यह भी देखें

det

टिप्पणियाँ

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

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

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

निर्धारक LUACK रूटीन z / dgetrf का उपयोग करके LU कारक के माध्यम से गणना की जाती है।

उदाहरण

2-डी सरणी [[a, b], [c, d]] का निर्धारक ad - bc :

>>> a = np.array([[1, 2], [3, 4]])
>>> (sign, logdet) = np.linalg.slogdet(a)
>>> (sign, logdet)
(-1, 0.69314718055994529)
>>> sign * np.exp(logdet)
-2.0

मैट्रिक्स के ढेर के लिए लॉग-निर्धारक की गणना करना:

>>> a = np.array([ [[1, 2], [3, 4]], [[1, 2], [2, 1]], [[1, 3], [3, 1]] ])
>>> a.shape
(3, 2, 2)
>>> sign, logdet = np.linalg.slogdet(a)
>>> (sign, logdet)
(array([-1., -1., -1.]), array([ 0.69314718,  1.09861229,  2.07944154]))
>>> sign * np.exp(logdet)
array([-2., -3., -8.])

यह दिनचर्या सफल होती है जहाँ साधारण det नहीं होती है:

>>> np.linalg.det(np.eye(500) * 0.1)
0.0
>>> np.linalg.slogdet(np.eye(500) * 0.1)
(1, -1151.2925464970228)