Sympy 返回 log 而不是 ln

vic*_*vic 4 python math sympy derivative python-3.x

我有这个等式:

\n\n
import sympy as sp\n\nx = sp.Symbol(\xe2\x80\x98x\xe2\x80\x99, real = True)\nfx = sp.log(x,3)\n\nsp.diff(fx, x) \n
Run Code Online (Sandbox Code Playgroud)\n\n

Sympy 返回:

\n\n
1/(x*log(3))\n
Run Code Online (Sandbox Code Playgroud)\n\n

Sympy 应该返回:

\n\n
1/(x*ln(3))\n
Run Code Online (Sandbox Code Playgroud)\n\n

为什么 Sympy 返回对数函数而不是自然对数函数?

\n

CDJ*_*DJB 7

这里

笔记:

在 SymPy 中,与 Python 和大多数编程语言一样,log 是自然对数,也称为 ln。SymPy 自动提供别名 ln = log 以防您忘记这一点。

>>> sp.ln(x)
log(x)
Run Code Online (Sandbox Code Playgroud)

所以您发布的代码实际上是正确的。

sp.log(x,3)等价于log(x)/log(3),其导数1/(x*log(3))在 Sympy 中等价于1/(x*ln(3))

  • 我想为那些可能对这个操作的名称感到困惑的人添加一些内容。这个操作称为基数改变。即,log_3(x) = ln(x)/ln(3),其中 log_3(x) 是 x 的以 3 为底的对数。 (2认同)