使用Sympy分离实部和虚部

9

我正在尝试分离以下程序输出的实部和虚部。

import sympy as sp
a = sp.symbols('a', imaginary=True)
b=sp.symbols('b',real=True)
V=sp.symbols('V',imaginary=True)
a=4*sp.I
b=5
V=a+b
print V

请帮忙,提前感谢。
1个回答

12

这些代码行

b=sp.symbols('b',real=True)
V=sp.symbols('V',imaginary=True)

没有效果,因为你在这几行代码中覆盖了变量bV

b=5
V=a+b

重要的是要理解使用SymPy时Python变量和SymPy符号之间的区别。每当您使用=时,您都在分配一个Python变量,它只是指向您分配给它的数字或表达式的指针。重新分配会更改指针,而不是表达式。请参见http://docs.sympy.org/latest/tutorial/intro.htmlhttp://nedbatchelder.com/text/names.html
要实现所需功能,请使用as_real_imag()方法,例如:
In [1]: expr = 4*I + 5

In [2]: expr.as_real_imag()
Out[2]: (5, 4)

你可以使用re()im()函数:
In [3]: re(expr)
Out[3]: 5

In [4]: im(expr)
Out[4]: 4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接