gpt4 book ai didi

python - sympy : resolving Euler's Identity 中的复数

转载 作者:行者123 更新时间:2023-12-05 07:42:44 25 4
gpt4 key购买 nike

我正在使用 sympy (python 3) 中的复杂函数,但无法让 sympy 简化方程式。特别是我无法使用欧拉恒等式将复指数分解为实部和虚部。这是我的代码:

import sympy as sym
from sympy import I, init_printing

# setup printing
init_printing()

# complex potential cylinder in uniform flow
U,z,R,theta=sym.symbols('U z R theta')
F=U*z+U/z

# complex velocity cylinder in uniform flow
compVel=sym.diff(F,z)
exp1=sym.sympify('R*exp(I*theta)')
compVel=compVel.subs(z,exp1)
print(compVel)
phi,psi=sym.symbols('phi psi')
phi=sym.re(compVel)
psi=sym.im(compVel)
print(phi)
print(psi)

当我运行这段代码时,输​​出是:

U - U*exp(-2*I*theta)/R**2
re(U) - re(U*exp(-2*I*theta)/R**2)
im(U) - im(U*exp(-2*I*theta)/R**2)

我是不是遗漏了什么,或者 sympy 不够强大,无法识别这种简化?提前致谢!

最佳答案

我想通了; @Stelios 是正确的,但此外,当您使用 sympify 时,您必须传递一个字典,其中包含表达式包含的局部变量。

exp1=sym.sympify('R*exp(I*theta)',locals={'R':R,'theta':theta})

关于python - sympy : resolving Euler's Identity 中的复数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44270726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com