2009-02-03 10 views
19

मैं गणित और प्रोग्रामिंग और प्रतीकात्मक गणित प्रोजेक्ट स्क्रैच से शुरू करने की योजना बना रहा हूं।प्रतीकात्मक गणित पायथन?

  1. क्या यह अच्छा परियोजना विचार है?

  2. कहां से शुरू करें?

  3. किसी को यह प्रोजेक्ट कैसे पहुंचा सकता है?

  4. कोई भी अच्छा संसाधन?

अग्रिम धन्यवाद।

उत्तर

19
  1. यह प्रोग्रामिंग कौशल का अभ्यास करने के लिए एक अच्छा परियोजना है। लेकिन अगर आप एक असली पुस्तकालय है कि अन्य लोगों को इस एक परियोजना आप Allone और खरोंच से शुरू करने के लिए नहीं करना चाहती है का उपयोग करना चाहते जाएगा ...

  2. कहाँ शुरू करने के लिए बनाना चाहते हैं: समाधान पर एक नज़र डालें जो पहले से ही बाहर हैं और इस बारे में सोचें कि आप क्या करना चाहते हैं। आपकी परियोजना दूसरों से अलग कैसे होगी?

  3. संसाधन: SymPy is a Python library for symbolic mathematics

+4

एक और पुस्तकालय विकल्प ऋषि (http://www.sagemath.org/) का उपयोग करना है –

4

@ स्रोत: आप pythonica पर एक नज़र डाल सकते हैं - यह पायथन में गणित-प्रकार प्रोग्राम को लागू करने का प्रयास था (स्रोत कोड डाउनलोड के लिए उपलब्ध है)।

3

यह pySym Blog आपको विचार और स्टार्टर्स प्राप्त करने के लिए भी रूचि दे सकता है, और सीख सकता है कि अन्य लोग पाइथन & प्रतीकात्मक गणित के साथ क्या कर रहे हैं। SympyCore: संसाधनों के रास्ते में

1

अधिक

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

7

प्रतीकात्मक गणित एक मजेदार परियोजना है। चाहे कोई भी इसका उपयोग करता है या नहीं, आपके प्रश्न में कोई फर्क नहीं पड़ता है, इसलिए

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

आप क्या जोड़तोड़ इन वस्तुओं में भाग लेने के लिए है तय करने के लिए है -

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

फिर उस मामले को संभालें जहां कुछ चर अनबाउंड रहते हैं, और आप केवल अभिव्यक्ति के कुछ हिस्सों का मूल्यांकन कर सकते हैं।

फिर एक अभिव्यक्ति को एक कैनोलिक रूप में पुनर्व्यवस्थित करना संभाल लें। यानी, आपने आंशिक मूल्यांकन किया है और Add(Variable(x), Add(Variable(x), Lit(3))) है। इसे Add(Multiply(Lit(2), Variable(x)), Lit(3)) में बदलने के लिए आपको नियम लिखने की आवश्यकता है।

एक बहुत अच्छा अभ्यास ब्रांड्स को अनुकूलित कर रहा है ताकि मुद्रित आउटपुट में अर्थ को पकड़ने के लिए आवश्यक न्यूनतम कोष्ठक हो।

कई अन्य "अभिव्यक्ति परिवर्तन" नियम हैं जिन्हें हम सभी बीजगणितीय जोड़ों के लिए स्कूल में सीखते हैं। बहुत से।

विशेष रूप से, एक चर को अलग करने के लिए समीकरण को पुनर्व्यवस्थित करना कुछ मामलों में वास्तव में कठिन हो सकता है।

व्युत्पन्न परिवर्तन करना आसान है, लेकिन प्रतीकात्मक एकीकरण वास्तव में विशेष मामलों के एक टन के साथ वास्तव में कठिन है।

मूल बातें मजेदार हैं। आप कितनी दूर जाना चाहते हैं इस पर निर्भर करते हुए, यह क्रमिक रूप से कठिन हो जाता है।

10

1. क्या यह अच्छा परियोजना विचार है?

हां; मैं उम्मीद करता हूं कि यह दिलचस्प काम का एक अंतहीन स्रोत प्रदान करेगी जो आपकी प्रोग्रामिंग शक्तियों का परीक्षण, विस्तार और विस्तार करेगा।

2. कहां से शुरू करें?

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

3. इस परियोजना से कैसे संपर्क किया जाना चाहिए?

जैसा कि कोई हाथी खाने से संपर्क करेगा। एक समय में एक काटने। अधिक गंभीरता से, मुझे लगता है कि कुछ मूल मुद्दे हैं, जैसे अभिव्यक्तियों का प्रतिनिधित्व, और कुछ बुनियादी कार्यक्षमता (बहुपदों पर अंकगणित) जिन्हें आप अपने दांतों को काट सकते हैं।

4. कोई अच्छा संसाधन?

बहुत सारे और बहुत सारे। 'कंप्यूटर बीजगणित', 'शब्द पुनर्लेखन' के लिए Google। अमेज़ॅन पर क्या उपलब्ध है पर एक नज़र डालें। और, यदि आपके पास पहुंच है, तो एसीएम डिजिटल लाइब्रेरी

शुभकामनाएं देखें।

1

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

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

जैसा कि अन्य ने बताया है, आप प्रेरणा या ठोस एल्गोरिदम के लिए SymPy और sympycore देख सकते हैं। किसी भी परियोजना के लिए स्रोत कोड थोड़ा जटिल है (लेकिन निश्चित रूप से सीखना बहुत कठिन नहीं है)।

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