SymPy计算f(x)=x**2在x=2处导数得0而非4,求排查
SymPy求导结果异常问题解决
你的代码逻辑有误,导致结果不符合预期:
- 你先执行
f.subs(x,2),把函数x²中的x替换为2,得到了常数4 - 再对这个常数关于x求导,根据导数规则,常数的导数为0,所以无论代入什么x值,结果都会是0
正确的实现方式
方式1:先求导,再代入数值
from sympy import * x = symbols('x') f = x**2 # 先对f求导,得到2x f_derivative = diff(f, x) # 将x=2代入导数表达式 result = f_derivative.subs(x, 2) print(result) # 输出4
方式2:一行式写法
from sympy import * x = symbols('x') f = x**2 result = diff(f, x).subs(x, 2) print(result) # 输出4
方式3:直接得到数值结果(带小数)
from sympy import * x = symbols('x') f = x**2 result = diff(f, x).evalf(subs={x: 2}) print(result) # 输出4.0
内容的提问来源于stack exchange,提问作者Rahul Bahuguna
相关产品推荐
相关产品推荐

