別のコーナーケースをカバーするために、期待 (または仮定) を修正することをお勧めし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