【问题标题】:SymPy: Derivatives of KroneckerDelta and indicesSymPy:KroneckerDelta 和指数的衍生物
【发布时间】:2017-10-08 15:41:46
【问题描述】:

请参考以下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 相对于索引 ij 的导数以及索引 ij 相对于 x[i] 的导数是未评估的。为什么这些不是0

【问题讨论】:

  • 显然是使用Idx的问题。如果只使用普通符号作为索引,结果就不同了。

标签: sympy indexed


【解决方案1】:

我认为,我所期待的对索引变量进行符号微分的行为尚未在 Sympy 中完全实现。我转而使用其他工具,例如 Maxima 或 Mathematica(甚至笔和纸)进行这些计算。

【讨论】:

    猜你喜欢
    • 2012-07-13
    • 2010-09-30
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2014-12-26
    • 2018-12-08
    相关资源
    最近更新 更多