Infinite sums



On 9/24/07, Stavros Macrakis <macrakis at alum.mit.edu> wrote:

> The default simplifier does only trivial cases e.g. 'sum(0,...) => 0;
> sum(freeof_i,i,a,b) (b>=a) => (b-a+1)*freeof_i; etc.
>
> The verb/procedure "sum" mostly expands, e.g. sum(f(i),i,2,3)=>f(2)+f(3)
> The flag simpsum=true tells the simplifier to handle some more cases e.g.
> sum(a^i,...), sum(i^N,...).
> The procedure nusum uses Gosper's algorithm, but doesn't handle inf.
> Some newer code to simplify sums, such as Andrej's simplify_sum.

To this list I'll add the Zeilberger package which implements Gosper's
and Zeilberger's algorithms.

It seems appropriate to me to apply only some basic simplifications
by default, and to have another way to tell Maxima to try harder.
This is similar to the scheme for trigonometric expressions --
many simplifications are applied by separate functions.

I guess it seems less confusing in general to require an explicit
call to a simplification function, instead of assigning to a global flag.
So maybe maybe we should do away with the simpsum flag, and
have a collection of summation simplification functions, which try
different methods or apply to different kinds of summation expressions.
Maybe we could try to regularize the function names, if only to give
nusum a more descriptive name.

Just some random ideas.

Robert