श्वास। एकवचन निर्धारित करने के लिए निर्धारक की गणना पूरी तरह से करने के लिए एक हास्यास्पद बात है। विशेष रूप से एक बड़े मैट्रिक्स के लिए। क्षमा करें, लेकिन यह है। क्यूं कर? हां, कुछ किताबें आपको यह करने के लिए कहती हैं। शायद आपका प्रशिक्षक भी।
विश्लेषणात्मक एकता एक बात है। लेकिन एकवचन के संख्यात्मक दृढ़ संकल्प के बारे में कैसे? जब तक आप एक प्रतीकात्मक उपकरण का उपयोग नहीं कर रहे हैं, MATLAB फ़्लोटिंग पॉइंट अंकगणित का उपयोग करता है। इसका मतलब यह है कि यह संख्याओं को फ्लोटिंग पॉइंट, डबल परिशुद्धता मान के रूप में संग्रहीत करता है। उन संख्याओं की तुलना में परिमाण में छोटे नहीं हो सकता
>> realmin
ans =
2.2251e-308
(वास्तव में, MATLAB एक सा है कि तुलना में कम हो जाता है, denormalized संख्या है, जो लगभग 1e-323 के लिए नीचे जा सकते हैं के संदर्भ में।) देखें कि जब मैं स्टोर करने के लिए कोशिश उससे छोटी संख्या में, MATLAB सोचता है कि यह शून्य है।
>> A = 1e-323
A =
9.8813e-324
>> A = 1e-324
A =
0
बड़े मैट्रिक्स के साथ क्या होता है?
M = eye(1000);
के बाद से एम एक पहचान मैट्रिक्स है, यह काफी स्पष्ट रूप से गैर विलक्षण है: उदाहरण के लिए, इस मैट्रिक्स विलक्षण है। वास्तव में, det सुझाव देता है कि यह गैर-एकवचन है।
>> det(M)
ans =
1
लेकिन, कुछ स्थिरता से इसे गुणा करें। क्या यह गैर-एकवचन बनाता है? नहीं!!!!!!!!!!!!!!!!!!!!!!!! बिलकूल नही। लेकिन वैसे भी कोशिश करें।
>> det(M*0.1)
ans =
0
हम्म। चीजें अजीब है। MATLAB मुझे बताता है कि निर्धारक शून्य है। लेकिन हम जानते हैं कि निर्धारक 1e-1000 है। अरे हाँ। गोश, 1e-1000 छोटा है, छोटी संख्या से काफी मात्रा में मैंने आपको दिखाया है कि MATLAB डबल के रूप में स्टोर कर सकता है। तो निर्धारक अंडरफ्लो, भले ही यह स्पष्ट रूप से शून्य न हो। क्या मैट्रिक्स एकवचन है? बिलकूल नही। लेकिन क्या डिट का उपयोग यहां विफल रहता है?बेशक यह होगा, और यह पूरी तरह से उम्मीद है।
इसके बजाय, एकवचन के निर्धारण के लिए एक अच्छा उपकरण का उपयोग करें। कंड, या रैंक जैसे टूल का प्रयोग करें। उदाहरण के लिए, क्या हम रैंक को मूर्ख बना सकते हैं?
>> rank(M)
ans =
1000
>> rank(M*.1)
ans =
1000
कि रैंक जानता है यह एक पूर्ण रैंक मैट्रिक्स है, कि क्या हम इसे बड़े पैमाने की परवाह किए बिना या नहीं देखें। एम
>> cond(M)
ans =
1
>> cond(M*.1)
ans =
1
फ्लोटिंग पॉइंट अंकगणित की दुनिया में आपका स्वागत है। और ओह, वैसे, फ्लोटिंग पॉइंट अंकगणित का उपयोग करके लगभग किसी भी गणना के लिए एक उपकरण के रूप में det के बारे में भूल जाओ। यह लगभग हमेशा एक गरीब पसंद है।
Pseudoinverse के लिए PINV समारोह वहाँ – Amro