簡體   English   中英

使用Sympy進行Python中的符號集成

[英]Symbolic Integration in Python using Sympy

我想使用sympy庫在python中集成exp( - (x ^ 2 + y ^ 2))。 我可以找到exp的積分( - (x ^ 2))

>>> 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( - (x ^ 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)

沒有輸出和python不能采取積分!

(我是SymPy的首席開發人員)

DSM是正確的,您可以通過調用expand來使其工作,並且沒有通用的方法來執行此操作(因為通常,積分沒有封閉的表單)。

我只是想指出,如果SymPy不能做一個封閉形式的積分,我們認為這是一個錯誤,您可以隨時在http://code.google.com/p/sympy/issues上報告它。 。

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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM