Экспоненциальное тригонометрическое преобразование в SymPy при упрощении - упрямое выражение - PullRequest
0 голосов
/ 09 октября 2018

Я пытался упростить

exp(2*I*N) - 1)**2/((exp(2*I*N) - 1)**2 - 4*exp(2*I*N)*cos(N)**2)

Где ответ должен быть (грех N) ^ 2, но вывод совпадает с вводом.

Я пытался .rewrite(cos)а затем упростить, выполнить упрощение, расширить и в значительной степени все, что я мог быстро обнаружить из справочных источников.

1 Ответ

0 голосов
/ 09 октября 2018

Переписывание в терминах exp вместо cos более полезно:

expr.rewrite(exp).simplify()

возвращает -cos(2*N)/2 + 1/2, что визуально эквивалентно sin(N)**2.Очистите его с помощью

expr.rewrite(exp).simplify().trigsimp()

, получив sin(N)**2


Старый ответ, все еще может иметь значение: вы, вероятно, имели в виду N, чтобы быть реальным, поэтому давайте объявим его кактакие.

Учитывая сочетание сложных экспонент и тригонометрических функций, это, вероятно, поможет разделить действительную и мнимую части с as_real_imag().Прямое приложение не имеет ничего общего с положением re (...) и im (...), поэтому сначала рекомендуется переписать в экспонентах и ​​расширить квадраты / произведения:

N = symbols('N', real=True)
expr = (exp(2*I*N) - 1)**2/((exp(2*I*N) - 1)**2 - 4*exp(2*I*N)*cos(N)**2)
result = [a.trigsimp() for a in expr.rewrite(cos).expand().as_real_imag()]

Результат: [sin(N)**2, 0] означает реальные и мнимые части выражения.Его можно объединить в одно выражение с result[0] + I*result[1].

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