Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

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

विवरण

numpy.linalg.slogdet() फंक्शन एक वर्ग मैट्रिक्स के निर्धारक का चिह्न (sign) और प्राकृतिक लघुगणक (natural logarithm) गणना करता है। यह संख्यात्मक स्थिरता के लिए उपयोगी है जब निर्धारक बहुत बड़ा या बहुत छोटा हो सकता है (ओवरफ्लो/अंडरफ्लो से बचने के लिए)।

पैरामीटर्स

  • a - इनपुट ऐरे, वर्ग 2-D मैट्रिक्स होना चाहिए (M, M)।

रिटर्न मान

  • sign - निर्धारक का चिह्न। वास्तविक मैट्रिक्स के लिए: 1, 0, या -1। कॉम्प्लेक्स के लिए: निरपेक्ष मान 1 की कॉम्प्लेक्स संख्या या 0।
  • logdet - निर्धारक के निरपेक्ष मान का प्राकृतिक लघुगणक। यदि निर्धारक शून्य है, तो sign=0 और logdet=-Inf।

संबंध: determinant = sign * exp(logdet)

चरण

import numpy as np

# 2x2 मैट्रिक्स बनाएं
arr = np.array([[1, 2], [3, 4]])

print("हमारा ऐरे...\n", arr)
print("\nहमारे ऐरे के आयाम...\n", arr.ndim)
print("\nहमारे ऐरे ऑब्जेक्ट का डेटाटाइप...\n", arr.dtype)
print("\nहमारे ऐरे ऑब्जेक्ट का आकार...\n", arr.shape)

# निर्धारक (तुलना के लिए)
print("\nनिर्धारक...\n", np.linalg.det(arr))

# चिह्न और लघुगणक निर्धारक गणना करें
sign, logdet = np.linalg.slogdet(arr)
print("\nपरिणाम....\n", (sign, logdet))

पूर्ण उदाहरण

import numpy as np

# 2x2 मैट्रिक्स बनाएं
arr = np.array([[1, 2], [3, 4]])

# ऐरे प्रदर्शित करें
print("हमारा ऐरे...\n", arr)
print("\nहमारे ऐरे के आयाम...\n", arr.ndim)
print("\nहमारे ऐरे ऑब्जेक्ट का डेटाटाइप...\n", arr.dtype)
print("\nहमारे ऐरे ऑब्जेक्ट का आकार...\n", arr.shape)

# निर्धारक
print("\nनिर्धारक...\n", np.linalg.det(arr))

# चिह्न और लघुगणक निर्धारक
sign, logdet = np.linalg.slogdet(arr)
print("\nपरिणाम....\n", (sign, logdet))

# सत्यापन: sign * exp(logdet) = det
print("\nसत्यापन:", sign * np.exp(logdet))

आउटपुट

हमारा ऐरे...
[[1 2]
 [3 4]]
हमारे ऐरे के आयाम...
2
हमारे ऐरे ऑब्जेक्ट का डेटाटाइप...
int64
हमारे ऐरे ऑब्जेक्ट का आकार...
(2, 2)
निर्धारक...
-2.0000000000000004
परिणाम....
(-1.0, 0.6931471805599455)
सत्यापन: -2.0000000000000004

क्यों slogdet का उपयोग करें?

  • संख्यात्मक स्थिरता: बड़े मैट्रिक्स के लिए det ओवरफ्लो/अंडरफ्लो कर सकता है
  • लॉग-लिकलिहुड: सांख्यिकी/ML में लॉग-निर्धारक सीधे उपयोगी होता है
  • चिह्न जानकारी: निर्धारक का चिह्न अलग से उपलब्ध

उदाहरण: बड़ा मैट्रिक्स

# 100x100 यादृच्छिक मैट्रिक्स
big = np.random.randn(100, 100)

# सीधा निर्धारक (ओवरफ्लो हो सकता है)
# det = np.linalg.det(big)  # अक्सर inf या 0

# slogdet सुरक्षित है
sign, logdet = np.linalg.slogdet(big)
print(f"चिह्न: {sign}, लॉग-निर्धारक: {logdet}")
print(f"निर्धारक परिमाण: {np.exp(logdet):.2e}")

कॉम्प्लेक्स मैट्रिक्स


c = np.array([[1+1j, 2], [3, 4-1j]])
sign, logdet = np.linalg.slogdet(c)
print(sign)    # कॉम्प्लेक्स चिह्न (|sign|=1)
print(logdet)  # वास्तविक लॉग-निर्धारक
  1. - पायथन में इनपुट ऐरे का बेस 2 लॉगरिदम लौटाएं

    पायथन नम्पी में इनपुट ऐरे का बेस 2 लॉगरिदम लौटाने के लिए numpy.log2() मेथड का उपयोग करें। यह मेथड x का बेस-2 लॉगरिदम लौटाता है। यदि x स्केलर है तो यह स्केलर होता है। पहला पैरामीटर x इनपुट मान, ऐरे-जैसा होता है। दूसरा पैरामीटर out है, जहां परिणाम स्टोर होता है। यदि प्रदान किया गया है, तो इसका आकार इ

  1. - पायथन में कॉम्प्लेक्स-वैल्यूड इनपुट के लिए नेचुरल लॉगरिदम निकालें

    नेचुरल लॉगरिदम log एक्सपोनेंशियल फंक्शन का व्युत्क्रम है, ताकि log(exp(x)) = x। नेचुरल लॉगरिदम बेस e में लॉगरिदम है। यह मेथड x का नेचुरल लॉगरिदम एलिमेंट-वाइज लौटाता है। यदि x स्केलर है तो यह स्केलर होता है। पहला पैरामीटर इनपुट मान, ऐरे-जैसा है। दूसरा पैरामीटर out है, जहां परिणाम स्टोर होता है। यदि

  1. - पायथन में नेचुरल लॉगरिदम की गणना करें

    नेचुरल लॉगरिदम log एक्सपोनेंशियल फंक्शन का व्युत्क्रम है, ताकि log(exp(x)) = x। नेचुरल लॉगरिदम बेस e में लॉगरिदम है। यह मेथड x का नेचुरल लॉगरिदम एलिमेंट-वाइज लौटाता है। यदि x स्केलर है तो यह स्केलर होता है। पहला पैरामीटर इनपुट मान, ऐरे-जैसा है। दूसरा पैरामीटर out है, जहां परिणाम स्टोर होता है। यदि