2017-01-23 43 views
1

我有一個表達式,其中包括一個IndexedBase。我正在偏導數,但是在輸出時,這個被保留:如何辨別sympy∂b[a] /∂b== 1? Derivedtive on 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.我該如何重新解釋我的問題,使其評估爲一個?

回答

3

首先,安裝SymPy的最新master branch(在最新 SymPy版本不支持這些功能)。否則,請等待下一個SymPy版本發佈。

無論如何,你可以得到一個克羅內克δ函數:

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],...