我有两个带有可变边界的序列,如
> a:=Sum(x(i),i=n..m);
> b:=Sum(x(i),i=n-1..m+1);
n
和m
是任意自然数,显然是m>n
我想从a
中减去b
,看看Maple
如何将表达式简化为
> b-a;
x(n-1)+x(m+1);
可以在Maple或其他CAS中使用吗?
答案 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)