Как избежать сокращения сложных фракций с помощью SymPy - PullRequest
0 голосов
/ 28 февраля 2019

Я играю с 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

Итак: как мне сохранить это мнимое число в знаменателе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...