Python 共形共轭的导数

Python 共形共轭的导数,python,sympy,derivative,differentiation,Python,Sympy,Derivative,Differentiation,当我试图用SymPy来区分一个符号时,我得到了以下结果 In : x=Symbol('x') In : diff(x,x) Out: 1 当我对符号的共轭进行微分时,结果是 In [55]: diff(x,x.conjugate()) Out[55]: 0 然而,当我试图区分符号的共轭时,Symphy并没有做到这一点 In : diff(x.conjugate(),x) Out: Derivative(conjugate(x), x) 这仍然是正确的,但结果应该是零。如何使SimPy执行共

当我试图用SymPy来区分一个符号时,我得到了以下结果

In : x=Symbol('x')
In : diff(x,x)
Out: 1
当我对符号的共轭进行微分时,结果是

In [55]: diff(x,x.conjugate())
Out[55]: 0
然而,当我试图区分符号的共轭时,Symphy并没有做到这一点

In : diff(x.conjugate(),x)
Out: Derivative(conjugate(x), x)

这仍然是正确的,但结果应该是零。如何使SimPy执行共轭的导数?

如果
diff(共轭(x),x)
应该为零,我不确定其数学性质。
diff(x,x.conjugate())
给出零的事实与数学无关(甚至可能被认为是一个SymPy bug)。它给出零的原因很简单,因为
x
不包含
共轭(x)
(符号),所以它认为它是相对于它的常数。这可能是错误的,因为相对于共轭(x),x不是常数。实际上,Symphy允许您对定义的函数求导数这一事实可能是一个错误。它应该允许像
diff(f(x)**2,f(x))
这样的事情,其中
f=Function('f')
是一个未定义的函数,但是对于已定义的函数,它可能在数学上不正确(或者至少不是您所期望的)

请参阅,特别是有关衍生工具wrt非符号的部分。换言之,对一个函数求导数只是一种方便的表示方式,并不代表数学链式规则。相反,类似于
diff(x,共轭(x))
的东西应该被认为是类似于
diff(x.subs(共轭(x),伪),伪)。subs(伪,共轭(x))


关于共轭(x).diff(x),这给出了一个未赋值的导数,因为没有为共轭定义导数。我不确定这里是否有任何封闭形式的答案。也许这是辛皮能够回报的最有用的东西。关于这个问题的合理答案应该是什么,我在任何地方都找不到任何好的答案(你应该在数学SE上找到一个更好的答案)。

我不确定共轭导数应该是零。这是我们在课堂上一直做的。共轭的导数是零,除非变量是实的,在这种情况下它是1。我已经打开了与此相关的部分。