我有以下一组命令来做一个定积分
n [2]: from sympy import *
init_printing()
x,L = symbols('x, L')
n = symbols('n', integer = True)
exp = sin((n+Rational(1,2))*pi*x/L)**2
integrate(exp, (x,0,L))
Run Code Online (Sandbox Code Playgroud)
这些命令的结果如下所示:
第一个结果意味着 n=-1/2 这意味着 n 不是整数。如果在如上所示的操作中不考虑它,则为符号提供整数属性有什么意义?如果 n 是整数,我如何强制 sympy 认识到分段结果的第一部分是不可能的?
如果已经评估了等式,则此条件将被拒绝,并且 Piecewise 将评估为您的预期结果。因为 SymPy 不知道您的 L 是否为零,所以它无法评估该相等性。
所以试试
>>> n = var('n', integer=True)
>>> L = var('L', nonzero=True)
>>> exp = sin((n+Rational(1,2))*pi*x/L)**2
>>> integrate(exp, (x,0,L))
L/2
Run Code Online (Sandbox Code Playgroud)
你去吧!:-)(但是请注意,仅仅说 L 是有限的就应该足以知道等式永远不会为真,但是 SymPy 也无法评估该条件。)
/C
| 归档时间: |
|
| 查看次数: |
2497 次 |
| 最近记录: |