Maple 无法计算具有整数参数的定积分

问题描述 投票:0回答:1

在枫树中,我计算两个余弦函数乘积的(非常简单)定积分:

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);

给出正确的结果。我使用枫树的方式是错误的还是这是一个错误?如果这是一个错误,我该如何避免它?我将编写一个大型程序,该程序必须评估许多项,这些项都归结为这种类型的整数相关积分。

numerical-integration maple
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
© www.soinside.com 2019 - 2024. All rights reserved.