2009-08-28 8 views
7

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

In[111]:= MultBothSides[Equal[a_, b_], c_] := Equal[c a, c b]; 

In[112]:= expression = 2 a == a b 

Out[112]= 2 a == a b 

In[113]:= MultBothSides[expression, 1/a] 

Out[113]= 2 == b 

किसी को भी एक पैकेज है कि हेरफेर इस तरह का समर्थन करेगा करने के लिए मुझसे बात कर सकते हैं?

संपादित

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

+2

क्षमा करें मैं कुछ साल देर से हूं ... लेकिन मैं जिस छोटे पैकेज का उल्लेख करता हूं http://stackoverflow.com/q/5701159/667867 आपको जो चाहिए वह करना चाहिए। चेतावनी के लिए सवाल और चर्चा पढ़ें! – telefunkenvf14

उत्तर

3

मैथमैटिका बीजगणित में हेरफेर करने के लिए कई उच्च स्तरीय कार्यों को भी प्रदान करता है। इनमें से Expand, Apart और Together, और Cancel हैं, हालांकि कुछ और हैं।

इसके अलावा, एक समीकरण के दोनों ओर (जो है, और सिर Equal साथ अभिव्यक्ति), तो आपको Thread समारोह है, जो सिर्फ अपने MultBothSides समारोह की तरह काम करता उपयोग कर सकते हैं, लेकिन साथ के लिए एक ही परिवर्तन लागू करने के अपने विशिष्ट उदाहरण के लिए एक बड़ी सौदा अधिक सामान्यता।

In[1]:= expression = 2 a == a b 
Out[1]:= 2 a == a b 

In[2]:= Thread[expression /a, Equal] 
Out[2]:= 2 == b 

In[3]:= Thread[expression - c, Equal] 
Out[3]:= 2 a - c == a b - c 

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

In[4]:= ApplyToBothSides[f_, eq_Equal] := Map[f, eq] 

In[5]:= ApplyToBothSides[4 * #&, expression] 
Out[5]:= 8 a == 4 a b 

यह अपने MultBothSides समारोह का सामान्यीकरण कि तथ्य का लाभ लेता है कि किसी भी सिर के साथ भाव पर Map काम करता है, न सिर्फ सिर List। यदि आप उन श्रोताओं के साथ संवाद करने की कोशिश कर रहे हैं जो गणित से अपरिचित हैं, तो इन प्रकार के नामों का उपयोग करके आप अधिक स्पष्ट रूप से संवाद करने में मदद कर सकते हैं। संबंधित नस में, यदि आप ईरा बैक्सटर द्वारा सुझाए गए प्रतिस्थापन नियमों का उपयोग करना चाहते हैं, तो /. सिंटैक्टिक चीनी का उपयोग करने के बजाय प्रतिस्थापन या प्रतिस्थापन लिखना उपयोगी हो सकता है।

In[6]:= ReplaceAll[expression, a -> (x + y)] 
Out[6]:= 2 (x + y) == b (x + y) 

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

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

+1

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

2

मुझे नहीं लगता कि आपको पैकेज की आवश्यकता है। आप एक सूत्र नियम के अनुसार प्रत्येक फॉर्मूला में हेरफेर करना चाहते हैं। एमएमए में, आप परिवर्तनों का उपयोग कर सूत्र पर अनुमान नियमों को मॉडल कर सकते हैं। इसलिए, यदि आप एक सूत्र है, तो आप एक अनुमान नियम मैं को क्रियान्वित करते हुए आवेदन कर सकते हैं अपने क्रम में अगला सूत्र का निर्माण करने के

f ./ I 

(मेरी एमएमए वाक्य रचना जंग लगी 15 साल है)।

एमएमए निश्चित रूप से आपके सूत्रों को सरल बनाने की कोशिश करेगा यदि उनमें मानक बीजगणितीय ऑपरेटरों और शर्तों जैसे निरंतर संख्याएं और अंकगणितीय ऑपरेटरों शामिल हैं। आप एमएमए को अपने फॉर्मूला को में अपने फॉर्मूला को संलग्न करके अपने "अनुमान" नियमों को लागू करने से रोक सकते हैं [...] फॉर्म।

संबंधित मुद्दे