[Fwd: Re: [mg102301] Re: error with Sum and Infinity]; Mathematica learns from Maxima?



(this is extracted from a conversation on the Mathematica newsgroup.
Daniel Lichtblau is a major technical contributor to Mathematica, and
is smart, sensible, and helpful.)..


-------- Original Message --------
Subject: 	Re: [mg102301] Re: error with Sum and Infinity
Date: 	Tue, 04 Aug 2009 10:26:55 -0500
From: 	Daniel Lichtblau <danl at wolfram.com>
To: 	Richard Fateman <fateman at EECS.Berkeley.EDU>
CC: 	mathgroup at smc.vnet.net
References: 	<h56bq2$buv$1 at smc.vnet.net> 
<200908040830.EAA26993 at smc.vnet.net>



Richard Fateman wrote:
>< .. snip...>
> 
> The underlying point is that Mathematica is conflating two concepts with 
> the name Sum:
> 
> A.  A loop of finitely many terms evaluated in sequence and adding up 
> the terms.   and
> 
> B.  A symbolic calculation based on various combinatorial ideas, the 
> calculus of finite differences, and other systematic simplifications 
> that reduces a summation, either finite or infinite, into a result that 
> does not have any summation notation in it.  Like summing arithmetic 
> progressions, geometric progressions, etc (and very advanced etc.).

<Danl writes ...>

Many here would agree with this diagnosis. We have endeavored to repair 
it (see below).


> For this second concept to work, the summand must be something that can 
> be suitably manipulated, typically starting as a single algebraic 
> expression. A programming segment, or a pattern match that requires that 
> each value of the index be fed into an evaluator will not, generally 
> work with algorithms for indefinite or definite/infinite summation.
> Obviously you cannot feed an infinite number of index values into a 
> function and sum up all the terms.
> 
> 
> A clean solution would be to separate these two concepts:  a loop and a 
> symbolic closed-form simplifier for a summation. Or for Mathematica to 
> use the Sum form, but somehow allow you to indicate to the system that 
> you want it evaluated as a loop or simplified to a closed form.
> 
> RJF
> 

<Danl writes...>


This already exists, as of version 7. One can specify 
Method->"Procedural". But it will not help for infinite or symbolic limits.

In[8]:= Sum[t[i], {i, 1, Infinity}, Method->"Procedural"]
Out[8]= 0

Possibly such cases should return unevaluated, with an error message.

Daniel Lichtblau
Wolfram Research

.................
This is sort of like setting simpsum to true or false. So mathematica catches up to maxima.

But I think the distinction (as in my explanation above)
 is entirely missing from the maxima documentation.

RJF