Почему SymPy не заменяет экспоненты? - PullRequest
0 голосов
/ 09 мая 2018

Простой пример:

from sympy import *
n = symbols('n',integer=True)
x,y = symbols('x,y')
expression = exp(I*n*x)
expression.subs(exp(I*n),y)
#>> exp(I*n*x)

Почему SymPy не заменяет exp(I*x) на y**n? С другой стороны, он прекрасно работает (заменив y в y**n на exp(I*x), чтобы получить exp(I*n*x)). Есть ли взломать, чтобы сделать это?

1 Ответ

0 голосов
/ 10 мая 2018

subs может вообще не работать, если заменяемое вами выражение не отображается точно в выражении.

Один из способов - использовать replace с сопоставлением с шаблоном для замены более общего шаблона

>>> a = Wild('a')
>>> expression.replace(exp(I*n*a), y**a)
y**x
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...