如何在 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()
方法将计算导数。
假设我在 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()
方法将计算导数。