q1 = Function('q1')(t)
f=cos(q1).diff(t)
f.subs(q1,pi/2)
我有一个function f = -sin(q1)*q1'
,我想在 when 评估它q1=pi/2
。我希望得到答案:-(q1)' 但我得到的是:-0。所以不仅参数 q1 被替换,而且它的时间导数也变为零,因为 q1 现在是一个常数。我在这里使用了错误的方法吗?
在给定的例子中,Sympy 的替换给出了正确的答案,因为我们试图替换q1(t) = pi/2
,一个常量函数。所以它的导数必然是0
。-Derivative(q1(t),t)
只有当q1
和q1'
彼此独立时,答案才是正确的,就像在变分法中一样。在这种情况下,最好使用两个不同的变量——一个用于 the q1
,另一个用于q1'
。因此,如果我们已经知道该函数f
,最好直接定义它,而不是尝试像
p, q, t = symbols('p, q, t')
f = -sin(p)*q
f.subs( p, pi/2)
如果q1
和q1'
彼此独立,这应该是替代的正确方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句