Я играю с SymPy и для удобства чтения и объяснения я хотел напечатать дробь с мнимым числом в знаменателе (формула Эйлера для sin x), но каждый раз, когда 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)
, но это дает мне TypeError для sp.Rational
Итак: как мне сохранить это мнимое число в знаменателе?