NumPy का numpy.linalg.inv() फंक्शन मैट्रिक्स का मल्टीप्लिकेटिव इनवर्स (गुणात्मक प्रतिलोम) निकालता है। np.matrix ऑब्जेक्ट के साथ उपयोग करने पर यह मैट्रिक्स ऑब्जेक्ट लौटाता है।
सिंटैक्स
numpy.linalg.inv(a)
- a: वर्ग मैट्रिक्स (2D ऐरे या मैट्रिक्स ऑब्जेक्ट)।
- वापसी: मैट्रिक्स
ainvजैसे किa @ ainv = ainv @ a = I।
उदाहरण: np.matrix के साथ
import numpy as np
from numpy.linalg import inv
# 2x2 ऐरे बनाएं
arr = np.array([[5, 10], [15, 20]])
print("मूल ऐरे:\n", arr)
print("\nडायमेंशन्स:", arr.ndim)
print("डेटा टाइप:", arr.dtype)
print("आकार:", arr.shape)
# np.matrix में बदलकर इनवर्स निकालें
mat = np.matrix(arr)
inv_mat = np.linalg.inv(mat)
print("\nमैट्रिक्स इनवर्स:\n", inv_mat)
print("\nइनवर्स का टाइप:", type(inv_mat))
# सत्यापन: A * A⁻¹ = I
identity = mat * inv_mat
print("\nसत्यापन (A * A⁻¹):\n", identity)
आउटपुट
मूल ऐरे:
[[ 5 10]
[15 20]]
डायमेंशन्स: 2
डेटा टाइप: int64
आकार: (2, 2)
मैट्रिक्स इनवर्स:
[[-0.4 0.2]
[ 0.3 -0.1]]
इनवर्स का टाइप:
सत्यापन (A * A⁻¹):
[[1. 0.]
[0. 1.]]
गणना विवरण
मैट्रिक्स A = [[5, 10], [15, 20]] के लिए:
- डिटरमिनेंट:
det(A) = 5×20 - 10×15 = 100 - 150 = -50 - एडजॉइंट:
adj(A) = [[20, -10], [-15, 5]] - इनवर्स:
A⁻¹ = adj(A) / det(A) = [[-0.4, 0.2], [0.3, -0.1]]
महत्वपूर्ण नोट्स
np.matrixक्लास डिप्रिकेटेड है (NumPy 1.19+)। नए कोड में 2D ऐरे (ndarray) का उपयोग करें।- 2D ऐरे के साथ
inv()ऐरे लौटाता है, मैट्रिक्स नहीं। - मैट्रिक्स गुणन के लिए
@ऑपरेटर (याnp.dot()) का उपयोग करें।
आधुनिक दृष्टिकोण (ndarray के साथ)
import numpy as np
arr = np.array([[5, 10], [15, 20]], dtype=float)
inv_arr = np.linalg.inv(arr)
print("इनवर्स:\n", inv_arr)
print("सत्यापन (A @ A⁻¹):\n", arr @ inv_arr)
सिंगुलर मैट्रिक्स हैंडलिंग
singular = np.array([[1, 2], [2, 4]]) # डिटरमिनेंट = 0
try:
inv_singular = np.linalg.inv(singular)
except np.linalg.LinAlgError as e:
print("एरर:", e) # Singular matrix
उपयोग के मामले
- रैखिक समीकरण प्रणाली हल करना:
x = A⁻¹b। - कंप्यूटर ग्राफिक्स में ट्रांसफॉर्मेशन इनवर्स।
- कंट्रोल सिस्टम्स और ऑप्टिमाइजेशन।
- सांख्यिकी में कोवेरिएंस मैट्रिक्स इनवर्स।