【发布时间】:2020-04-19 14:13:02
【问题描述】:
我有点同情初学者,所以请不要假设我有太多特定于图书馆的知识。
我在一个偶数域上整合了许多指数表达式的总和,为了加快这个过程,我想忽略任何奇怪的术语。例如,表达式
# / pi / pi / pi
# | | |
# | | | exp(-I*x1)exp(I*2*y)exp(I*5*z)
# | | | _____________________________ dx1 dy dz
# | | | 101
# | | |
# / -pi / -pi / -pi
是 0,因为 e^{i2y} 在偶数域上的积分(这适用于 e^{inx} 任何偶数 n > 0)。
我创建了几千个这样的术语并使用 Add.make_args() 将它们分成一个列表;该列表的一部分是
[exp(I*x1)/4 - 1/2 + exp(-I*x1)/4,
exp(I*x1/2)*exp(-I*y1/2)*exp(-I*z1/2)/2 + exp(-I*x1/2)*exp(I*y1/2)*exp(I*z1/2)/2]
对于单个 exp() 函数,我知道如何使用提取参数
f = exp(I*x1)/4
print(log(numer(f)).subs(x1,1)/I)
打印出来的
1
然后我可以使用 %2==0 进行测试。但是,我不确定如何扫描多个连续的 exp() 函数,每个函数可能具有 6 个不同的积分变量之一,或者是否有更简单的方法来做到这一点。
如何检查多元 sympy 函数是否为奇数,或提取其每个 exp() 参数进行检查?
(编辑:改变了我测试整数是否为偶数的方法;添加了python标签)
【问题讨论】: