q1 = Function('q1')(t)
f=cos(q1).diff(t)
f.subs(q1,pi/2)
我有function f = -sin(q1)*q1'
,我想在q1=pi/2
时对其进行评估。我希望得到一个答案: - (q1)'但我得到:-0。
因此,不仅参数q1被替换,而且其时间导数变为零,因为q1现在是常数。
我在这里使用错误的方法吗?
答案 0 :(得分:0)
在给定的示例中,Sympy的替换正在给出正确的答案,因为我们试图替换q1(t) = pi/2
,一个常量函数。所以它的衍生物必然是0
。答案-Derivative(q1(t),t)
仅在q1
和q1'
彼此独立时才是正确的,例如在变体计算中。在这种情况下,最好使用两个不同的变量 - 一个用于q1
,另一个用于q1'
。所以,如果我们已经知道函数f
,最好直接定义它,而不是试图像
p, q, t = symbols('p, q, t')
f = -sin(p)*q
f.subs( p, pi/2)
如果q1
和q1'
彼此独立,这应该是替换的正确方法。