我如何告诉同情∂b[a] /∂b== 1? IndexedBase的衍生词

时间:2017-01-23 14:30:25

标签: sympy

我有一个包含IndexedBase的表达式。我采取了偏导数,但在输出中,这是保留的:

In [105]: sympy.IndexedBase(b)[a].diff(b)
Out[105]: 
∂       
──(b[a])
∂b      

我的b[a]只是一个数组b_0b_1,...,b_n。这些都是常数,所以∂b[a] /∂b等于1.我如何重新解释我的问题,使其评估为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],...