किसी विशिष्ट समस्या के लिए अच्छे पूर्व शर्त तरीकों की खोज करते समय मुझे किन दिशानिर्देशों का उपयोग करना चाहिए?


19

बड़े रैखिक प्रणालियों के समाधान के लिए पुनरावृत्त विधियों का उपयोग करते हुए, प्रायः पूर्व-निर्धारण को लागू करने के लिए रुचि रखते हैं, उदाहरण के लिए M - 1 ( A x = b ) के स्थान पर हल करें , जहाँ M का उपयोग सिस्टम के बाएं-पूर्व-क्रम के लिए किया जाता है। आमतौर पर, हम है चाहिए एम - 1एक - 1 और (और अधिक) के लिए आधार प्रदान (मूल प्रणाली के समाधान यानी जब साथ कुशल समाधान या कम्प्यूटेशनल संसाधनों में कमी (उदाहरण के लिए स्मृति भंडारण) की तुलना में एम = एकAx=bM1(Ax=b)MM1A1M=A)। हालांकि, हमें पूर्व-चयनकर्ता चुनने के लिए किन दिशानिर्देशों का उपयोग करना चाहिए? अभ्यासकर्ता अपनी विशिष्ट समस्या के लिए यह कैसे करते हैं?


1
यहां तक ​​कि समीकरणों के एक विशेष वर्ग के लिए, इसके लिए बहुत लंबे और विस्तृत उत्तर की आवश्यकता होगी ...
जैक पॉल्सन

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

4
मैं @MattKnepley चैनल पर जा रहा हूं और कहता हूं कि उचित कार्रवाई एक साहित्य खोज करना है। यदि वह विफल रहता है, तो एक बड़ी समस्या पर सभी आसानी से उपलब्ध विकल्पों को आज़माएं। यदि वह विफल हो जाता है, तो भौतिकी के बारे में गहराई से सोचें और आप समस्या के सस्ते समाधान के साथ सस्ते में कैसे आ सकते हैं, और इसे पूर्ववर्ती के रूप में उपयोग करें।
जैक पॉल्सन

@JackPoulson: चूंकि यह सवाल एक समान नस में है कि किस विरल रैखिक सिस्टम सॉल्वर का उपयोग करना है? और एक स्केलेबल लीनियर सॉल्वर का चयन कैसे करें , यह मेरे लिए विषय पर लगता है (हालांकि व्यापक)। चूँकि आपकी टिप्पणी मूल रूप से एक उत्तर है, क्या आप कृपया इसे उत्तर में बदल सकते हैं?
ज्योफ ऑक्सबेरी

मैंने इस प्रश्न पर एक इनाम शुरू किया है, लेकिन मुझे इस नस में अधिक प्रश्न देखने में भी दिलचस्पी है जो बेहतर-समस्या वाले या किसी विशिष्ट वर्ग तक सीमित हो सकती है।
एरन अहमदिया

जवाबों:


17

मैं मूल रूप से एक जवाब नहीं देना चाहता था क्योंकि यह बहुत लंबा इलाज है, और उम्मीद है कि कोई और अभी भी इसे दे देगा। हालांकि, मैं निश्चित रूप से अनुशंसित दृष्टिकोण का एक बहुत संक्षिप्त विवरण दे सकता हूं:

  1. एक संपूर्ण साहित्य खोज करें।
  2. यदि वह विफल हो जाता है, तो प्रत्येक पूर्व शर्त को आज़माएं जो समझ में आता है कि आप अपने हाथों को प्राप्त कर सकते हैं। MATLAB, PETSc, और ट्रिलिनो इसके लिए अच्छे वातावरण हैं।
  3. यदि वह विफल हो जाता है, तो आपको अपनी समस्या के भौतिकी के बारे में सावधानी से सोचना चाहिए और यह देखना चाहिए कि क्या सस्ते अनुमानित समाधान के साथ आना संभव है, शायद आपकी समस्या का थोड़ा बदला हुआ संस्करण भी।

3 के उदाहरणों को हेल्महोल्ट्ज़ के लाप्लासियन संस्करणों में स्थानांतरित कर दिया गया है, और जिनचो जू के हाल ही में लैपलासियों के साथ बायहार्मोनिक ऑपरेटर को पूर्वनिर्मित करने पर काम किया गया है।


धन्यवाद! इस टिप्पणी के बाकी न्यूनतम चरित्र सीमा को पूरा करते हैं।
ज्यॉफ ऑक्सबेरी

14

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

मेरे लिए, बड़ा रहस्योद्घाटन उन समस्याओं के बारे में करना है जो अखंड नहीं हैं, उदाहरण के लिए स्टोक्स ऑपरेटर जब मैंने लगभग 15 साल पहले संख्यात्मक विश्लेषण के साथ शुरू किया था, तो मुझे लगता है कि लोगों को यह आशा थी कि ऊपर के रूप में इस तरह के मैट्रिस पर एक ही तकनीक लागू की जा सकती है, और अनुसंधान की दिशा या तो सीधे मल्टीग्रिड की कोशिश थी या एसएसओआर के सामान्यीकरण का उपयोग करने के लिए (उपयोग करके) बिंदु smoothers "वेंका की तरह) और इसी तरह के तरीके। लेकिन यह फीका है क्योंकि यह बहुत अच्छी तरह से काम नहीं करता है।

(बीबीटी0)

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

(बी0बीटी-1बी)-1
जब GMRES के साथ एक पूर्व शर्त के रूप में उपयोग किया जाता है तो इसका परिणाम ठीक दो पुनरावृत्तियों में अभिसरण होगा। चूंकि यह त्रिकोणीय है, उलटा भी अधिक सरल है, लेकिन हमें अभी भी समस्या है कि विकर्ण ब्लॉक के साथ क्या करना है, और एक सन्निकटन का उपयोग करता है: जहां टिल्ड का अर्थ है एक सन्निकटन द्वारा सटीक व्युत्क्रम को बदलना। यह अक्सर बहुत सरल होता है: क्योंकि ब्लॉक एक अण्डाकार ऑपरेटर है, ~ - 1
(-1~बी0(बीटी-1बी)-1~)
-1~उदाहरण के लिए, एक मल्टीग्रिड वी-चक्र द्वारा अच्छी तरह से अनुमानित किया गया है, और यह पता चला है कि, अच्छी तरह से एक जन मैट्रिक्स के आईएलयू द्वारा अनुमानित है।(बीटी-1बी)-1~

मैट्रिक्स और पुन: उपयोग करने वाले व्यक्तिगत ब्लॉक के साथ व्यक्तिगत ब्लॉक पर काम करने का यह विचार बहुत शक्तिशाली साबित हुआ है और पूरी तरह से बदल गया है कि हम आज समीकरणों के पूर्व-निर्धारण सिस्टम के बारे में कैसे सोचते हैं। बेशक, यह प्रासंगिक है क्योंकि अधिकांश वास्तविक समस्याएं हैं, वास्तव में, समीकरणों की प्रणाली।


1
यार, हाँ, मैं इतना इनाम चाहता था! ;-)
वोल्फगैंग बैंगर्थ

आपके दूसरे पैराग्राफ में: "लेकिन यह फीका है क्योंकि यह बहुत अच्छा काम नहीं करता है।" क्या आप इस बारे में कुछ जानकारी दे सकते हैं कि यह बहुत अच्छी तरह से काम क्यों नहीं करता है? क्या ऐसी परिस्थितियां हैं जिनके तहत यह काम कर सकता है?
एंड्रयू टी। बार्कर

पूरे सिस्टम पर लागू होने वाली प्रत्यक्ष मल्टीग्रिड का कारण इतना सफल साबित नहीं हुआ है कि चिकनी को समीकरण के संरचनात्मक गुणों का संरक्षण करने की आवश्यकता है, और यह हासिल करने के लिए अनौपचारिक है। उदाहरण के लिए, यदि आप स्टोक्स समीकरणों के लिए मल्टीग्रिड लागू करना चाहते हैं, तो आपके पास एक स्मूथी होना चाहिए जो कि डायवर्जेंस फ्री वेक्टर दिया गया हो, जो आपको डायवर्जन फ्री वेक्टर प्रदान करता है। स्टोक्स के लिए इस तरह के स्मूदी हैं, लेकिन इसका निर्माण करने के लिए यह सामान्य है और यह आमतौर पर एक स्मूथ / सॉल्वर के रूप में गुणवत्ता से दूर ले जाता है। अधिक अहंकारी मामलों में गुणों को संरक्षित करना अधिक कठिन हो जाता है।
वोल्फगैंग बैंगर्थ

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

मल्टीग्रिड हेल्महोल्त्ज़ को हल करने के लिए प्रसिद्ध रूप से अप्रभावी है, क्योंकि, ज्यादातर क्योंकि कम ऊर्जा दोलन मोडों को चिकना करना या मोटे अंतरिक्ष में प्रतिनिधित्व करना मुश्किल है। वेव-रे मल्टीग्रिड पर कुछ काम हुआ है, लेकिन सूत्रीकरण बहुत ही तकनीकी है और यह इस समय एक परिपक्व पद्धति नहीं है। ध्यान दें कि इस प्रकार के ब्लॉक अपघटन का उपयोग करके गैर-सममित सिस्टम भी हल किया जा सकता है। चरों की पसंद के आधार पर, (जैसे आदिम बनाम रूढ़िवादी), अवरुद्ध संरचना को बेनकाब करने के लिए पूर्वसंधक के अंदर आधार के परिवर्तन की आवश्यकता हो सकती है।
जेड ब्राउन

13

जैक ने एक पूर्व-संचालक को खोजने के लिए एक अच्छी प्रक्रिया दी है। मैं इस प्रश्न का समाधान करने की कोशिश करूंगा कि "एक अच्छा पूर्व-प्रचारक क्या है?"। परिचालन की परिभाषा है:

एक्स=-1-1

हालाँकि, यह हमें किसी पूर्व-निर्माता को डिजाइन करने में कोई अंतर्दृष्टि नहीं देता है। अधिकांश पूर्व-संचालक ऑपरेटर स्पेक्ट्रम के हेरफेर पर आधारित होते हैं। आमतौर पर, क्रिएलोव तरीके तेजी से अभिसरण होते हैं जब आइगेनवैल्यूस को क्लस्टर किया जाता है, मैट्रिक्स Iterations या मेरोमोर्फिक फ़ंक्शंस और रैखिक बीजगणित देखें । कभी-कभी हम यह साबित कर सकते हैं कि एक पूर्ववर्ती परिणाम केवल कुछ अनोखे स्वदेशी हैं, उदाहरण के लिए अनिश्चितकालीन रैखिक प्रणालियों के लिए पूर्व सूचना पर एक नोट

मल्टीग्रिड द्वारा एक आम रणनीति का अनुकरण किया जाता है। एसओआर जैसे रिलेक्सेशनल प्रीकॉन्डिशनर्स (यहां स्मूचर्स) त्रुटि में उच्च आवृत्ति घटकों को हटाते हैं। जब अवशिष्ट को मोटे ग्रिड पर प्रक्षेपित किया जाता है, तो कम आवृत्ति त्रुटि घटक उच्च आवृत्ति बन जाते हैं और फिर से एसओआर द्वारा हमला किया जा सकता है। यह मूल रणनीति एमजी के अधिक जटिल संस्करणों को रेखांकित करती है, जैसे कि एएमजी। ध्यान दें कि तल पर, सॉल्वर को त्रुटि में सबसे कम आवृत्तियों को सटीक रूप से हल करना होगा।

एक अन्य रणनीति में समीकरणों को छोटे उप-भागों में हल करना शामिल है, जो कि क्रिलोव सॉल्वर्स ठीक कर रहे हैं। सबसे सरल रूप में, यह कक्ज़मरज़ विधि या योजक श्वार्ज विधि हैडोमेन के अपघटन , यहाँ सिद्धांत का उन्नत तनाव, इंटरफ़ेस पर त्रुटि के वर्णक्रमीय सन्निकटन पर ध्यान केंद्रित करता है, क्योंकि डोमेन को काफी सटीक रूप से हल किया जाता है।


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

मुझे लगता है कि अंतर्ज्ञान बहुत दूर जा रहा है। व्यवहार में मैं जो देखता हूं वह एक साधारण प्रणाली के लिए एक प्रमाण है। फिर एक तर्क कि कुछ संशोधन एक पैरामीटर के प्रति असंवेदनशील होना चाहिए, या एक निश्चित प्रकार की भिन्नता। फिर संख्यात्मक प्रयोग यह दिखाते हुए कि यह बदलाव के इस मॉडल के बाहर भी काम करता है।
बजे मैट नेप्ले
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.