-1

这是一个关于 maple 产生未定义错误的问题。

下面的代码应该给出结果 0,但 maple 选择将其标记为“未定义”。

(nj*(nj-1))*(int(N^(ni+nj-2),N=-1..1));
ni:=0;  nj:=0;

由于 nj=0,您可以很清楚地看到,即使在积分之前,答案也是 0 x 积分。

积分是可以做的,手工做它会给你 (-1/N) 在 1 和 -1 之间评估,所以用 (-1/1)-(-1/-1) 代替 -1-1 = -2)。

总体答案由 0x-2 给出,即 0。

Maple 返回undefined

但是,如果您采用该代码的一小部分(只是积分)

 (int(N^(ni+nj-2),N=-1..1)) or even (int(N^(-2),N=-1..1))

然后 maple 返回infinity

这些都不正确。

谁能向我解释为什么会这样?我认为其他人可能会遇到类似的问题,因为它是如此简单的枫树程序。然而,它给出了一个令人困惑的结果。

4

1 回答 1

1

正如评论中已经分享的那样,0 次无穷大是未定义的,参见例如为什么无穷大乘以零不是一个简单的零答案

为了保持 Maple 表尽可能完整,您始终可以在代码中包含 if 语句,这非常容易

if nj = 0 then
 #do something
end if;

但是,您应该始终检查您是否在数学上做正确的事情,因为 Maple 确实输出Undefined是有原因的!

于 2012-12-26T10:16:21.853 回答