SymPy中求导数的导数报错NameError:Derivative未定义的解决方法
解决SymPy中对导数求导的NameError问题
你遇到的NameError是因为Derivative是SymPy库中的类,直接在代码中使用它却没有通过SymPy模块引用或提前导入。以下两种简洁方式可以解决问题:
方案1:使用SymPy模块前缀访问Derivative类
直接在求导时用sp.Derivative(x, t)作为求导变量,无需额外定义新变量:
import sympy as sp # 基础定义 t = sp.symbols('t') x = sp.Function('x')(t) B, C = sp.symbols('B C') Lx = B * sp.diff(x, t) * C # 正确求导:用sp.Derivative指定求导变量 ELx = sp.diff(Lx, sp.Derivative(x, t)) print(ELx) # 输出结果:B*C
方案2:提前导入Derivative类
如果不想每次都写模块前缀,可以提前从SymPy中导入Derivative类:
import sympy as sp from sympy import Derivative # 基础定义 t = sp.symbols('t') x = sp.Function('x')(t) B, C = sp.symbols('B C') Lx = B * sp.diff(x, t) * C # 直接使用Derivative类 ELx = sp.diff(Lx, Derivative(x, t)) print(ELx) # 输出结果:B*C
原理说明
SymPy中的Derivative是用于表示符号导数的类,不属于Python内置名称,因此必须明确从SymPy库中引用。两种方案都不需要额外定义替代变量,完全符合你的需求。
内容的提问来源于stack exchange,提问作者Mo711
相关产品推荐
相关产品推荐

