使用Sympy分离实部和虚部

时间:2014-09-19 06:15:24

标签: python sympy

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

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 个答案:

答案 0 :(得分:4)

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