用subs替换Sympy

2024-04-28 09:18:39 发布

您现在位置:Python中文网/ 问答频道 /正文

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现在是一个常数。 我用错方法了吗?你知道吗


Tags: 方法答案参数时间pi常数difffunction
1条回答
网友
1楼 · 发布于 2024-04-28 09:18:39

在给定的例子中,Sympy的替换给出了正确的答案,因为我们试图替换q1(t) = pi/2,一个常量函数。所以它的导数必然是0。只有当q1q1'彼此独立时,答案-Derivative(q1(t),t)才是正确的,就像在变分法中一样。在这种情况下,最好使用两个不同的变量,一个用于q1,另一个用于q1'。因此,如果我们已经知道函数f,那么最好直接定义它,而不是像这样派生它

p, q, t = symbols('p, q, t')
f = -sin(p)*q    
f.subs( p, pi/2)

如果q1q1'相互独立,这应该是正确的替代方法。你知道吗

相关问题 更多 >