我如何告诉sympy我^2=1?

2024-04-27 03:44:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在正在用Symphy来检查我的代数中一些涉及二阶导数和复数的讨厌的方程

import sympy
from sympy.abc import a, e, i, h, t, x, m, A

# define a wavefunction
Psi = A * sympy.exp(-a * ((m*x**2 /h)+i*t))

# take the first order time derivative
Psi_dt = sympy.diff(Psi, t)
# take the second order space derivative
Psi_d2x = sympy.diff(Psi, x, 2)

# write an expression for energy potential (rearrange Schrodingers Equation)
V = 1/Psi * (i*h*Psi_dt + (((h**2)/2*m) * Psi_d2x))


# symplify potential function
sympy.simplify(V)

这就产生了一件好事:

a*(-h*i**2 + m**2*(2*a*m*x**2 - h))

如果sympy将i^2简化为-1,那就太好了。 那么我如何告诉它i表示-1的平方根呢

另一方面,告诉Symphy e是eulers号码也很好,所以如果我调用sympy.diff(e**x, x),我会得到e**x作为输出


Tags: theimportdtdifforderpotential导数sympy