2024-04-28 09:18:39 发布
网友
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现在是一个常数。 我用错方法了吗?你知道吗
function f = -sin(q1)*q1'
q1=pi/2
在给定的例子中,Sympy的替换给出了正确的答案,因为我们试图替换q1(t) = pi/2,一个常量函数。所以它的导数必然是0。只有当q1和q1'彼此独立时,答案-Derivative(q1(t),t)才是正确的,就像在变分法中一样。在这种情况下,最好使用两个不同的变量,一个用于q1,另一个用于q1'。因此,如果我们已经知道函数f,那么最好直接定义它,而不是像这样派生它
q1(t) = pi/2
0
q1
q1'
-Derivative(q1(t),t)
f
p, q, t = symbols('p, q, t') f = -sin(p)*q f.subs( p, pi/2)
如果q1和q1'相互独立,这应该是正确的替代方法。你知道吗
在给定的例子中,Sympy的替换给出了正确的答案,因为我们试图替换
q1(t) = pi/2
,一个常量函数。所以它的导数必然是0
。只有当q1
和q1'
彼此独立时,答案-Derivative(q1(t),t)
才是正确的,就像在变分法中一样。在这种情况下,最好使用两个不同的变量,一个用于q1
,另一个用于q1'
。因此,如果我们已经知道函数f
,那么最好直接定义它,而不是像这样派生它如果
q1
和q1'
相互独立,这应该是正确的替代方法。你知道吗相关问题 更多 >
编程相关推荐