非交换函数乘积的导数
The derivative of the product of non-commutative functions
如果我在 SymPy 中使用函数并调用 diff 方法,交换 属性 就会被忽略。
h = Function('h',real=True,commutative=False)(t)
R = Function('R',real=True,commutative=False)(t)
print(diff(R*h,t))
# returns:
R(t)*Derivative(h(t), t) + h(t)*Derivative(R(t), t)
我是不是做错了什么?我只希望输出总是在前面有 R..
这可以说是 SymPy 中的一个错误,determines the commutativity of a function from its arguments. See also this comment。它与导数无关:简单地打印 h*R
将暴露错误(表达式显示为 R(t)*h(t)
)。
在更改此行为之前,似乎获得所需结果的唯一方法是声明 t
不可交换:
t = Symbol('t', commutative=False)
h = Function('h', real=True)(t)
R = Function('R', real=True)(t)
print(diff(R*h, t))
打印
R(t)*Derivative(h(t), t) + Derivative(R(t), t)*h(t)
如果我在 SymPy 中使用函数并调用 diff 方法,交换 属性 就会被忽略。
h = Function('h',real=True,commutative=False)(t)
R = Function('R',real=True,commutative=False)(t)
print(diff(R*h,t))
# returns:
R(t)*Derivative(h(t), t) + h(t)*Derivative(R(t), t)
我是不是做错了什么?我只希望输出总是在前面有 R..
这可以说是 SymPy 中的一个错误,determines the commutativity of a function from its arguments. See also this comment。它与导数无关:简单地打印 h*R
将暴露错误(表达式显示为 R(t)*h(t)
)。
在更改此行为之前,似乎获得所需结果的唯一方法是声明 t
不可交换:
t = Symbol('t', commutative=False)
h = Function('h', real=True)(t)
R = Function('R', real=True)(t)
print(diff(R*h, t))
打印
R(t)*Derivative(h(t), t) + Derivative(R(t), t)*h(t)