如何在Maple中减去两个和

时间:2010-12-06 20:15:06

标签: sum symbolic-math maple

我有两个带有可变边界的序列,如

> a:=Sum(x(i),i=n..m);
> b:=Sum(x(i),i=n-1..m+1);

nm是任意自然数,显然是m>n 我想从a中减去b,看看Maple如何将表达式简化为

> b-a;
x(n-1)+x(m+1);

可以在Maple或其他CAS中使用吗?

1 个答案:

答案 0 :(得分:3)

您可以通过使用临时对象,然后分两个阶段来完成。

a:=Sum(x(i),i=n..m):
b:=Sum(x(i),i=n-1..m+1):

temp := Sum(x(i),i=op(1,rhs(op(2,a)))..op(2,rhs(op(2,b))));
                       m + 1     
                       -----     
                        \        
                         )       
                        /    x(i)
                       -----     
                       i = n    

value( combine(b-temp) + combine(temp-a) );
                  x(n - 1) + x(m + 1)

或者您可以将其纳入程序。

combminus:=proc(s::specfunc(anything,Sum),t::specfunc(anything,Sum))
   local temp;
   if op(1,s) = op(1,t) then
      temp:=Sum(op(1,s),i=op(1,rhs(op(2,s)))..op(2,rhs(op(2,t))));
      value(combine(s-temp)+combine(temp-t));
   else
      s-t;
   end if;
end proc:

combminus(b, a);
                  x(n - 1) + x(m + 1)