Python 如何获取一个特定点的导数值?

Python How to get the value of one specific point of derivative?

from sympy import *
x = Symbol('x')
y = x ** 2
dx = diff(y, x)

这段代码可以得到y的导数。 很简单dx = 2 * x

现在我想获取 x = 2dx 的值。

显然,dx = 2 * 2 = 4x = 2

但是我如何用 python 代码实现这个呢?

感谢您的帮助!

根据 SymPy 的 documentation,您必须 评估 函数的值 替换 x 之后 x期望值:

>>> dx.evalf(subs={x: 2})
4.00000000000000

>>> dx.evalf(2, subs={x: 2})
4.0

将输出限制为两位数。

可能最通用的方法是 lambdify:

sympy.lambdify 创建并 returns 一个函数,您可以将其分配给一个名称并调用,就像任何其他 python 可调用函数一样。

from sympy import *

x = Symbol('x')
y = x**2
dx = diff(y, x)
print(dx, dx.subs(x, 2))  # this substitutes 2 for x as suggested by @BugKiller in the comments

ddx = lambdify(x, dx)     # this creates a function that you can call
print(ddx(2))