SymPy:KroneckerDelta 和指数的导数
SymPy: Derivatives of KroneckerDelta and indices
请参考以下MWE:
import sympy as s
x = s.IndexedBase('x')
y = s.IndexedBase('y')
i,j,k = map(s.Idx,['i','j','k'])
a = s.exp(x[i]*y[j]*s.KroneckerDelta(i,j))
b = a.diff(x[j])
b
的值为LaTeX rendering of b。由于我还不允许嵌入图片,这里是文本形式
((Derivative(KroneckerDelta(i, j), i)*Derivative(i, x[j]) + Derivative(KroneckerDelta(i, j), j)*Derivative(j, x[j]))*x[i]*y[j] + KroneckerDelta(i, j)*y[j])*exp(KroneckerDelta(i, j)*x[i]*y[j])
关键是KroneckerDelta
关于索引i
和j
以及索引i
和j
的导数有未评估的导数关于 x[i]
。为什么这些不是 0
?
我认为,我所期望的索引变量符号微分的那种行为尚未在 Sympy 中完全实现。我开始使用其他工具,如 Maxima 或 Mathematica(甚至笔和纸)来进行这些计算。
请参考以下MWE:
import sympy as s
x = s.IndexedBase('x')
y = s.IndexedBase('y')
i,j,k = map(s.Idx,['i','j','k'])
a = s.exp(x[i]*y[j]*s.KroneckerDelta(i,j))
b = a.diff(x[j])
b
的值为LaTeX rendering of b。由于我还不允许嵌入图片,这里是文本形式
((Derivative(KroneckerDelta(i, j), i)*Derivative(i, x[j]) + Derivative(KroneckerDelta(i, j), j)*Derivative(j, x[j]))*x[i]*y[j] + KroneckerDelta(i, j)*y[j])*exp(KroneckerDelta(i, j)*x[i]*y[j])
关键是KroneckerDelta
关于索引i
和j
以及索引i
和j
的导数有未评估的导数关于 x[i]
。为什么这些不是 0
?
我认为,我所期望的索引变量符号微分的那种行为尚未在 Sympy 中完全实现。我开始使用其他工具,如 Maxima 或 Mathematica(甚至笔和纸)来进行这些计算。