आपके प्रश्न में कई समस्याएं हैं।
मैट्रिक्स की संख्यात्मक रैंक की गणना करने के लिए गॉसियन एलिमिनेशन (एलयू फैक्टराइजेशन) का उपयोग न करें। फ्लोटिंग-पॉइंट अंकगणित में इस उद्देश्य के लिए एलयू फैक्टराइजेशन अविश्वसनीय है। इसके बजाय, रैंक-खुलासा करने वाले क्यूआर अपघटन का उपयोग करें (जैसे कि xGEQPX
या xGEPQY
एलएपीकेई में, जहां एक्स सी, डी, एस या जेड है, हालांकि उन रूटीनों को ट्रैक करना मुश्किल है; संबंधित प्रश्न पर जेडब्रोर्न का जवाब देखें ), या एसवीडी का उपयोग करें (एकवचन मान अपघटन, जैसे xGESDD
या xGESVD
, जहाँ x फिर C, D, S या Z है)। एसवीडी संख्यात्मक रैंक के निर्धारण के लिए एक अधिक सटीक, विश्वसनीय एल्गोरिथ्म है, लेकिन इसके लिए अधिक फ्लोटिंग-पॉइंट संचालन की आवश्यकता होती है।
हालांकि, एक रैखिक प्रणाली को हल करने के लिए, एलयू कारक (आंशिक धुरी के साथ, जो कि लैपैक में मानक कार्यान्वयन है) व्यवहार में अत्यंत विश्वसनीय है। कुछ रोग संबंधी मामले हैं जिनके लिए आंशिक धुरी के साथ LU कारक अस्थिर है ( संख्यात्मक 22 रेखीय बीजगणित में व्याख्यान 22 देखें)ट्रेफेथेन और विवरण के लिए बाऊ द्वारा)। क्यूआर फ़ैक्टराइजेशन रैखिक प्रणालियों को हल करने के लिए एक अधिक स्थिर संख्यात्मक एल्गोरिथ्म है, यही कारण है कि शायद यह आपको ऐसे सटीक परिणाम देता है। हालाँकि, इसे वर्ग मैट्रिक्स के लिए 2 के कारक द्वारा LU कारक से अधिक फ्लोटिंग-पॉइंट संचालन की आवश्यकता होती है (मुझे लगता है कि; जैकपॉल्सन मुझे उस पर सही कर सकता है)। आयताकार प्रणालियों के लिए, क्यूआर फ़ैक्टराइजेशन एक बेहतर विकल्प है क्योंकि यह कम से कम वर्गों के समाधान के लिए अधिक से अधिक रैखिक प्रणालियों का उत्पादन करेगा। एसवीडी का उपयोग रैखिक प्रणालियों को हल करने के लिए भी किया जा सकता है, लेकिन यह क्यूआर फैक्टराइजेशन की तुलना में अधिक महंगा होगा।
janneb सही है कि numpy.linalg.svd xGESDD
LAPACK में एक आवरण है । एकवचन मान decompositions दो चरणों में आगे बढ़ते हैं। सबसे पहले, मैट्रिक्स को विघटित करने के लिए बोली-प्रक्रिया के रूप में कम किया जाता है। एलएपीकेए में बीडियोऑर्गनल फॉर्म को कम करने के लिए उपयोग किया जाने वाला एल्गोरिदम संभवतः लॉसन-हैनसन-चान एल्गोरिथ्म है, और यह एक बिंदु पर क्यूआर फैक्टराइजेशन का उपयोग करता है। ट्रेफेथेन और बाऊ द्वारा न्यूमेरिकल रैखिक बीजगणित में व्याख्यान 31 इस प्रक्रिया का अवलोकन देता है। फिर, xGESDD
द्विदिशीय मैट्रिक्स से एकवचन मूल्यों और बाएँ और दाएँ एकवचन वैक्टर की गणना करने के लिए एक डिवाइड-और-कॉनकॉर एल्गोरिथ्म का उपयोग करता है। इस कदम पर पृष्ठभूमि प्राप्त करने के लिए, आपको जिम डिमेल द्वारा गोलब और वैन ऋण, या एप्लाइड न्यूमेरिकल रैखिक बीजगणित द्वारा मैट्रिक्स संगणनाओं से परामर्श करने की आवश्यकता होगी ।
अंत में, आपको eigenvalues के साथ एकवचन मूल्यों को भ्रमित नहीं करना चाहिए । मात्रा के ये दो सेट समान नहीं हैं। एसवीडी एक मैट्रिक्स के विलक्षण मूल्यों की गणना करता है। MATLAB के साथ क्लीव मोलर की न्यूमेरिकल कम्प्यूटिंग एकवचन मूल्यों और आइजनवेल्यूज़ के बीच के अंतर का एक अच्छा अवलोकन देती है । सामान्य तौर पर, वहाँ एकवचन और अपने eigenvalues, किसी दिए गए मैट्रिक्स के मूल्यों के बीच कोई स्पष्ट संबंध के मामले को छोड़कर है सामान्य मैट्रिक्स, जहां विलक्षण मूल्यों eigenvalues का निरपेक्ष मान रहे हैं।
dgesdd
वास्तविक मूल्यवान SVDs के लिए लापैक रूटीन का उपयोग करता है । तो आपका असली सवाल शायद "लैपैक डीएजीएसडी कैसे काम करता है?", और स्टैकओवरफ्लो के लिए यह बहुत ही विषय है।