You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 09:50:28