sympy 集成“永远”运行的可能原因是什么?

问题描述 投票:0回答:2

我有以下代码,它定义了一个简单的函数,以两个实数变量作为参数并返回一个复数。函数调用在一分钟内不会返回。我确定原因是我们的 sympify 不合适(见下文)

%%time
from sympy import *

x,t=symbols('x t')
e_psi_sw=sin(2*pi*x) + exp(1j*t)*sin(pi*x)
pdf=conjugate(e_psi_sw)*e_psi_sw
integrate(pdf*x,(x,0,1))
python sympy symbolic-integration
2个回答
0
投票

如果使用 sympy 的

I
而不是复杂的 Python float
1j
,速度会更快。通常最好避免在 sympy 中使用不必要的浮点数。

还将符号 x 和 t 声明为实数会导致更简单的被积函数,可以更容易地积分。


0
投票

我用字符串而不是裸露的表达式来调用 sympify。当我删除引号时,积分运行得很快,我在这里引用的其他问题也得到了解决。

我确实将 j 更改为 I 也...

© www.soinside.com 2019 - 2024. All rights reserved.