-1

これは、メープルが未定義のエラーを生成することについての質問です。

以下のコードは結果0を与えるはずですが、代わりにmapleはそれを「未定義」とラベル付けすることを選択します。

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

nj = 0なので、積分の前でさえ、答えは0x積分であることがはっきりとわかります。

積分は実行可能であり、手動で実行すると、(-1 / N)が1から-1の間で評価されるため、(-1/1)-(-1 / -1)に代入すると-1-1 = -2)。

全体的な答えは0である0x-2によって与えられます。

Mapleは未定義を返します。

ただし、そのコードのサブセクション(積分のみ)を取得する場合

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

次に、mapleは無限大を返します。

これらはどちらも正しくありません。

なぜこれが起こるのか誰かが私に説明できますか?メープルの手順がとても簡単なので、他の人も同様の問題に遭遇する可能性が高いと思います。しかし、それは紛らわしい結果をもたらします。

4

1 に答える 1

1

コメントですでに共有されているように、無限大の0倍は定義されていません。たとえば、無限大にゼロを掛けたのは簡単なゼロの答えではないのはなぜですか。

Mapleシートを可能な限りそのまま維持するために、コードにifステートメントをいつでも含めることができます。これは非常に簡単です。

if nj = 0 then
 #do something
end if;

ただし、Mapleは理由によりUndefinedを出力するため、数学的に正しいことを行っているかどうかを常に確認する必要があります。

于 2012-12-26T10:16:21.853 に答える