在 Maxima 中复制和粘贴函数的偏导数输出时,粘贴的文本代表全导数

When copying and pasting the output of partial derivative of a function in Maxima, the pasted text stands instead for a total derivative

当我为一个函数 diff(f(x_1,x_2),x_1,1) 的偏导数编写表达式时,对于使用 funmake(f,[x_1,x_2]) 创建的函数 f,返回的输出是

然而,当复制和粘贴偏导数的输出时,我得到的却是'diff(f(x_1,x_2)),它代表函数的全导数f而不是偏导数:

由于全导数和偏导数不是一回事,这是不合适的。这种行为的原因是什么?如何解决?

正如 Robert Dodier 在评论中所写,这是 wxMaxima 中的一个错误。它是由处理下标的代码引起的。 (在你的例子中,_1_2)。下标单元没有实现应该序列化微分变量的函数。

要解决此问题,您可以避免使用下标。将 x_1x_2 更改为 x1x2 有效:

(%i1) diff(f(x1,x2),x1,1);     /* OK */
(%i2) diff(f(x_1,x_2),x_1,1);  /* NOT OK */