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

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

现在我想获得 for 的dxx = 2

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

但是我怎样才能用 python 代码实现这一点呢?

谢谢你的帮助!

4

2 回答 2

3

可能最通用的方法是lambdify

sympy.lambdify创建并返回一个您可以分配给名称并调用的函数,就像任何其他可调用的 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))
于 2018-08-13T03:11:13.337 回答
2

根据 SymPy 的文档,您必须在用所需值替换后评估函数的值: x

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

或者

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

将输出限制为两位数。

于 2018-08-13T03:08:21.243 回答