Comment soustraire deux à Maple Sums
-
09-10-2019 - |
Question
J'ai deux séquences avec des limites variables comme
> a:=Sum(x(i),i=n..m);
> b:=Sum(x(i),i=n-1..m+1);
n
et m
sont des nombres naturels arbitraires et de toute évidence m>n
.
Je veux a
de b
substract et voir comment Maple
simplifie l'expression
> b-a;
x(n-1)+x(m+1);
Est-il possible à Maple ou dans un autre CAS?
La solution
Vous pouvez le faire en utilisant un objet temporaire, puis agir en deux étapes.
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)
Ou vous pourriez mettre cela en une procédure.
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)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow