如何在 sympy 的表达式中替换函数

How can I substitute a function in an expression in sympy

假设我在 sympy 中有一个表达式,我可以用变量区分(例如 )。这是一个位置表达式,我有兴趣根据时间对它进行微分以获得速度。使用以下代码:

r = sp.symbols('r')
t = sp.symbols('t')
theta= sp.Function('theta')(t)
params = {'r':1,'l':2, 'theta':2*t}
dtheta = theta.diff(t)

xB = r*sp.cos(theta) 
vB = f.diff(t)

我能够为此获得导数的通用形式:

然后我可以用 subs 替换像 'r' 这样的数量,例如vB.subs({'r':2}),产生:

但是,我不知道如何用时间函数替换 $\theta$。例如。我想替换 并获得该特定值的解决方案。

感谢我可以在一开始就更改这些值,但我希望这应该是可能的。

# substitution dictionary. Note that the keys are symbols/functions
d = {r:1, theta:3.14 * t}
vB.subs(d).doit()
# -3.14*sin(3.14*t)

doit() 方法将计算导数。