Maxima 在微分积分上有问题吗?

问题描述

当我向Maxima询问

的价值时
diff(integrate(f(y),y,x),x);

然后它正确地推导出这个表达式是 f(x)。但是,如果我稍微将表达式修改

diff(integrate(f(y)^(1/2),x);

然后 Maxima 询问 x 是正数、零还是负数。回答肯定或否定会导致 f(x)^(1/2) 的正确且相同的结果。回答 0 会产生错误,因为由常数导出的定义不明确。

这是Maxima的限制还是有没有办法让Maxima在不要求x的符号的情况下得到正确的结果?

我有 5.41.0 版的 Maxima,并且正在通过 wxMaxima 的 18.02.0 版使用它。

解决方法

看起来问题来自integrate,而不是diff

(%i2) integrate (f(y),y,x);
                            x
                           /
                           [
(%o2)                      I  f(y) dy
                           ]
                           /
                            0
(%i3) integrate (sqrt(f(y)),x);
Is x positive,negative or zero?

p;
                         x
                        /
                        [
(%o3)                   I  sqrt(f(y)) dy
                        ]
                        /
                         0
(%i4) integrate (sqrt(f(y)),negative or zero?

n;
                          0
                         /
                         [
(%o4)                  - I  sqrt(f(y)) dy
                         ]
                         /
                          x

重新排序积分限制是可以的,虽然可能没有必要,而且 %i2 和 %i3 之间是不一致的。我想这是一个错误。

之后,diff 有预期的效果:

(%i5) diff (%o2,x);
(%o5)                         f(x)
(%i6) diff (%o3,x);
(%o6)                      sqrt(f(x))
(%i7) diff (%o4,x);
(%o7)                      sqrt(f(x))

您可以通过告诉 Maxima x 是大于还是小于零来抑制问题。我不知道这对于您要解决的问题是否有意义。

(%i8) assume (x > 0);
(%o8)                        [x > 0]
(%i9) integrate (sqrt(f(y)),x);
                         x
                        /
                        [
(%o9)                   I  sqrt(f(y)) dy
                        ]
                        /
                         0
(%i10) diff (%,x);
(%o10)                     sqrt(f(x))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...