2012-08-29 12 views
5

का उपयोग कर पाइथन में प्रतीकात्मक एकीकरण मैं sympy लाइब्रेरी का उपयोग कर पायथन में एक्स (- (x^2 + y^2)) को एकीकृत करना चाहता हूं। (- (एक्स^2)) मैं exp का अभिन्न मिल सकता है (- (एक्स^2 + y^2))सिम्पी

>>> B1 = sympy.exp(-alpha1 * (r1_x**2 + r1_y**2)) 
>>> p = integrate(B1,r1_x) 
>>> p 
Integral(exp(-alpha1*(r1_x**2 + r1_y**2)), r1_x) 

>>> B1 = sympy.exp(-alpha1 * (r1_x**2)) 
>>> p = integrate(B1,r1_x) 
>>> p 
pi**(1/2)*erf(alpha1**(1/2)*r1_x)/(2*alpha1**(1/2)) 

लेकिन जब मैं exp एकीकृत कोशिश करना चाहते हैं कोई आउटपुट नहीं है और अजगर अभिन्न नहीं ले सकता है!

+1

सामान्यतः, इस अभिन्न अंग के लिए कोई बंद फॉर्म समाधान नहीं है। – unutbu

उत्तर

3

sympy हमेशा हर रूप को नहीं पहचानता है, और इसलिए कभी कभी आप इसे थोड़ी सी मदद देना है:

>>> import sympy 
>>> alpha1, r1_x, r1_y = sympy.var("alpha1 r1_x r1_y") 
>>> B1 = sympy.exp(-alpha1 * (r1_x**2 + r1_y**2)) 
>>> B1.integrate(r1_x) 
Integral(exp(-alpha1*(r1_x**2 + r1_y**2)), r1_x) 
>>> B1.expand(alpha1) 
exp(-alpha1*r1_x**2)*exp(-alpha1*r1_y**2) 
>>> B1.expand(alpha1).integrate(r1_x) 
sqrt(pi)*exp(-alpha1*r1_y**2)*erf(sqrt(alpha1)*r1_x)/(2*sqrt(alpha1)) 
+0

धन्यवाद, क्या इसके लिए कोई सामान्य तरीका है? चूंकि यहां समीकरण आसान है, नाजुक समीकरणों के लिए मुझे क्या करना चाहिए? – Hesam

+1

मुझे पता नहीं है; और प्रयोग करने के लिए तैयार रहें। बुरी खबरों के वाहक होने के लिए खेद है! – DSM

+1

'बी 1.एक्सपैंड (अल्फा 1) 'केवल' बी 1.एक्सपैंड()' होना चाहिए। विस्तार के तर्क सिर्फ संकेत हैं। – asmeurer

6

(मैं SymPy के नेतृत्व डेवलपर हूँ)

डीएसएम सही है कि आप इसे विस्तारित करके काम करने के लिए मिल सकता है, और ऐसा करने का कोई सामान्य तरीका नहीं है (क्योंकि सामान्य रूप से, इंटीग्रल के पास बंद फॉर्म नहीं होते हैं)।

मैं बस यह इंगित करना चाहता था कि यदि सिम्पी एक अभिन्न अंग नहीं कर सकता है जिसमें बंद फॉर्म है, तो हम इसे एक बग मानते हैं, और आपको इसे http://code.google.com/p/sympy/issues पर रिपोर्ट करने के लिए स्वतंत्र महसूस होना चाहिए।

+0

असल में मैंने पाइथन, मैटलैब और गणित के साथ हल करने की कोशिश की और मुझे लगता है कि इन सॉफ़्टवेयर में इंटीग्रल का मूल्यांकन करने के लिए अलग-अलग एल्गोरिदम हैं। वैसे भी, मैं अजगर का उपयोग करना पसंद करता हूं क्योंकि मैं इसे अपने सी ++ प्रोग्राम से कॉल करना चाहता हूं। – Hesam

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