简单的例子:
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
?反过来它工作得很好(用 exp(I*x)
替换 y**n
中的 y
得到 exp (I*n*x)
)。有什么办法可以完成这个任务吗?
最佳答案
如果您要替换的表达式没有完全出现在表达式中,
subs
通常可能无法工作。
一种解决方法是使用带有模式匹配的 replace
来替换更通用的模式
>>> a = Wild('a')
>>> expression.replace(exp(I*n*a), y**a)
y**x
关于sympy - 为什么 SymPy 不取代指数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50258230/