रैखिक लोच में कठोर बॉडी मोटेशन को कैसे हटाएं?


9

मैं को हल करना चाहता हूं जहां मेरी कठोरता मैट्रिक्स है। हालांकि कुछ अड़चनें गायब हो सकती हैं इसलिए कुछ कठोर शरीर की गति अभी भी सिस्टम में मौजूद हो सकती है (ईजेनवल्यू शून्य के कारण)। चूंकि मैं लीनियर सिस्टम को हल करने के लिए सीजी का उपयोग कर रहा हूं, यह स्वीकार्य नहीं है क्योंकि कभी-कभी सीजी अर्ध-सकारात्मक समस्याओं पर नहीं जुटता है (लेकिन मैं कभी-कभी अभिसरण करता हूं)।Ku=bK

वास्तव में मैं इस अर्थ में एक दंडित विस्थापन दृष्टिकोण का उपयोग कर रहा हूं कि मैं फॉर्मल अल्फ़ाज़ का पेनल्टी जोड़ रहा हूं। to the लोचदार ऊर्जा तो ऊर्जा जहां लिया के रूप में है कठोरता मैट्रिक्स के कुछ विकर्ण प्रविष्टि के आनुपातिक। लेकिन वास्तव में यह कुछ विरूपण मोड को नम करने का प्रभाव है जो मुझे कभी-कभी पसंद होता है।α||u||2

W(u):=12uT(K+αI)ubtu
α

मेरा कुछ सवाल है:

a) क्या मैं मूल प्रणाली को बदल सकता हूँ ताकि इसे विलक्षणता और सकारात्मक निश्चितता से मुक्त किया जा सके (जैसे कि समन्वय परिवर्तन या अनुरूपता परिवर्तन या जो भी हो)? मेरा विचार इस तरह के परिवर्तन का उपयोग अभी भी तब्दील समस्या पर सीजी का उपयोग करना है

ख) क्या उन विलक्षणताओं से निपटने का कोई मानक तरीका है?

आपका बहुत बहुत धन्यवाद !

सधन्यवाद,

टॉम

जवाबों:


6

मनमाने ढंग से चुने गए नोड लिए बाधा रास्ता को । यह सुनिश्चित करता है कि आपका शरीर अनुवाद नहीं कर सकता है और न ही घूम सकता है और इसलिए शून्य eigenvalue को दूर ले जाता है। इस बाधा के साथ परिणामी प्रणाली आपके दंड अवधि के बिना भी सकारात्मक निश्चित है।u(x0)=0x0


1
धन्यवाद! हां, लेकिन मेरा मामला है कि मेरे पास कई फ्लोटिंग सबस्ट्रक्टर्स हैं और मैं ठीक करने के लिए कौन से नोड्स (3 नॉन कॉलिनियर नोड्स 3 डी) में नहीं बता सकता। यही कारण है कि मैं सोच रहा हूं कि क्या कोई उच्च-स्तरीय समाधान नहीं है क्योंकि मेरे मामले में अशक्त स्थान अच्छी तरह से ज्ञात है।
टॉम

यदि आपके पास कई संरचनाएं हैं, तो आपको प्रत्येक संरचना के लिए एक नोड को ठीक करने की आवश्यकता है। इससे कोई फर्क नहीं पड़ता कि कौन सा है, बस प्रति संरचना एक उठाओ।
वोल्फगैंग बंगर्थ

3
@WolfgangBangerth यह 3 डी लोच है, इसलिए आपको आयाम के अशक्त स्थान को नियंत्रित करने के लिए तीन गैर-कॉलिनियर बिंदुओं को पिन करने की आवश्यकता होगी। 6. उन तीन विस्थापनों को पिन करना एक रैंक 9 गड़बड़ी है और यह सुनिश्चित करना आसान नहीं है कि रैंक -3 संशोधन परे है रिक्त स्थान समाधान नहीं बदलता है। पिन करने के लिए किसी भी विकल्प और मूल्यों के लिए, दाहिने हाथ के पक्षों का 3-आयामी परिवार है जिसमें आपकी पिन की गई समस्या केवल एक सदस्य के लिए सही उत्तर देती है।
जेड ब्राउन

नहीं, आप 9 बाधाओं के लिए 3 अंक नहीं दे सकते क्योंकि आप तब उनकी सापेक्ष दूरी भी ठीक कर लेंगे। यदि आपकी सीमा की स्थितियां वास्तव में कोई अन्य बाधाएं प्रदान नहीं करती हैं (जैसे कि यदि वे किसी वृत्त पर सामान्य विस्थापन नहीं हैं) तो आपको कुल 6 अवरोधों के लिए दो अन्य बिंदुओं पर 1 बिंदु + विभिन्न रोटेशन कोणों को ठीक करने की आवश्यकता है।
वोल्फगैंग बैंगर्थ

6

यदि आप अशक्त स्थान को जानते हैं, तो आप दाहिने हाथ को संगत बना सकते हैं और क्रायलोव विधि को पूर्ववर्ती को प्रदूषण पैदा करने से रोक सकते हैं, देखें क्यों एक रिक्त स्थान को हटाने के लिए एक बिंदु को पिन किया जा रहा है? आगे की चर्चा के लिए। PETSc में, यह MatNullSpaceऑब्जेक्ट का उपयोग करके किया जाता है । ध्यान दें कि आप अशक्त स्थान को प्रोजेक्ट करने के लिए अपना स्वयं का फ़ंक्शन प्रदान कर सकते हैं , जो कि कई फ्लोटिंग संरचनाओं के होने पर प्रक्षेपण लागत को कम करने के लिए उपयोगी होगा।

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


धन्यवाद जेड! मैंने सीधे अपने पुनरावृत्त विधि में अशक्त अंतरिक्ष के प्रक्षेपण के बारे में सोचा। लेकिन मैं सोच रहा था कि यह बहुत महंगा नहीं था (मैं एक ऑपरेटर बना सकता हूं जो अशक्त स्थान को बाहर निकालता है क्योंकि यह वास्तव में लोच में मामूली है)। इसके अलावा, मुझे लगता है कि अवशिष्ट को भी प्रोजेक्ट किया जाना चाहिए?
टॉम

2
दाहिने हाथ को संगत बनाएं और प्रत्येक पूर्व-अक्षर अनुप्रयोग के बाद रिक्त स्थान को प्रोजेक्ट करें (क्योंकि कई प्रीडोन्डिशनर्स रिक्त स्थान को दूषित करेंगे)। यह एक Krylov ऑपरेटर पैदावार करता है ऐसा अशक्त रिक्त स्थान के लिए है। चूंकि आपकी समस्या सममित है, इसलिए आपको बाएँ और दाएँ नल रिक्त स्थान के लिए एक अलग दिनचर्या की आवश्यकता नहीं है। अगर आप कॉल करते हैं तो पेट्सक यही करता है । K=(IN)P1A{b,Kb,K2b,}MatSetNullSpace()
जेड ब्राउन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.