sympy - 为什么 SymPy 不取代指数?

标签 sympy

简单的例子:

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/

相关文章:

python - 使用(numpy 的) float 时 Sympy 的结果不正确

python - sympy 表达式的 numpy 数组中某些符号的数值计算

Python - Sympy 最小值和最大值

python - 为什么 sympy 不支持 0 量级的单位?

python - Sympy:如何用函数代替函数?

python - 如何访问 SymEngine 以与 SymPy 一起使用?

python - 使用 SymPy 查找数字的简单表示

python - SymPy:如何从表达式中获取值

python - 非交换函数乘积的导数

python - SymPy -- 定义变量域