विषयसूची:

पायथन में न्यूमेरिकल इंटीग्रेशन प्रोग्राम कैसे बनाएं: 10 कदम
पायथन में न्यूमेरिकल इंटीग्रेशन प्रोग्राम कैसे बनाएं: 10 कदम

वीडियो: पायथन में न्यूमेरिकल इंटीग्रेशन प्रोग्राम कैसे बनाएं: 10 कदम

वीडियो: पायथन में न्यूमेरिकल इंटीग्रेशन प्रोग्राम कैसे बनाएं: 10 कदम
वीडियो: Integration in PYTHON (Symbolic AND Numeric) 2024, जुलाई
Anonim
पायथन में न्यूमेरिकल इंटीग्रेशन प्रोग्राम कैसे बनाएं
पायथन में न्यूमेरिकल इंटीग्रेशन प्रोग्राम कैसे बनाएं

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

तुम क्या आवश्यकता होगी:

इंटरनेट तक पहुंच वाला एक पर्सनल कंप्यूटर

चरण 1: एल्गोरिथम को समझना भाग 1: निश्चित अभिन्न और इसका उपयोग

एल्गोरिथम को समझना भाग 1: निश्चित अभिन्न और इसका उपयोग
एल्गोरिथम को समझना भाग 1: निश्चित अभिन्न और इसका उपयोग

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

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

चरण 2: एल्गोरिथम भाग 2 को समझना: संख्यात्मक सन्निकटन

एल्गोरिथम भाग 2 को समझना: संख्यात्मक सन्निकटन
एल्गोरिथम भाग 2 को समझना: संख्यात्मक सन्निकटन

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

चरण 3: एल्गोरिथम भाग 3 को समझना: मध्यबिंदु नियम

एल्गोरिथम भाग 3 को समझना: मध्यबिंदु नियम
एल्गोरिथम भाग 3 को समझना: मध्यबिंदु नियम

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

चरण 4: प्रोग्राम बनाना भाग 1: एक पायथन कंपाइलर / संपादक डाउनलोड करना

अब जब आप उस एल्गोरिदम को समझ गए हैं जिसे लागू करने की आवश्यकता है, तो यह आपके लिए गणना करने के लिए कंप्यूटर प्राप्त करने की बात है। कंप्यूटर को यह बताने के लिए कि क्या करना है, पहला कदम है ऐसा करने के लिए उपकरण प्राप्त करना। इस एल्गोरिथम को किसी भी भाषा में कोडित किया जा सकता है; सरलता के लिए इस कार्यक्रम को पायथन भाषा में कोडित किया जाएगा। अपने कंप्यूटर को पायथन के साथ संचालन करने के लिए आदेश देने के लिए, आपको एक संपादक की आवश्यकता होगी जो उस भाषा में लिखे गए निर्देश लेता है जिसे तब मशीनी भाषा में संकलित किया जाएगा जिसे आपका कंप्यूटर समझ सकता है ताकि यह आपके द्वारा बताए गए कार्यों को कर सके। इस दिन और उम्र में, एक संपादक और संकलक आमतौर पर एकीकृत होते हैं, हालांकि हमेशा ऐसा नहीं होता है। आप किसी भी संपादक/संकलक का उपयोग कर सकते हैं जिसके साथ आप सहज हैं, लेकिन मैं आपको दिखाऊंगा कि पायथन के लिए मेरा व्यक्तिगत पसंदीदा कैसे प्राप्त करें: कैनोपी। यदि आपके पास पहले से ही एक संपादक/संकलक है, तो आप इन चरणों को छोड़ सकते हैं।

  1. https://www.enthink.com/product/canopy/ पर जाएं
  2. डाउनलोड चंदवा पर क्लिक करें
  3. अपने ऑपरेटिंग सिस्टम के अनुरूप डाउनलोड बटन पर क्लिक करें

    डाउनलोड अपने आप शुरू हो जाएगा।

  4. निष्पादन फ़ाइल शुरू करने के बाद टपकाने के निर्देशों का पालन करें
  5. प्रोग्राम चलाएं
  6. कार्यक्रम के मुख्य मेनू से "संपादक" पर क्लिक करें
  7. स्क्रीन के केंद्र में "एक नई फ़ाइल बनाएँ" पर क्लिक करें

इस बिंदु से आपको एक खाली सफेद विंडो दिखाई देनी चाहिए जिसमें एक मूल वर्ड प्रोसेसिंग दस्तावेज़ जैसा कर्सर हो। अब आप निश्चित समाकलनों को हल करने के लिए संख्यात्मक समाकलन एल्गोरिथम की कोडिंग शुरू करने के लिए तैयार हैं। आगे बढ़ने वाले चरणों में कोड का एक स्निपेट होगा जिसे आप कॉपी करेंगे और इस बात की व्याख्या करेंगे कि वह स्निपेट पूरे कार्यक्रम के लिए क्या करता है।

चरण 5: कार्यक्रम बनाना भाग 2: कार्य आयात करना और चर परिभाषित करना

प्रोग्राम बनाना भाग 2: फंक्शन आयात करना और वेरिएबल को परिभाषित करना
प्रोग्राम बनाना भाग 2: फंक्शन आयात करना और वेरिएबल को परिभाषित करना

चित्र में कोड कॉपी करें।

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

"#" के बाद मौजूद कोई भी पाठ एक टिप्पणी है जो प्रोग्रामर को मानवीय तरीके से कोड का पालन करने की अनुमति देता है; मैंने अपने कोड में कुछ टिप्पणियां की हैं जिन्हें आप कॉपी करेंगे, लेकिन बेझिझक कोई भी टिप्पणी जोड़ सकते हैं जो विशेष रूप से आपकी मदद करती है। प्रोग्राम कमांड के रूप में इससे पहले "#" के साथ कुछ भी नहीं पढ़ेगा।

कोड का वह भाग जो "गणित आयात से *" पढ़ता है, प्रोग्राम को गणितीय कार्यों की एक सरणी आयात करने के लिए कहता है जिनका उपयोग उन्हें स्वयं में प्रोग्राम किए बिना किया जा सकता है। "*" का अर्थ केवल "सब" है। कोड के इस भाग को इस प्रकार पढ़ें: गणित पुस्तकालय से सभी कार्यों को आयात करें। यह आपको साइन, कोसाइन, लॉग, क्स्प, आदि जैसे गणितीय कार्यों का उपयोग करने की अनुमति देता है। इन फ़ंक्शन को कोड के भीतर गणितीय रूप से एकीकृत किया जा सकता है।

चरण 6: प्रोग्राम बनाना भाग 3: एकीकरण के लिए एक फ़ंक्शन बनाना

प्रोग्राम बनाना भाग 3: एकीकरण के लिए एक फ़ंक्शन बनाना
प्रोग्राम बनाना भाग 3: एकीकरण के लिए एक फ़ंक्शन बनाना

पिछले कोड के नीचे चित्र में कोड को कॉपी करें।

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

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

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

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

इसके बाद, एक फॉर-लूप इस ट्यूटोरियल के "एल्गोरिदम को समझना" अनुभाग में सूत्रों में परिभाषित योग के रूप में कार्य करता है। इस सारांश के लिए कुछ और चर की आवश्यकता होती है, जिनमें से एक संपूर्ण "एकीकृत" पायथन फ़ंक्शन के लिए वापसी मान के रूप में कार्य करेगा। फॉर-लूप से पहले, मैंने इन वेरिएबल्स को "वैल्यू," और "वैल्यू2" के रूप में नामित किया है। फॉर-लूप का कार्य निर्दिष्ट चर के लिए मानों की एक श्रृंखला पर पुनरावृति करना है, जिसे आसानी से फॉर-लूप कमांड के भीतर परिभाषित किया जा सकता है; इस मामले में, वह चर "n" है। वह श्रेणी जिसके लिए पुनरावृति होती है, 1 से N+1 तक होती है। आपको ध्यान देना चाहिए कि उपरोक्त सूत्रों में परिभाषित योग केवल 1 से एन तक है। हम इसे इस तरह परिभाषित करते हैं क्योंकि पायथन भाषा शून्य से शुरू होने वाले प्रत्येक पुनरावृत्त मान की गणना करती है, इसलिए हमें अनिवार्य रूप से मूल्यों की सीमा को हमारे वांछित फिट करने के लिए स्थानांतरित करना होगा श्रेणी। फॉर-लूप तब आयत की सभी ऊँचाइयों को एक साथ जोड़ने की अनुमति देता है और उस मान को वेरिएबल में संग्रहीत करता है जिसे मैंने "वैल्यू" कहा है। यह कोड के टुकड़े में देखा जाता है जो इस प्रकार दिखाता है: मान += f(a+((n-(1/2))*((b-a)/N)))।

वहां से, कोड का अगला भाग "value2" नामक चर का उपयोग करता है, जिसे तब प्रत्येक आयत की सभी ऊंचाइयों का योग प्रत्येक आयत की मानकीकृत चौड़ाई से गुणा किया जाता है - यह हमारा अंतिम उत्तर है जो हम चाहते हैं हमारे कार्यक्रम द्वारा प्रदर्शित किया जाता है, और इस प्रकार "एकीकृत" पायथन फ़ंक्शन का वापसी मूल्य है।

चरण 7: प्रोग्राम बनाना भाग 4: उत्तर प्रदर्शित करना

कार्यक्रम बनाना भाग 4: उत्तर प्रदर्शित करना
कार्यक्रम बनाना भाग 4: उत्तर प्रदर्शित करना

पिछले कोड के नीचे चित्र में कोड को कॉपी करें।

अब जब उत्तर "एकीकृत" पायथन फ़ंक्शन के माध्यम से प्राप्त किया जा सकता है, तो हम इसे प्रदर्शित करने में सक्षम होना चाहते हैं। यह केवल उन मानों को डालने का मामला है जो उपयोगकर्ता ("एन, " "ए," और "बी") द्वारा "एकीकृत" पायथन फ़ंक्शन में इनपुट किए गए थे और इसे स्क्रीन पर प्रिंट कर रहे थे। यह आदेश लाइन 21 पर दिखाया गया है, और वास्तव में इस चरण को पूरा करने के लिए आपको बस इतना करना है। 19 और 20 की तर्ज पर कोड पूरे कार्यक्रम के आउटपुट को "सुंदर" करने के लिए है। "प्रिंट ("………………………।")" प्रोग्राम के इनपुट सेक्शन को आउटपुट सेक्शन से अलग करता है, और "प्रिंट ("यहाँ आपका उत्तर है:")" सिर्फ एक पदनाम है कि उत्तर होगा पाठ की उस पंक्ति के बाद मुद्रित किया जाए।

चरण 8: प्रोग्राम को चलाना भाग 1: प्रोग्राम को इस रूप में चलाना

प्रोग्राम को चलाना भाग 1: प्रोग्राम को यथावत चलाना
प्रोग्राम को चलाना भाग 1: प्रोग्राम को यथावत चलाना

यदि आप चंदवा का उपयोग नहीं कर रहे हैं, तो आपको शायद इस चरण का पालन करने की भी आवश्यकता नहीं है और कार्यक्रम को चलाने के लिए विभिन्न प्रक्रियाओं की आवश्यकता हो सकती है। कैनोपी में, प्रोग्राम चलाने में सक्षम होने से पहले, आपको इसे सहेजना होगा। पायथन प्रोग्राम के लिए फ़ाइल प्रकार एक.py फ़ाइल है - यह स्वचालित रूप से इस रूप में सहेजता है। चुनें कि आप फ़ाइल को कहाँ सहेजना चाहते हैं, फिर आप प्रोग्राम को चलाने में सक्षम होंगे।

कार्यक्रम चलाना:

  1. हरे बटन को दबाएं जो कि टूल बार पर स्थित "प्ले बटन" जैसा दिखता है, जहां आपकी फ़ाइल का नाम दिखाई देता है (चित्र देखें)।
  2. कार्यक्रम तब संपादक की निचली स्क्रीन में चलेगा जिसे कैनोपी डेटा-विश्लेषण वातावरण के रूप में जाना जाता है। यह मानते हुए कि आपने संकेतों को कॉपी किया है जैसा कि मैंने उन्हें लिखा था, आपको कैनोपी डेटा-विश्लेषण वातावरण के निचले भाग में यह संकेत देखना चाहिए: "दर्ज करें कि आप कितनी बार योग करना चाहते हैं (अधिक बार = अधिक सटीक):।" (तस्वीर देखें)
  3. आप कितनी बार पुनरावृत्ति करना चाहते हैं, इसके लिए एक मान दर्ज करें यानी 10000 (आप अपने क्षेत्र में कितने आयतों को हिलाना चाहते हैं), फिर एंटर दबाएं।
  4. बयानों के साथ अधिक संकेत दिखाई देंगे जो चरण 5 में आपके द्वारा प्रोग्राम में कोड किए गए परिचित इनपुट संकेत होने चाहिए। उन्हें ऊपर नंबर 3 की तरह ही उचित रूप से भरें।
  5. अभिन्न का मूल्यांकन किया जाना चाहिए, और एक परिणाम प्रकट होना चाहिए।

यदि आपने पिछले चित्रों में दिखाए अनुसार प्रोग्राम को कोडित किया है, तो आपने कुछ सीमाओं पर f(x) = x^2 को एकीकृत किया है। x^2 का इंटीग्रल हाथ से मूल्यांकन करना आसान है, इसलिए आपको जांचना चाहिए और सुनिश्चित करना चाहिए कि प्रोग्राम ने हाथ से निर्धारित सही विश्लेषणात्मक मूल्य का बहुत करीबी जवाब दिया है। जब मैं एन = 10000, ए = 0, और बी = 10 मानों के साथ प्रोग्राम चलाता हूं, तो मुझे 333.33333249999964 का उत्तर मिलता है। सही विश्लेषणात्मक उत्तर 333.333 है। यह अविश्वसनीय रूप से सटीक और त्वरित है। आपने अनिवार्य रूप से x अक्ष पर १० और १० के बीच १०,००० आयतों को निचोड़ा है और वक्र x ^ २ के नीचे के क्षेत्र का अनुमान लगाने के लिए उनका उपयोग किया है!

चरण 9: प्रोग्राम चलाना भाग 2: अन्य गणितीय कार्यों को एकीकृत करना

कार्यक्रम चलाना भाग 2: अन्य गणितीय कार्यों को एकीकृत करना
कार्यक्रम चलाना भाग 2: अन्य गणितीय कार्यों को एकीकृत करना

पिछले चरण में, यदि आप ईमानदारी से अनुसरण कर रहे हैं, तो आपने f(x) = x^2 को एकीकृत किया है। यह एकमात्र गणितीय कार्य नहीं है जिसे यह प्रोग्राम एकीकृत कर सकता है। चरण 5 से याद करें कि आपने प्रोग्राम में पायथन फ़ंक्शन के गणित पुस्तकालय सरणी को आयात किया है। यह आपको अधिक जटिल गणितीय कार्यों का उपयोग करने की अनुमति देता है जिन्हें एकीकृत किया जा सकता है। आइए एक को एक शॉट दें। बेशक, आप अपनी पसंद के किसी भी फ़ंक्शन का उपयोग कर सकते हैं, लेकिन मैं एक विशेष गणितीय फ़ंक्शन को एकीकृत करके इस कोड की सटीकता को और प्रदर्शित करूंगा जो एक निश्चित सीमा पर एकीकृत होने पर एक प्रसिद्ध मूल्य उत्पन्न करता है। वह फलन f(x) = sin[x] है। यह गणितीय फ़ंक्शन 0 से 2π तक प्लॉट किए गए पहले चित्र में प्रदर्शित होता है, और रुचि का क्षेत्र फ़िरोज़ा में छायांकित होता है। इस अंतराल में ऋणात्मक क्षेत्रफल के बराबर धनात्मक क्षेत्रफल है, इसलिए यदि आप कुल क्षेत्रफल को जोड़ते हैं, तो आपको शून्य मिलना चाहिए। आइए देखें कि क्या वास्तव में ऐसा होता है:

प्रोग्राम में गणितीय फ़ंक्शन f(x) = sin[x] डालना:

  1. प्रोग्राम को फिर से चलाने से पहले, टिप्पणी के तहत "#टाइप योर फंक्शन आफ्टर रिटर्न" टाइप करें: sin(x) जहां x**2 वर्तमान में स्थित है। (चित्र देखें)।
  2. फिर से ग्रीन प्ले बटन दबाकर प्रोग्राम को रन करें।
  3. N मान के लिए 10000 टाइप करें (आप कितनी बार योग करना चाहते हैं)।
  4. निचली सीमा के लिए "0" डालें।
  5. ऊपरी सीमा (लगभग 2π) के लिए 6.2832 डालें।
  6. देखें कि आपको क्या मूल्य मिलता है।

जब मैंने ऐसा किया, तो मुझे 1.079e-10 का मान प्राप्त हुआ: यह.0000000001079 के बराबर है, जो वास्तव में शून्य के करीब है, इसलिए यह सटीक प्रतीत होता है, और दिखाता है कि एल्गोरिदम पर्याप्त रूप से नकारात्मक क्षेत्र को संभालता है।

चरण १०: कार्यक्रम चलाना भाग ३: कार्यक्रम का विस्तार करना

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

कार्यक्रम के विस्तार पर मेरे विचार:

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

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

सिफारिश की: