Sympy用log(e)输出导数

时间:2017-05-26 15:06:56

标签: python sympy

我使用Sympy来计算衍生物和其他一些东西。我尝试计算"e**x + x + 1"的导数,并返回e**x*log(e) + 1作为结果,但据我所知,正确的结果应为e**x + 1。这里发生了什么?

完整代码:

from sympy import *
from sympy.parsing.sympy_parser import parse_expr

x = symbols("x")
_fOfX = "e**x + x + 1"
sympyFunction = parse_expr(_fOfX)
dSeconda = diff(sympyFunction,x,1)
print(dSeconda)

1 个答案:

答案 0 :(得分:1)

答案正确包括log(e),因为你从未指定“e”是什么。它只是一个像“a”或“b”的字母。

Euler编号2.71828 ...在SymPy中表示为E.但通常情况下,写exp(x)更可取,因为符号是明确的,也是因为SymPy无论如何都要返回exp(x)。例子:

>>> fx = E**x + x + 1
>>> diff(fx, x, 1)
exp(x) + 1

或使用exp表示法:

>>> fx = exp(x) + x + 1
>>> diff(fx, x, 1)
exp(x) + 1

通过解析字符串来避免创建表达式,除非您确实需要并知道为什么需要它。