如何提取含Derivative的SymPy表达式的导数项系数?
解决方法
错误原因是你将r和theta定义成了普通符号变量,但表达式里它们是关于t的函数,直接写r(t)会触发“对象不可调用”的错误。以下是正确的实现步骤:
1. 正确定义符号与函数
首先用SymPy的Function类声明r和theta为函数,t为自变量:
from sympy import symbols, Function, Derivative t = symbols('t') r = Function('r')(t) theta = Function('theta')(t) m = symbols('m')
2. 构建动能表达式T
T = 0.5*m*(r**2*Derivative(theta, t)**2 + Derivative(r, t)**2)
3. 提取二次项系数
直接调用coeff方法,传入对应的导数对象和次数2:
cr = T.coeff(Derivative(r, t), 2) ctheta = T.coeff(Derivative(theta, t), 2) print(cr) # 输出: 0.5*m print(ctheta) # 输出: 0.5*m*r(t)**2
补充说明
如果之前误将r、theta定义为普通符号(比如r = symbols('r')),会覆盖函数定义,导致调用r(t)失败。确保始终用Function类声明这类函数型符号。
内容的提问来源于stack exchange,提问作者runner65
相关产品推荐
相关产品推荐

