我有两个具有可变边界的序列,例如
> 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 中使用?
我有两个具有可变边界的序列,例如
> 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 中使用?
你可以通过使用一个临时对象来做到这一点,然后分两个阶段行动。
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)