简单示例:
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)
)。是否有一个黑客来完成这个?
答案 0 :(得分:1)
subs
可能无法正常工作。
一种解决方法是使用replace
模式匹配来替换更通用的模式
>>> a = Wild('a')
>>> expression.replace(exp(I*n*a), y**a)
y**x