В настоящее время я разрабатываю дифференциальный оператор для sympy
, который может быть помещается в матричную форму. В этом случае порядок списка args
при создании объекта Mul
очень важен, чтобы гарантировать выполнение дифференциации только там, где это требуется.
Проблема в том, что, когда делается следующее:
input = (t,z,x)
Mul(*input).args
Он возвращает (t, x, z)
, потому что произошла некоторая перестановка в args
. Как избежать сортировки args
?
r*D(z)*z
возвращает объектMul
, но в настоящее время он возвращает в следующем порядке(r, z, D(z))
, что затрудняет правильное применение оператора. Подробнее см. здесь. - person Saullo G. P. Castro   schedule 26.04.2013