कैसे ठीक करें: numpy.linalg.linalgerror: एकवचन मैट्रिक्स


पाइथॉन में आपके सामने एक त्रुटि आ सकती है:

 numpy.linalg.LinAlgError: Singular matrix

यह त्रुटि तब होती है जब आप एक एकल मैट्रिक्स को उलटने का प्रयास करते हैं, जो परिभाषा के अनुसार एक मैट्रिक्स है जिसका निर्धारक शून्य है और इसे उलटा नहीं किया जा सकता है।

यह ट्यूटोरियल बताता है कि व्यवहार में इस त्रुटि को कैसे हल किया जाए।

त्रुटि को पुन: उत्पन्न कैसे करें

मान लीजिए कि हम NumPy का उपयोग करके निम्नलिखित मैट्रिक्स बनाते हैं:

 import numpy as np

#create 2x2 matrix
my_matrix = np. array ([[1., 1.], [1., 1.]])

#display matrix
print (my_matrix)

[[1. 1.]
 [1. 1.]]

अब मान लीजिए कि हम मैट्रिक्स के व्युत्क्रम की गणना करने के लिए NumPy के inv() फ़ंक्शन का उपयोग करने का प्रयास करते हैं:

 from numpy import inv

#attempt to invert matrix
inv(my_matrix)

numpy.linalg.LinAlgError: Singular matrix

हमें एक त्रुटि प्राप्त होती है क्योंकि हमारे द्वारा बनाए गए मैट्रिक्स में व्युत्क्रम मैट्रिक्स नहीं है।

ध्यान दें : वुल्फ्राम मैथवर्ल्ड के इस पृष्ठ को देखें जो आव्यूहों के 10 अलग-अलग उदाहरण दिखाता है जिनमें व्युत्क्रम आव्यूह नहीं है।

परिभाषा के अनुसार, एक मैट्रिक्स एकवचन है और यदि इसका निर्धारक शून्य है तो इसे उलटा नहीं किया जा सकता है।

आप किसी दिए गए मैट्रिक्स को उलटने का प्रयास करने से पहले उसके निर्धारक की गणना करने के लिए NumPy के det() फ़ंक्शन का उपयोग कर सकते हैं:

 from numpy import det

#calculate determinant of matrix
det(my_matrix)

0.0

हमारे मैट्रिक्स का निर्धारक शून्य है, जो बताता है कि हमें त्रुटि का सामना क्यों करना पड़ता है।

त्रुटि को कैसे ठीक करें

इस त्रुटि से बचने का एकमात्र तरीका केवल एक मैट्रिक्स बनाना है जो एकल नहीं है।

उदाहरण के लिए, मान लीजिए कि हम निम्नलिखित मैट्रिक्स को उलटने के लिए inv() फ़ंक्शन का उपयोग करते हैं:

 import numpy as np
from numpy. linalg import inv, det

#create 2x2 matrix that is not singular
my_matrix = np. array ([[1., 7.], [4., 2.]])

#display matrix
print (my_matrix)

[[1. 7.]
 [4. 2.]]

#calculate determinant of matrix
print (det(my_matrix))

-25.9999999993

#calculate inverse of matrix
print (inv(my_matrix))

[[-0.07692308 0.26923077]
 [0.15384615 -0.03846154]]

मैट्रिक्स को उल्टा करते समय हमें कोई त्रुटि नहीं मिलती क्योंकि मैट्रिक्स एकवचन नहीं है।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि पायथन में अन्य सामान्य त्रुटियों को कैसे ठीक किया जाए:

कैसे ठीक करें: ऑब्जेक्ट ‘numpy.float64’ कॉल करने योग्य नहीं है
कैसे ठीक करें: ऑब्जेक्ट ‘numpy.ndarray’ कॉल करने योग्य नहीं है
कैसे ठीक करें: ऑब्जेक्ट ‘numpy.float64’ की व्याख्या पूर्णांक के रूप में नहीं की जा सकती

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *