A recent post on the Wolfram Blog предлагает следующую функцию для форматирования производных более традиционным способом.Предотвращение переупорядочения в производном продукте?
pdConv[f_] :=
TraditionalForm[
f /. Derivative[inds__][g_][vars__] :>
Apply[Defer[D[g[vars], ##]] &,
Transpose[{{vars}, {inds}}] /. {{var_, 0} :>
Sequence[], {var_, 1} :> {var}}]
]
Пример использования, Dt[d[x, a]] // pdConv
дает:
Не нарушая общие возможности pdConv
, кто-то может изменить его для поддержания заданного порядка переменных, производя результат, показанный ниже? (Конечно, это чисто по asthetic причинам, что делает выкладок проще для человека, чтобы следовать)
Я подозреваю, что это будет нетривиальным реализовать --- если кто-то не знает о волшебном Global
вариант, который может быть временно переопределяется в пределах Block
.
Для чего это стоит, может быть связано эти SO вопросы:
Интересный вопрос. Не могли бы вы быть более конкретными, когда говорите * данный порядок [из] переменных *? –
@ Mr.Wizard - Чтобы уточнить, если f [b, a] - функция, поданная в Dt, то я хотел бы, чтобы полное дифференцирование выводилось как Dt [b] * D [f, b] + Dt [a] * D [f, a], а не сортировка вывода на Dt [a] * D [f, a] + Dt [b] * D [f, b]. (вы, ребята, похоже, поняли это ниже ... не хотели, чтобы у вас был вопрос, висящий.) – telefunkenvf14