Maxima 在微分积分时有问题吗?
Does Maxima have problems differentiating integrals?
当我向 Maxima 询问
的值时
diff(integrate(f(y),y,0,x),x);
然后正确推导出这个表达式是f(x)。但是,如果我将表达式稍微修改为
diff(integrate(f(y)^(1/2),y,0,x),x);
然后 Maxima 询问 x 是正数、零还是负数。回答肯定或否定会导致 f(x)^(1/2) 的正确且相同的结果。回答零会出错,因为由常数推导的定义不明确。
这是 Maxima 的局限性还是有什么方法可以让 Maxima 在不询问 x 符号的情况下得到正确的结果?
我有 Maxima 5.41.0 版,我正在通过 wxMaxima 18.02.0 版使用它。
问题似乎来自 integrate
,而不是 diff
:
(%i2) integrate (f(y), y, 0, x);
x
/
[
(%o2) I f(y) dy
]
/
0
(%i3) integrate (sqrt(f(y)), y, 0, x);
Is x positive, negative or zero?
p;
x
/
[
(%o3) I sqrt(f(y)) dy
]
/
0
(%i4) integrate (sqrt(f(y)), y, 0, x);
Is x positive, 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)), y, 0, x);
x
/
[
(%o9) I sqrt(f(y)) dy
]
/
0
(%i10) diff (%, x);
(%o10) sqrt(f(x))
当我向 Maxima 询问
的值时diff(integrate(f(y),y,0,x),x);
然后正确推导出这个表达式是f(x)。但是,如果我将表达式稍微修改为
diff(integrate(f(y)^(1/2),y,0,x),x);
然后 Maxima 询问 x 是正数、零还是负数。回答肯定或否定会导致 f(x)^(1/2) 的正确且相同的结果。回答零会出错,因为由常数推导的定义不明确。
这是 Maxima 的局限性还是有什么方法可以让 Maxima 在不询问 x 符号的情况下得到正确的结果?
我有 Maxima 5.41.0 版,我正在通过 wxMaxima 18.02.0 版使用它。
问题似乎来自 integrate
,而不是 diff
:
(%i2) integrate (f(y), y, 0, x);
x
/
[
(%o2) I f(y) dy
]
/
0
(%i3) integrate (sqrt(f(y)), y, 0, x);
Is x positive, negative or zero?
p;
x
/
[
(%o3) I sqrt(f(y)) dy
]
/
0
(%i4) integrate (sqrt(f(y)), y, 0, x);
Is x positive, 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)), y, 0, x);
x
/
[
(%o9) I sqrt(f(y)) dy
]
/
0
(%i10) diff (%, x);
(%o10) sqrt(f(x))