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

如何提取含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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:31:17