2015-10-04 7 views
9

एक चर को सीधे असाइन करना उन अभिव्यक्तियों को संशोधित नहीं करता है जो परिवर्तनीय रूप से चर का उपयोग करते हैं।sympy में अभिव्यक्ति में एकाधिक प्रतीकों को कैसे प्रतिस्थापित करें?

>>> from sympy import Symbol 
>>> x = Symbol('x') 
>>> y = Symbol('y') 
>>> f = x + y 
>>> x = 0 

>>> f 
x + y 
+0

चेक आउट: http://docs.sympy.org/latest/tutorial/basic_operations.html 'expr.subs (x, val)' –

उत्तर

17

स्थानापन्न करने के लिए कई मान:

>>> from sympy import Symbol 
>>> x, y = Symbol('x y') 
>>> f = x + y 
>>> f.subs({x:10, y: 20}) 
>>> f 
30 
+0

के लिए पहले इसका उत्तर ढूंढ रहा था। मैं समझता हूं कि मेरा कोड क्यों काम नहीं करता था, लेकिन मुझे केवल मूल्यों के लिए वाक्यविन्यास के त्वरित संदर्भ की आवश्यकता थी। मेरी पहली Google खोज में कुछ भी नहीं मिला, इसलिए मैंने सोचा कि मैं जवाब देने के बाद जवाब दूंगा क्योंकि उम्मीद है कि वह अगले व्यक्ति को कभी-कभी बचाएगा। क्यू एंड ए स्टाइल पोस्ट करना स्टैक ओवरफ्लो की एक विशेषता है। http://meta.stackoverflow.com/questions/290038/answer-your-own-question-qa-style – Wesley

+0

क्या होगा यदि एफ प्रतीकों का एक मैट्रिक्स है? जैसा कि 'ए = symarray (' ए ', 3) '? –

1

असल sympy मानों को बदल नहीं जब तक आप वास्तव में (http://docs.sympy.org/latest/tutorial/basic_operations.html देखें)

प्रयास करें उन्हें subs साथ स्थानापन्न करना चाहते हैं डिज़ाइन किया गया है

f.subs({x:0}) 
f.subs(x, 0) # as alternative 
के बजाय
x = 0 
+0

क्या होगा अगर एफ प्रतीकों का एक मैट्रिक्स है? जैसा कि 'ए = symarray (' ए ', 3) '? –

1

आदेश x = Symbol('x') भंडार Sympy के Symbol('x') पायथन के चर x में। सिम्पी अभिव्यक्ति f जिसे आप बाद में बनाते हैं, इसमें Symbol('x') होता है, पायथन चर x नहीं।

जब आप x = 0 पुन: असाइन करते हैं, तो पायथन वैरिएबल x शून्य पर सेट होता है, और अब Symbol('x') से संबंधित नहीं है। इसका सिम्पी अभिव्यक्ति पर कोई प्रभाव नहीं पड़ता है, जिसमें अभी भी Symbol('x') शामिल है। , के रूप में अन्य उत्तर में कहा http://docs.sympy.org/latest/gotchas.html#variables

क्या आप क्या करना चाहते f.subs(x,0) है:

यह सबसे अच्छा Sympy प्रलेखन के इस पृष्ठ में समझाया गया है।

+0

क्या होगा यदि एफ प्रतीकों का एक मैट्रिक्स है? जैसा कि 'ए = symarray (' ए ', 3) '? –

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