1

maple では、2 つの余弦関数の積の (非常に単純な) 定積分を計算します。

restart;
f := n -> (x -> cos(n*x)):

assume(n1::integer);
assume(n2::integer);

int(f(n1)(x)*f(n2)(x),x=0..2*Pi);

それは(残念ながら)戻ってきます

0

しかし、それはPiのためでなければなりませんn1=n2

驚くべきことに

int(f(n1)(x)*f(n1)(x),x=0..2*Pi);

正しい結果が得られます。Maple を間違った方法で使用していますか、それともバグですか? バグだとしたら、どうすれば回避できますか? このタイプの整数依存積分に帰着する多くの項を評価しなければならない大規模なプログラムを作成しようとしています。

4

1 に答える 1

2

別のコーナーケースをカバーするために、期待 (または仮定) を修正することをお勧めしn1=n2=0ます2*Pi

restart:

int(cos(0*x)*cos(0*x),x=0..2*Pi);
                          2 Pi

int(cos(3*x)*cos(-3*x),x=0..2*Pi);

                           Pi

int(cos(2*x)*cos(2*x),x=0..2*Pi);

                           Pi

ans1 := int(cos(n1*x)*cos(n2*x),x=0..2*Pi,AllSolutions)
       assuming n1::integer, n2::integer;

      piecewise(n1 - n2 = 0, Pi, 0) + piecewise(n1 + n2 = 0, Pi, 0)

simplify(ans1) assuming n1::integer, n2::integer, n1=n2, n1=0;

                          2 Pi

simplify(ans1) assuming n1::integer, n2::integer, n1=n2, n1<>0;

                           Pi

simplify(ans1) assuming n1::integer, n2::integer, n1<>n2, n1<>-n2;

                           0

n1また、とが両方とも正の整数であるという仮定の下で積分を検討することもできn2ます (これにより、より単純な条件付きの結果が得られます。これは、あなたが考えていたものでさえあるかもしれません)。

ans2 := int(cos(n1*x)*cos(n2*x),x=0..2*Pi,AllSolutions)
       assuming n1::posint, n2::posint;

             piecewise(n1 - n2 = 0, Pi, 0)

simplify(ans2) assuming n1=n2;

                           Pi

simplify(ans2) assuming n1<>n2;

                           0
于 2013-03-09T18:57:46.280 に答える