विषय - सूची[छिपाना][प्रदर्शन]
चाहे आप विश्वविद्यालय के छात्र हों या डेटा विज्ञान में काम करते हों, गणित से बचना संभव नहीं है।
कोई यह भी तर्क दे सकता है कि डेटा विज्ञान एक प्रकार का व्यावहारिक गणित/सांख्यिकी है। NumPy, SciPy, Scikit-जानें, तथा TensorFlow पायथन पुस्तकालयों में से कुछ ही हैं जो गणित से मात्रात्मक रूप से निपटते हैं।
हालाँकि, गणितीय प्रतीकों से स्पष्ट रूप से निपटने के लिए केवल एक ही प्रतियोगी है: सिम्पी।
आइए सिम्पी के बारे में सब कुछ जानें।
एचएमबी क्या है? सहानुभूति?
सिम्पी एक पायथन प्रतीकात्मक गणित पुस्तकालय है। यह एक पूर्ण-विशेषीकृत कंप्यूटर बीजगणित प्रणाली (सीएएस) बनने की आकांक्षा रखता है, जबकि कोड को यथासंभव बुनियादी रखते हुए समझने योग्य और आसानी से विस्तार योग्य बनाया जा सकता है।
यह पूरी तरह से Python में लिखा गया है। इसका उपयोग करना सरल है क्योंकि यह केवल mpmath पर निर्भर करता है, जो मनमाने फ़्लोटिंग-पॉइंट अंकगणित के लिए एक शुद्ध पायथन लाइब्रेरी है।
एक पुस्तकालय के रूप में, इसे उपयोगिता को ध्यान में रखकर बनाया गया था। इसके एप्लिकेशन प्रोग्राम इंटरफ़ेस (एपीआई) के डिज़ाइन में एक्स्टेंसिबिलिटी महत्वपूर्ण है।
परिणामस्वरूप, यह पायथन भाषा को बढ़ाने का कोई प्रयास नहीं करता है। इसका उद्देश्य उपयोगकर्ताओं को अन्य के साथ इसका उपयोग करने में सक्षम बनाना है अजगर पुस्तकालय उनके वर्कफ़्लो में, चाहे एक इंटरैक्टिव वातावरण में या एक बड़े सिस्टम के प्रोग्राम किए गए घटक के रूप में।
एक लाइब्रेरी के रूप में SymPy में अंतर्निहित ग्राफ़िकल का अभाव है उपयोगकर्ता इंटरफ़ेस (जीयूआई)। पुस्तकालय है:
- भाषण और बीयर दोनों के संबंध में नि:शुल्क, क्योंकि यह बीएसडी लाइसेंस के तहत लाइसेंस प्राप्त है।
- पायथन-आधारित: यह पूरी तरह से पायथन में विकसित है और पायथन को अपनी भाषा के रूप में नियोजित करता है।
- हल्का वजन क्योंकि यह केवल एमपीमैथ पर निर्भर करता है, एक शुद्ध पायथन पुस्तकालय मनमाने फ़्लोटिंग-पॉइंट अंकगणित के लिए, इसे उपयोग में आसान बनाना।
- एक इंटरैक्टिव टूल के रूप में उपयोग किए जाने के अलावा इसे अन्य कार्यक्रमों में शामिल किया जा सकता है और कस्टम फ़ंक्शंस के साथ संशोधित किया जा सकता है।
सिम्पी का उपयोग क्यों करें?
सेज, एक कंप्यूटर बीजगणित प्रणाली, पायथन को अपनी प्रोग्रामिंग भाषा के रूप में भी नियोजित करती है। दूसरी ओर, सेज बहुत बड़ा है, जिसके लिए एक गीगाबाइट से अधिक डाउनलोड की आवश्यकता होती है। इसका हल्का होने का फायदा है।
कॉम्पैक्ट होने के अलावा, इसमें पायथन के अलावा कोई निर्भरता नहीं है, जिससे इसे व्यावहारिक रूप से हर जगह उपयोग किया जा सकता है।
इसके अलावा, सेज और सिम्पी के उद्देश्य समान नहीं हैं। सेज एक पूर्ण विशेषताओं वाली गणित प्रणाली बनने की आकांक्षा रखता है, और वह सभी मुख्य ओपन-सोर्स गणितीय प्रणालियों को एक में जोड़कर ऐसा करता है।
जब आप सेज फ़ंक्शन का उपयोग करते हैं, जैसे कि इंटीग्रेट, तो यह इसमें मौजूद ओपन-सोर्स पैकेजों में से एक को आमंत्रित करता है। वास्तव में, यह ऋषि में निर्मित है। दूसरी ओर, SymPy एक स्व-निहित प्रणाली बनने की आकांक्षा रखती है, जिसमें सभी कार्यक्षमताएँ स्वयं लागू हों।
पुस्तकालय के रूप में कार्य करने की इसकी क्षमता एक महत्वपूर्ण विशेषता है। कई कंप्यूटर बीजगणित प्रणालियाँ इंटरैक्टिव वातावरण में उपयोग करने के लिए होती हैं, लेकिन उन्हें स्वचालित या विस्तारित करना मुश्किल होता है।
इसे पायथन में इंटरैक्टिव रूप से उपयोग किया जा सकता है या आपके अपने पायथन प्रोग्राम में आयात किया जा सकता है। इसमें आपकी अपनी दिनचर्या के साथ इसे आसानी से विस्तारित करने के लिए एपीआई भी हैं।
सिम्पी स्थापित करना
अपने परिवेश में स्थापित करने के लिए बस नीचे दिए गए आदेश का उपयोग करें।
सिम्पी चिह्न
आइए अब इसकी शुरुआत करें! इसका मूल उद्देश्य प्रतीक है। SymPy में, आप लिखकर एक प्रतीक x उत्पन्न कर सकते हैं:
उपरोक्त कोड प्रतीक x उत्पन्न करता है। इसमें प्रतीकों का उद्देश्य गणितीय प्रतीकों का अनुकरण करना है जो अज्ञात मूल्यों का प्रतिनिधित्व करते हैं।
परिणामस्वरूप, निम्नलिखित गणना नीचे दिखाई गई है:
जैसा कि ऊपर दिखाया गया है, प्रतीक x एक अज्ञात राशि के समान कार्य करता है। यदि आप अनेक प्रतीक बनाना चाहते हैं तो उन्हें इस प्रकार लिखें:
आपने इस मामले में एक ही क्षण में दो प्रतीक, y, और z बनाए। इन प्रतीकों को अब इच्छानुसार जोड़ा, घटाया, गुणा और विभाजित किया जा सकता है:
सिम्पी फ़ंक्शंस
1. sympify() फ़ंक्शन
Sympify() विधि एक मनमानी अभिव्यक्ति को SymPy अभिव्यक्ति में बदल देती है। यह पूर्णांक जैसे मानक पायथन ऑब्जेक्ट को परिवर्तित करता है।
स्ट्रिंग्स को उनके भावों के साथ-साथ पूर्णांकों आदि में बदल दिया जाता है।
2. evalf() फ़ंक्शन
यह फ़ंक्शन 100 अंकों तक की फ़्लोटिंग-पॉइंट परिशुद्धता के साथ एक निर्दिष्ट संख्यात्मक अभिव्यक्ति का मूल्यांकन करता है।
फ़ंक्शन अतिरिक्त रूप से उप तर्क के रूप में प्रतीकों के लिए संख्यात्मक मानों के साथ एक शब्दकोश ऑब्जेक्ट को स्वीकार करता है। निम्नलिखित वाक्यांश पर विचार करें:
फ़्लोटिंग-पॉइंट सटीकता डिफ़ॉल्ट रूप से 15 अंकों पर सेट है। हालाँकि, इसे 1 से 100 के बीच किसी भी संख्या में बदला जा सकता है।
निम्नलिखित समीकरण का मूल्यांकन 20 अंकों की सटीकता से किया जाता है।
3. Lambdify() फ़ंक्शन
Lambdify एक फ़ंक्शन है जो अपनी अभिव्यक्तियों को पायथन फ़ंक्शन में परिवर्तित करता है। मानों की एक विस्तृत श्रृंखला में किसी अभिव्यक्ति का मूल्यांकन करते समय evalf() विधि अक्षम है।
Lambdify लैम्ब्डा फ़ंक्शन के समान ही काम करता है, सिवाय इसके कि यह SymPy नामों को प्रदान की गई संख्यात्मक लाइब्रेरी के नामों में अनुवादित करता है, जो आम तौर पर NumPy है।
डिफ़ॉल्ट रूप से, Lambdify को गणित मानक लाइब्रेरी कार्यान्वयन पर लागू किया जाता है।
विशेषताएं
पुस्तकालय की कुछ सबसे महत्वपूर्ण विशेषताएं यहां सूचीबद्ध हैं; और भी बहुत कुछ शामिल नहीं है, लेकिन आप उन्हें देख सकते हैं यहाँ उत्पन्न करें.
1. मुख्य क्षमताएँ
- मौलिक अंकगणित: +, -, *, /, और ** ऑपरेटर समर्थित हैं (शक्ति)
- एक बहुपद विस्तार
- पूर्णांक, परिमेय, और मनमाना परिशुद्धता के साथ तैरता है
- त्रिकोणमितीय, अतिशयोक्तिपूर्ण, और घातीय कार्य, मूल, लघुगणक, निरपेक्ष मान, गोलाकार हार्मोनिक्स, भाज्य और गामा कार्य, जीटा कार्य, बहुपद और विशेष कार्य
- ऐसे प्रतीक जो गैर-क्रमविनिमेय हैं
- मिलान पैटर्न
2. कलन
- एकीकरण: यह विधि विस्तारित रिस्क-नॉर्मन अनुमानी को नियोजित करती है
- भेदभाव।
- कार्यों को सीमित करें
- लॉरेंट टेलर की श्रृंखला
3. बहुपद
- ग्रोबनेर फ़ाउंडेशन
- आंशिक भिन्नों का अपघटन
- प्रभाग, जीसीडी परिणाम बुनियादी अंकगणित के उदाहरण हैं।
4. कॉम्बिनेटरिक्स
- क्रमपरिवर्तन
- ग्रे और प्रुफ़र कोड
- संयोजन, विभाजन, उपसमुच्चय
- पॉलीहेड्रल, रूबिक, सममित, और अन्य क्रमपरिवर्तन समूह
5. पृथक गणित
- सारांश
- तार्किक भाव
- द्विपद गुणांक
- संख्या सिद्धांत
अनुप्रयोगों
1. बिल्डिंग कैलकुलेटर
2. कंप्यूटर बीजगणित प्रणाली
अन्य कंप्यूटर बीजगणित प्रणालियों के विपरीत, आपको Symbol() फ़ंक्शन का उपयोग करके इसमें मैन्युअल रूप से प्रतीकात्मक चर घोषित करना होगा।
3. कलन
प्रतीकात्मक गणना प्रणाली की सभी प्रकार की गणनाएँ प्रतीकात्मक रूप से करने की क्षमता ही इसकी प्रमुख ताकत है।
यह कथनों को सरल बना सकता है, प्रतीकात्मक रूप से, व्युत्पन्न, अभिन्न और सीमाओं की गणना कर सकता है, समीकरणों को हल कर सकता है, मैट्रिक्स के साथ बातचीत कर सकता है और बहुत कुछ कर सकता है।
आपकी भूख बढ़ाने के लिए, यहां प्रतीकात्मक शक्ति का स्वाद है।
सिम्पी के साथ आप और क्या कर सकते हैं?
अतिरिक्त मुद्दों पर गहराई से चर्चा करने के बजाय, मैं आपको अपने कौशल को बढ़ाने में मदद करने के लिए संसाधनों की एक सूची प्रदान करता हूं:
- मैट्रिक्स और रैखिक बीजगणित: यह मैट्रिक्स के साथ काम कर सकता है और बुनियादी रैखिक बीजगणित संचालन कर सकता है। यह भाषा NumPy के सिंटैक्स के समान है। हालाँकि, उल्लेखनीय अंतर हैं। आरंभ करने के लिए, जांच करें मैट्रिक्स पुस्तकालय में.
- अभिव्यक्ति: यह अभिव्यक्तियों पर नज़र रखने के लिए एक अभिव्यक्ति वृक्ष का लाभ उठाता है, जो एक वृक्ष-आधारित संरचना है। की ओर देखें अभिव्यक्ति वृक्ष यदि आप उनके आंतरिक कामकाज के बारे में अधिक जानना चाहते हैं।
- डेरिवेटिव और इंटीग्रल: यह परिचयात्मक कैलकुलस कक्षा में आपने जो कुछ सीखा है, उसमें से अधिकांश को पूरा कर सकता है (सोच को छोड़कर)। आप हमारे कार्य को देखकर शुरुआत कर सकते हैं भेदभाव सिम्पी में.
- न्यूमपी के साथ संबंध: NumPy और SymPy दोनों गणित से संबंधित लाइब्रेरी हैं। फिर भी, वे मूलतः भिन्न हैं! NumPy संख्याओं के साथ काम करता है, जबकि यह प्रतीकात्मक अभिव्यक्तियों के साथ काम करता है।
- सरलीकरण: यह अभिव्यक्ति को स्वचालित रूप से सरल बनाने के लिए पर्याप्त बुद्धिमान है। हालाँकि, यदि आप इस पर अधिक सूक्ष्म नियंत्रण चाहते हैं, तो इसे देखें सरलीकरण.
निष्कर्ष
सिम्पी प्रतीकात्मक गणित के लिए एक शक्तिशाली पुस्तकालय है।
आप इसका उपयोग चर और फ़ंक्शन बनाने के लिए कर सकते हैं, साथ ही गणितीय कथनों को प्रतीकात्मक रूप से विस्तारित और सरल बनाने और समीकरणों, असमानताओं और यहां तक कि समीकरणों/असमानताओं की प्रणालियों को हल करने के लिए भी कर सकते हैं।
आप फ़ंक्शन को स्क्रिप्ट के टेक्स्ट और सीधे टर्मिनल (या ज्यूपिटर नोटबुक्स) एक त्वरित मूल्यांकन और की गई संगणनाओं का बेहतर चित्रमय चित्रण प्राप्त करने के लिए।
क्या आप SymPy के बारे में और अधिक जानने के लिए तैयार हैं? हमें टिप्पणियों में बताएं।
एक जवाब लिखें