同情中索引符号的导数

我试图使用sympy对时间索引变量进行符号计算(主要是衍生物) . 使用索引符号如下面的r [t]会产生错误:

from sympy import *
t = Idx('t',10)
r = IndexedBase('r')

diff(r[t],r[t])
diff(r,r)

ValueError: 
Can't differentiate wrt the variable: r[t], 1

原因可能是这里出了问题:

In [15]: r[t].indices
Out[15]: (t,)

索引t之后的逗号对我来说很可疑,但我不知道出了什么问题 .

有人知道如何在同情中这样做吗?

回答(1)

2 years ago

您可以区分符号,函数和派生词 . 这会工作:

>>> t = Idx('t',10)
>>> r=Function('r')
>>> r(t).diff(r(t))
1
>>> var('t')
t
>>> r(t).diff(t)
Derivative(r(t), t)