एक विरल और अत्यधिक बीमार प्रणाली को हल करना


9

मैं एक्स = बी को हल करने का इरादा रखता हूं जहां ए जटिल, विरल, असममित और अत्यधिक बीमार-स्थिति (स्थिति संख्या ~ 1 ई + 20) वर्ग या आयताकार मैट्रिक्स है। मैं LAPACK में ZGELSS के साथ प्रणाली को सही ढंग से हल करने में सक्षम रहा हूं। लेकिन जैसे ही मेरे सिस्टम में स्वतंत्रता की डिग्री बढ़ती है, ZGELSS के साथ पीसी पर सिस्टम को हल करने में लंबा समय लगता है क्योंकि स्पार्सिटी का दोहन नहीं होता है। हाल ही में मैंने एक ही सिस्टम के लिए SuperLU (हार्वेल-बोइंग स्टोरेज का उपयोग करके) की कोशिश की, लेकिन परिणाम हालत संख्या> 1E + 12 के लिए गलत थे (मुझे यकीन नहीं है कि यह पिवट के साथ एक संख्यात्मक मुद्दा है)।

मैं पहले से ही विकसित सॉल्वरों का उपयोग करने के लिए अधिक इच्छुक हूं। क्या एक मजबूत सॉल्वर है जो मेरे द्वारा बताए गए सिस्टम को हल कर सकता है (यानी स्पार्सिटी का फायदा उठाते हुए) और मज़बूती से (कंडीशन नंबरों को देखते हुए)?


1
क्या आप इसे पहले से बता सकते हैं? यदि हां, तो क्रायलोव उप-प्रविधि प्रभावी हो सकती है। यहां तक ​​कि अगर आप सीधे तरीकों पर जोर देते हैं, तो प्रींडॉन्डिशनिंग संख्यात्मक त्रुटियों को नियंत्रित करने में मदद करेगा।
ज्योफ ऑक्सीबेरी 27'13

1
मैंने यह बताने के लिए बहुत अच्छा अनुभव किया है कि जिस तरह से यहाँ वर्णित किया गया है: en.wikipedia.org/wiki/… आप सटीक अंकगणित में पूर्व- परीक्षा कर सकते हैं। मेरे मैट्रिस्स हालांकि सभी घने हैं, इसलिए आपको यहां अधिक विशिष्ट तरीकों / दिनचर्या की ओर इशारा नहीं किया जा सकता है।
एलेक्स ईएसपी

11
हालत संख्या इतनी बड़ी क्यों है? शायद व्यवस्था को बेहतर स्थिति में लाने के लिए सूत्रीकरण में सुधार किया जा सकता है? सामान्य तौर पर, आप अवशिष्ट से अधिक सटीक रूप से मूल्यांकन करने में सक्षम होने की उम्मीद नहीं कर सकते(machine precision)(condition number), जो बिट्स से बाहर निकल जाने पर क्रिलोव को कम मूल्य का बना देता है। अगर हालत संख्या वास्तव में है1020, आपको क्वाड प्रिसिजन ( __float128जीसीसी के साथ, पेट्सक सहित कुछ पैकेजों द्वारा समर्थित) का उपयोग करना चाहिए ।
जेड ब्राउन

2
आप यह स्थिति संख्या अनुमान कहां से प्राप्त कर रहे हैं? यदि आप मतलाब से रिक्त स्थान के साथ मैट्रिक्स की स्थिति संख्या का अनुमान लगाने के लिए कहते हैं, तो यह आपको अनंतता दे सकता है या कभी-कभी यह आपको वास्तव में बहुत बड़ी संख्या दे सकता है (जैसे आपके पास क्या है)। यदि आप जिस सिस्टम को देख रहे हैं, उसमें एक रिक्त स्थान है और आप जानते हैं कि यह क्या है, तो आप इसे प्रोजेक्ट कर सकते हैं और आपके पास जो कुछ बचा है वह बेहतर स्थिति संख्या में हो सकता है। फिर आप पेट्सक या ट्रिलिनोस या आपके पास क्या उपयोग कर सकते हैं।
डैनियल शेपरो

3
डैनियल- ZGELSS द्वारा उपयोग की गई छिन्न-भिन्न SVD विधि शून्य स्थान निर्धारित करती है (SVD में छोटे एकवचन मानों से जुड़े एकवचन वैक्टर N (A) के लिए एक आधार होते हैं) और सबसे कम वर्ग समाधानों का पता लगाता है minAxbओवर प्रति । perp(N(A))
ब्रायन बॉर्चर्स

जवाबों:


13

जब आप इस समस्या को हल करने के लिए ZGELSS का उपयोग करते हैं, तो आप इस अत्यंत बीमार स्थिति को नियमित करने के लिए छंटनी किए गए एकवचन मूल्य अपघटन का उपयोग कर रहे हैं। यह समझना महत्वपूर्ण है कि यह लाइब्रेरी रूटीन लिए एक न्यूनतम वर्ग समाधान खोजने का प्रयास नहीं कर रहा है , बल्कि यह एक समाधान खोजने के लिए संतुलन बनाने का प्रयास कर रहा है जो कि न्यूनतम करता हैकम करने के खिलाफ। Ax=bxAxb

ध्यान दें कि ZGELSS को दिए गए पैरामीटर RCOND का उपयोग यह निर्दिष्ट करने के लिए किया जा सकता है कि विलक्षण मानों को शामिल किया जाना चाहिए और समाधान की गणना से बाहर रखा जाना चाहिए। RCOND * S (1) (S (1) सबसे बड़ा एकवचन मान है) से कम किसी भी विलक्षण मान को अनदेखा किया जाएगा। आपने हमें यह नहीं बताया है कि आपने ZGELSS में RCOND पैरामीटर कैसे सेट किया है, और हमें आपके मैट्रिक्स में या दाहिने हाथ की तरफ में गुणांक के शोर स्तर के बारे में कुछ भी नहीं पता है , इसलिए यह कहना मुश्किल है कि क्या आपने उपयोग किया है नियमितीकरण की एक उचित राशि। Ab

आपको लगता है कि आप ZGELSS के साथ मिलने वाले नियमित समाधानों से खुश हैं, इसलिए ऐसा प्रतीत होता है कि नियमित रूप से छंटनी की गई SVD विधि (जो एक न्यूनतम _ ढूँढता है) के प्रभाव से कम से कम वर्गों के समाधानों से प्रभावित होती है: RCOND * S (1) की तुलना में एकवचन मूल्यों से जुड़े एकवचन वैक्टर द्वारा फैलाए गए समाधानों के स्थान पर आपके लिए संतोषजनक है। xAxb

आपके प्रश्न में सुधार किया जा सकता है "मैं इस बड़े, विरल और बहुत ही बीमार-रैखिक रैखिक वर्गों की समस्या के लिए कम से कम वर्ग समाधानों को कैसे कुशलतापूर्वक प्राप्त कर सकता हूं?"

मेरी सिफारिश स्पष्ट रूप से नियमित रूप से स्क्वॉयड समस्या को कम करने के लिए एक पुनरावृत्त विधि (जैसे CGLS या LSQR) का उपयोग करना होगा

minAxb2+α2x2

जहाँ नियमितीकरण पैरामीटर को समायोजित किया जाता है ताकि कम से कम वर्ग समस्या अच्छी तरह से वातानुकूलित हो और ताकि आप परिणामी नियमित समाधानों से खुश रहें। α


शुरुआत में इसका उल्लेख नहीं करने के लिए मेरी क्षमायाचना। हल की जा रही समस्या FEM का उपयोग करके ध्वनिकी के हेल्महोल्ट्ज़ समीकरण है। समाधान को अनुमानित करने के लिए उपयोग किए जाने वाले प्लेन वेव आधार के कारण सिस्टम खराब स्थिति में है।
user1234

और में गुणांक कहां से आते हैं? क्या वे डेटा मापा जाता है? कुछ ऑब्जेक्ट के डिजाइन से "सटीक" मान (जो व्यवहार में सहिष्णुता के लिए मशीनीकृत नहीं हो सकते हैं जो 15 अंक हैं ...)? Ab
ब्रायन बॉर्कर्स

1
हेल्महोल्ट्ज़ पीडीई के कमजोर निर्माण का उपयोग करके मैट्रिक्स ए और बी का निर्माण किया जाता है, देखें: asadl.org/jasa/resource/1/jasman/v119/i3/…
412

9

जेड ब्राउन ने पहले ही इस पर टिप्पणी करने की ओर इशारा कर दिया है, लेकिन वास्तव में बहुत अधिक नहीं है कि आप सामान्य रूप से दोगुना कर सकते हैं यदि आपकी स्थिति संख्या बड़ी है: ज्यादातर मामलों में, आपको संभवतः सटीकता का एक भी अंक नहीं मिलेगा। आपका समाधान और, इससे भी बदतर, आप भी नहीं बता सकते क्योंकि आप अपने समाधान वेक्टर के अनुरूप अवशिष्ट का सही मूल्यांकन नहीं कर सकते हैं। दूसरे शब्दों में: यह सवाल नहीं है कि आपको किस रैखिक सॉल्वर का चयन करना चाहिए - कोई रेखीय सॉल्वर ऐसे मेट्रिसेस के लिए कुछ उपयोगी नहीं कर सकता है।

इस प्रकार की स्थितियां आमतौर पर होती हैं क्योंकि आप एक अनुपयुक्त आधार चुनते हैं। उदाहरण के लिए, आपको इस तरह के बीमार-मेट्रीक मिलते हैं यदि आपने फ़ंक्शन को गैलरिन विधि के आधार के रूप में चुना है। (यह हिल्बर्ट मैट्रिक्स की ओर जाता है, जो बेहद बुरी तरह से वातानुकूलित है।) ऐसे मामलों में समाधान यह पूछने के लिए नहीं है कि कौन सा सॉल्वर रैखिक प्रणाली को हल कर सकता है, लेकिन यह पूछें कि क्या बेहतर आधार हैं जिनका उपयोग किया जा सकता है। मैं आपको ऐसा करने के लिए प्रोत्साहित करूंगा: अपनी समस्या को सुधारने के बारे में सोचें ताकि आप इस प्रकार के मेट्रिसेस के साथ समाप्त न हों।1,x,x2,x3,...


जब एक पीडीई के लिए एक अशुभ समस्या का विवेक, जैसे पिछड़े गर्मी समीकरण, निश्चित रूप से हम एक बीमार मैट्रिक्स समीकरण के साथ समाप्त हो जाएगा। यह ऐसा मामला नहीं है जिसे हम समीकरण को फिर से तैयार करके या एक कुशल मैट्रिक्स सॉल्वर चुनकर या फ्लोटिंग पॉइंट संख्या में परिशुद्धता में सुधार करके हल कर सकते हैं। इस मामले में [अर्थात ध्वनिक उलटा समस्याएं], एक नियमितीकरण विधि की आवश्यकता है।
t

7

अशिक्षित समस्याओं को हल करने का सबसे सरल / सबसे तेज़ तरीका संगणना की सटीकता (ब्रूट बल द्वारा) को बढ़ाना है। एक और (अभी तक हमेशा संभव नहीं) तरीका अपनी समस्या को फिर से तैयार करना है।

आपको चौगुनी सटीकता (34 दशमलव अंक) का उपयोग करने की आवश्यकता हो सकती है। भले ही 20 अंक एक कोर्स में खो जाएंगे (शर्त संख्या के कारण) फिर भी आपको 14 सही अंक मिलेंगे।

यदि यह किसी भी हित का है, तो अब MATLAB में भी क्वाड-सटीक विरल सॉल्वर उपलब्ध हैं।

(मैं उल्लिखित टूलबॉक्स का लेखक हूं)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.