विलक्षणताओं के साथ एक समारोह को एकीकृत करने के लिए क्या संख्यात्मक क्वाड्रैचर चुनना है?


9

उदाहरण के लिए, मैं संख्यानुसार गणना करने के लिए चाहते हैं की -norm कुछ डोमेन में शून्य को शामिल करता है, मैंने गॉस क्वैडचर की कोशिश की और यह विफल हो जाता है, यह वास्तविक इकाई से दूर है, जो एकीकृत करने के लिए गोलाकार निर्देशांक का उपयोग करके यूनिट बॉल पर है, क्या ऐसा करने का कोई अच्छा तरीका है? इस समस्या को अक्सर फ़ाइनल एलिमेंट में टॉयलेट प्रॉब्लम्स को री-एंट्रेंट कॉर्नर वाले डोमेन के लिए टॉय प्रॉब्लम में देखा जाता है। धन्यवाद।एल2यू=1(एक्स2+y2+z2)1/3एल2


2
यदि मूल एकीकरण डोमेन के भीतर है, तो क्या मैं आपके अभिन्न को तोड़ने और फिर प्रत्येक को गोलाकार निर्देशांक में बदलने का सुझाव दे सकता हूं?
JM

मैं जेएम से सहमत हूं - यदि आप पहले से ही विलक्षणताओं के स्थान और संरचना को जानते हैं, तो आप अपने चतुर्भुज दिनचर्या को कॉल लिखने में उस संरचनात्मक जानकारी का उपयोग बेहतर तरीके से कर सकते हैं। समझदारी से इसे एक संख्यात्मक पैकेज को खिलाएं और उम्मीद करें कि (ए) यह विलक्षणता पाता है और (b) उनके साथ सही काम करता है।

जवाबों:


8

आपको mpmath के साथ सटीक परिणाम प्राप्त करने में सक्षम होना चाहिए , मनमाना-सटीक फ़्लोटिंग-पॉइंट कंप्यूटेशन के लिए पायथन मॉड्यूल। प्रलेखन में विलक्षणताओं के साथ एकीकरण के उदाहरण हैं । आप अंतराल को तोड़ने के लिए इसे स्पष्ट रूप से बताना चाहेंगे:

from mpmath import *
f = lambda x,y,z: 1./(x**2+y**2+z**2)**1./3
quad(f,[-1,0,1],[-1,0,1],[-1,0,1])

आपको सटीकता बढ़ाने की आवश्यकता हो सकती है (उदाहरण के लिए mp.dps=30) और यह संभवतः धीमी होगी, लेकिन काफी सटीक होनी चाहिए।

आप MATLAB के लिए नेस्टिंग कॉल का भी प्रयास कर सकते हैं quadgk(), जो 1D में अनुकूली गॉस-क्रोनरॉड क्वाड्रचर का उपयोग करता है।

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