क्या मैं संख्यात्मक रूप से यह निर्धारित करने के लिए एक स्पष्ट समय कदम योजना का उपयोग कर सकता हूं कि क्या एक ODE कठोर है?


10

मेरे पास एक ODE है:

यू ( 0 ) = - 1u=1000u+sin(t)
u(0)=11000001

मुझे पता है कि यह विशेष ODE कठोर है, विश्लेषणात्मक रूप से। मुझे यह भी पता है कि अगर हम एक स्पष्ट (आगे) समय कदम विधि (यूलर, रनगे-कुट्टा, एडम्स, आदि) का उपयोग करते हैं, तो समय कदम बहुत बड़ा होने पर विधि को बहुत बड़ी त्रुटियों को वापस करना चाहिए। तो, मेरे दो सवाल हैं:

  1. क्या यह इस तरह से कठोर ODEs निर्धारित किया जाता है, सामान्य तौर पर, जब त्रुटि शब्द के लिए एक विश्लेषणात्मक अभिव्यक्ति उपलब्ध या व्युत्पन्न नहीं होती है?

  2. सामान्य तौर पर, जब ओडीई कठोर होता है, तो मैं "छोटा पर्याप्त" टाइमस्टेप कैसे निर्धारित करूं?


स्पष्ट तरीकों का उपयोग करके कठोरता का पता लगाने के लिए मानक तरीके हैं। मैं यह टिप्पणी यहां कर रहा हूं क्योंकि नीचे मेरे अधिक विस्तृत उत्तर को खोजना मुश्किल हो सकता है।
डेविड केटसन 21

जवाबों:


6

अपने सवालों के जवाब देने के लिए:

  1. जहाँ तक मुझे पता है, व्यवहार में, यदि स्पष्ट तरीकों को आपकी रुचि के समय पैमाने के सापेक्ष असाधारण रूप से छोटे समय के कदमों की आवश्यकता होती है ( सटीक परिणाम प्राप्त करने के लिए, ODE के लिए कठोर होने के क्या मायने हैं, इस सवाल का उत्तर देखें ) सभी इरादे और उद्देश्य, आपकी समस्या कड़ी है। चरण आकार पर आवश्यकताओं को निर्धारित करने के लिए, विशेषज्ञों द्वारा लिखे गए कई पुस्तकालयों में से एक पर भरोसा करें (MATLAB सूट एक उदाहरण है, SUNDIALS, VODE, DASPK, DASSL, LSODE, आदि), जिनके पास अनुकूली समय कदम उठाने के आंकड़े हैं। SUNDIALS मैनुअल निर्णय नियमों का उपयोग करता है जो वे उस समय के चरणों का आकार निर्धारित करने के लिए उपयोग करते हैं जो पैकेज लेते हैं, आपको उन नियमों का उदाहरण देते हैं जो अभ्यास में उपयोग किए जाते हैं।

  2. फिर से, मैं अभ्यास में अनुकूली समय के साथ एक पुस्तकालय का उपयोग करूँगा, क्योंकि ऐसा करना अधिक कुशल है। हालाँकि, यदि आप निश्चित चरण आकारों का उपयोग करके, अपने द्वारा एक विधि को कोडित कर रहे थे, यदि आपने बड़े दोलनों, या आपके समाधान "उड़ाने" पर ध्यान दिया, तो आपको संदेह होगा कि आपका समय कदम बहुत बड़ा था, और इसे कम करें। तब तक दोहराएं जब तक कि आप एक बहुत अच्छी तरह से व्यवहार किए गए संख्यात्मक समाधान प्राप्त न करें। एस्केर और पेटज़ोल्ड और हेयरर और वानर जैसी पाठ्यपुस्तकों में इस घटना के अच्छे उदाहरण हैं।


9

इसे देखने का एक बेहतर तरीका यह है कि कठोर समस्या के लिए, किसी भी स्थिर स्पष्ट गणना में एक त्रुटि होती है जो आवश्यक त्रुटि सहिष्णुता से बहुत छोटी होती है

स्पष्ट योजनाओं का उपयोग करके कठोरता का पता लगाने के लिए कई अच्छी विधियां हैं, विशेष रूप से रनगे-कुट्टा जोड़े। उदाहरण के लिए देखें:

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

एक परिणाम के रूप में नोट करें कि किसी भी समस्या गैर-कठोर हो जाती है यदि पर्याप्त रूप से सख्त त्रुटि सहिष्णुता की आवश्यकता होती है।


2
वे कागज थे जो मैं आपके उत्तर को देखने से पहले लिंक करने वाला था। निश्चित रूप से +1। :) मुझे भी जोड़ते हैं इस , यह , और अंत में यह । यह निश्चित रूप से एक अच्छी तरह से अध्ययन की गई समस्या है ...
जेएम

9

1. क्या हम स्पष्ट तरीकों को लागू करके कठोरता का पता लगा सकते हैं?

  • [0,10]τ=1 τ

    यहाँ छवि विवरण दर्ज करें

    τ=0.1यहाँ छवि विवरण दर्ज करें

    τ=0.1[0,10]

    तो, समस्या कठोर है? जवाब नहीं है ! समाधान के दोलनों को सही ढंग से पुन: पेश करने के लिए यहां छोटे कदम की आवश्यकता होती है

    y(t)=2cosπt,y(0)=1.

  • τ=1

    यहाँ छवि विवरण दर्ज करें

    τ=0.1

    यहाँ छवि विवरण दर्ज करें

    τ=0.1[0,10]

    क्या यह समस्या कड़ी है? हाँ ! हमने समाधान को पुन: उत्पन्न करने के लिए बहुत छोटे कदम उठाए हैं जो बहुत धीरे-धीरे बदल रहा है। यह तर्कहीन है! यहाँ समय कदम की परिमाण स्पष्ट यूलर की स्थिरता गुणों द्वारा सीमित है

    यह समस्या है

    y(t)=2y(t)+sint/2,y(0)=1.


निष्कर्ष: कठोरता का पता लगाने के लिए टाइमस्टेप्स और संबंधित त्रुटियों के बारे में जानकारी पर्याप्त नहीं है। आपको प्राप्त समाधान को भी देखना चाहिए। यदि यह धीरे-धीरे बदलता है और चरणबद्ध बहुत छोटा है, तो समस्या सबसे अधिक कठोर है। यदि समाधान तेजी से दोलन करता है और आप अपनी त्रुटि आकलन तकनीक पर भरोसा करते हैं तो यह समस्या कठोर नहीं है।


2. अधिकतम चरण का निर्धारण कैसे करें जो स्पष्ट विधि के साथ कड़ी समस्या को एकीकृत करने की अनुमति देता है?

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

[Λ,0]Λ=1000

[2,0]τΛτ

τ2|Λ|.

τ1|Λ|,
1/|Λ|<τ2/|Λ|

बेशक इस तरह के एक विश्लेषण ज्यादातर ज्ञात स्पेक्ट्रम के साथ रैखिक समस्याओं के लिए लागू होता है। अधिक व्यावहारिक समस्याओं के लिए हमें कठोरता का पता लगाने के संख्यात्मक तरीकों पर भरोसा करना चाहिए (अन्य उत्तरों में संदर्भ और टिप्पणियां देखें)।


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