आर में मरम्मत कैसे करें: सिस्टम बिल्कुल एकल है
R में आपके सामने एक त्रुटि आ सकती है:
Lapack routine dgesv: system is exactly singular: U[2,2] = 0
यह त्रुटि तब होती है जब आप सॉल्व() फ़ंक्शन का उपयोग करने का प्रयास करते हैं, लेकिन जिस मैट्रिक्स के साथ आप काम कर रहे हैं वह एक एकल मैट्रिक्स है जिसमें मैट्रिक्स व्युत्क्रम नहीं होता है।
यह ट्यूटोरियल बताता है कि व्यवहार में इस त्रुटि को कैसे हल किया जाए।
त्रुटि को पुन: उत्पन्न कैसे करें
मान लीजिए कि हम R में निम्नलिखित मैट्रिक्स बनाते हैं:
#create singular matrix
mat <- matrix(c(1, 1, 1, 1), ncol= 2 , nrow= 2 )
#view matrix
mast
[,1] [,2]
[1,] 1 1
[2,] 1 1
अब मान लीजिए कि हम मैट्रिक्स के व्युत्क्रम की गणना करने के लिए सॉल्व() फ़ंक्शन का उपयोग करने का प्रयास करते हैं:
#attempt to invert matrix
solve(mat)
Error in solve.default(mat):
Lapack routine dgesv: system is exactly singular: U[2,2] = 0
हमें एक त्रुटि प्राप्त होती है क्योंकि हमारे द्वारा बनाए गए मैट्रिक्स में व्युत्क्रम मैट्रिक्स नहीं है।
ध्यान दें : वुल्फ्राम मैथवर्ल्ड के इस पृष्ठ को देखें जो आव्यूहों के 10 अलग-अलग उदाहरण दिखाता है जिनमें व्युत्क्रम आव्यूह नहीं है।
परिभाषा के अनुसार, एक मैट्रिक्स एकवचन होता है यदि उसका निर्धारक शून्य हो।
आप किसी दिए गए मैट्रिक्स को उलटने का प्रयास करने से पहले उसके निर्धारक की गणना करने के लिए det() फ़ंक्शन का उपयोग कर सकते हैं:
#calculate determinant of matrix
det(mat)
[1] 0
हमारे मैट्रिक्स का निर्धारक शून्य है, जो बताता है कि हमें त्रुटि का सामना क्यों करना पड़ता है।
त्रुटि को कैसे ठीक करें
इस त्रुटि को ठीक करने का एकमात्र तरीका केवल एक मैट्रिक्स बनाना है जो एकल नहीं है।
उदाहरण के लिए, मान लीजिए कि हम R में निम्नलिखित मैट्रिक्स को उलटने के लिए सॉल्व() फ़ंक्शन का उपयोग करते हैं:
#create matrix that is not singular
mat <- matrix(c(1, 7, 4, 2), ncol= 2 , nrow= 2 )
#view matrix
mast
[,1] [,2]
[1,] 1 4
[2,] 7 2
#calculate determinant of matrix
det(mat)
[1] -26
#invert matrix
solve(mat)
[,1] [,2]
[1,] -0.07692308 0.15384615
[2,] 0.26923077 -0.03846154
मैट्रिक्स को उल्टा करते समय हमें कोई त्रुटि नहीं मिलती क्योंकि मैट्रिक्स एकवचन नहीं है।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि आर में अन्य सामान्य त्रुटियों को कैसे ठीक किया जाए:
कैसे ठीक करें: शर्त की लंबाई > 1 है और केवल पहला तत्व उपयोग किया जाएगा
कैसे ठीक करें: बाइनरी ऑपरेटर का गैर-संख्यात्मक तर्क
कैसे ठीक करें: dim(X) की लंबाई धनात्मक होनी चाहिए
कैसे ठीक करें: अप्रयुक्त तर्कों को चुनने में त्रुटि