我正在使用SymPy,并且出于可读性和解释性目的,我想在分母中打印一个带有虚数的分数(Sin x的Euler公式),但是每次1 /(2j)都减少为- 0.5j,不管我写什么。
有趣的是,如果没有j
,分数将不会减少。
这是一个示例:
cosx = (sp.exp(1j * x) + sp.exp(-1j * x))/2
num = sp.exp(1j * x) - sp.exp(-1j * x)
sinx = sp.sympify(num/(sp.S(2j)), evaluate=False)
使用sp.pprint()
可以按要求打印cosx,而sinx却给我带来了我所谈论的问题。
如您所见,我尽我所能避免了这种情况,但是仍然可以给我-0.5*I
。
我什至尝试了愚蠢的方法,类似于SymPy文档中的示例:
sinx = sp.Mul(1, sp.Rational(num, 2j), evaluate=False)
但是给我sp.Rational的TypeError
所以:我该如何将假想数保留在分母中?