Ser*_*gal 7 python symbolic-math sympy
当我打字
import sympy as sp
x = sp.Symbol('x')
sp.simplify(sp.log(sp.exp(x)))
Run Code Online (Sandbox Code Playgroud)
我得到
log(e^x)
Run Code Online (Sandbox Code Playgroud)
而不是x. 我知道此功能“没有任何保证”。
题。是否有一些特定的简化(通过级数扩展或其他方式)将指数的对数转换为恒等函数?
您必须设置x为真实类型,您的代码才能工作:
import sympy as sp
x = sp.Symbol('x', real=True)
print(sp.simplify(sp.log(sp.exp(x))))
Run Code Online (Sandbox Code Playgroud)
输出:x。
对于x这个公式的复数结果并不总是等于x。例子在这里。
如果您想强制简化,expand可以提供帮助,因为它提供的force关键字基本上可以为您做出这样的某些假设,而您无需将变量声明为真实变量。但是要小心结果——当这些假设不成立时,您不会想要使用它。
>>> log(exp(x)).expand(force=True)
x
Run Code Online (Sandbox Code Playgroud)