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 = 2
的 dx
的值。
显然,dx = 2 * 2 = 4
当 x = 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))
from sympy import *
x = Symbol('x')
y = x ** 2
dx = diff(y, x)
这段代码可以得到y的导数。
很简单dx = 2 * x
现在我想获取 x = 2
的 dx
的值。
显然,dx = 2 * 2 = 4
当 x = 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))