Sympy不会计算这个积分

时间:2017-09-21 00:08:47

标签: python sympy integral calculus

我正在尝试在sympy中运行以下示例

import sympy as sp
from sympy.parsing.sympy_parser import parse_expr

n, L, x = sp.symbols('n L x')    
sp.integrate(sp.cos(sp.pi*x/L)**2, (x, -L/2, L/2))

由于某种原因,它实际上并没有解决这个问题。它只打印出原始积分。

>>> sp.integrate(sp.cos(sp.pi*x/L)**2, (x, -L/2, L/2))
  L
  -
  2
  /
 |
 |     2/pi*x\
 |  cos |----| dx
 |      \ L  /
 |
/
-L
---
 2

Wolfram Alpha, on the other hand, does not have this issue.

1 个答案:

答案 0 :(得分:1)

这看起来有点烦人,但是同情心并没有评估积分,因为它对L知之甚少。具体来说,它正在为可能性L=0敞开大门,这将对您的被积函数造成严重破坏。为了解决这个问题,我们只需告知同意L不为零。最简单的方法是在实例化期间将参数传递给symbols

import sympy as sp
n, x = sp.symbols('n x')    
L = sp.symbols('L', nonzero=True)
sp.integrate(sp.cos(sp.pi*x/L)**2, (x, -L/2, L/2))
#>>> L/2