在 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_1
和 x_2
更改为 x1
和 x2
有效:
(%i1) diff(f(x1,x2),x1,1); /* OK */
(%i2) diff(f(x_1,x_2),x_1,1); /* NOT OK */
当我为一个函数 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_1
和 x_2
更改为 x1
和 x2
有效:
(%i1) diff(f(x1,x2),x1,1); /* OK */
(%i2) diff(f(x_1,x_2),x_1,1); /* NOT OK */