Search code examples
pythonsympysymbolic-math

How to simplify logarithm of exponent in sympy?


When I type

import sympy as sp
x = sp.Symbol('x')
sp.simplify(sp.log(sp.exp(x)))

I obtain

log(e^x)

Instead of x. I know that "there are no guarantees" on this function.

Question. Is there some specific simplification (through series expansion or whatsoever) to convert logarithm of exponent into identity function?


Solution

  • You have to set x to real type and your code will work:

    import sympy as sp
    x = sp.Symbol('x', real=True)
    print(sp.simplify(sp.log(sp.exp(x))))
    

    Output: x.

    For complex x result of this formula is not always is equal to x. Example is here.