我有一个包含IndexedBase
的表达式。我采取了偏导数,但在输出中,这是保留的:
In [105]: sympy.IndexedBase(b)[a].diff(b)
Out[105]:
∂
──(b[a])
∂b
我的b[a]
只是一个数组b_0
,b_1
,...,b_n
。这些都是常数,所以∂b[a] /∂b等于1.我如何重新解释我的问题,使其评估为1?
答案 0 :(得分:3)
首先,安装最新的master branch SymPy(最新 SymPy版本不支持这些功能)。否则,请等待下一个SymPy版本发布。
无论如何,您可以获得Kronecker delta功能:
In [27]: b = IndexedBase("b")
In [28]: b[a].diff(b[c])
Out[28]:
δ
a,c
如果使用相同的索引派生索引对象:
In [29]: b[a].diff(b[a])
Out[29]: 1
虽然操作b[a].diff(b)
没有明确定义,但会引发错误。
我个人会将b[a].diff(b)
解释为衍生数组∂b[a] /∂b[0],∂b[a] /∂b[1],...