मेरी समझ यह है कि numpy.linalg.lstsq LAPACK रूटीन dgelsd पर निर्भर करता है ।
समस्या को हल करना है:
कम से कम ( ओवर)x )∥ एक एक्स - ख ∥2
बेशक, यह मैट्रिक्स A के लिए एक अद्वितीय समाधान नहीं है, जिसका रैंक वेक्टर लंबाई से कम है । एक अनिर्धारित प्रणाली के मामले में, इस तरह एक समाधान प्रदान करता है:खdgelsd
z
- A z = b
- ∥ z ∥2≤ ∥ एक्स ∥2 for all जो संतुष्ट करता है । (यानी अनिर्धारित प्रणाली का न्यूनतम मानक समाधान है।एक्सअ x = खz
उदाहरण, यदि सिस्टम , तो numpy.linalg.lstsq लौटाएगा ।x + y= 1x = .5 , y= 5
Dgelsd कैसे काम करता है?
दिनचर्या ए dgelsd
की एकवचन मान अपघटन (SVD) की गणना करती है।
मैं सिर्फ एक रैखिक प्रणाली को हल करने के लिए एक SVD का उपयोग करने के पीछे के विचार को स्केच करूँगा। एकवचन मान अपघटन एक कारक है जहाँ और ऑर्थोगोनल मेट्रिसेस हैं और एक विकर्ण मैट्रिक्स है जहाँ विकर्ण प्रविष्टियों को एकवचन मान के रूप में जाना जाता है।यूΣ वी'= एयूवीΣ
मैट्रिक्स की प्रभावी रैंक एकवचन मानों की संख्या होगी जो प्रभावी रूप से गैर-शून्य हैं (यानी मशीन परिशुद्धता आदि के सापेक्ष शून्य से पर्याप्त रूप से भिन्न ...)। चलो गैर शून्य विलक्षण मूल्यों की एक विकर्ण मैट्रिक्स हो। SVD इस प्रकार है:एएस
ए = यू[ एस000] वी'
छद्म प्रतिलोम के ए द्वारा दिया जाता है:
ए†= वी[ एस- 1000] यू'
समाधान पर विचार x = ए†ख । फिर:
एक एक्स - बी= यू[ एस000] वी'वी[ एस- 1000] यू'बी - बी= यू[ मैं000] यू'बी - बी
यहां मूल रूप से दो मामले हैं:
- गैर-शून्य विलक्षण मान (यानी मैट्रिक्स मैं का आकार ) की संख्या ख की लंबाई से कम है । यहाँ समाधान सटीक नहीं होगा; हम कम से कम वर्गों में रैखिक प्रणाली को हल करेंगे।
- एक एक्स - बी = 0
यह आखिरी हिस्सा थोड़ा मुश्किल है ... मैट्रिक्स के आयामों पर नज़र रखने की जरूरत है और इसका उपयोग करना है कि यू एक ऑर्थोगोनल मैट्रिक्स है।
छद्म व्युत्क्रम की समानता
जब ए रैखिक स्वतंत्र पंक्तियाँ, है, तो (उदाहरण के लिए हम एक वसा मैट्रिक्स की है।):
ए†= ए'( ए ए')- 1
एक अनिर्धारित प्रणाली के लिए, आप दिखा सकते हैं कि छद्म उलटा आपको न्यूनतम आदर्श समाधान देता है।
एए†= ( ए'ए )- 1ए'