MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: simplifying inside sum, Mathematica 5.1

  • To: mathgroup at smc.vnet.net
  • Subject: [mg53785] Re: [mg53762] Re: simplifying inside sum, Mathematica 5.1
  • From: DrBob <drbob at bigfoot.com>
  • Date: Thu, 27 Jan 2005 05:41:24 -0500 (EST)
  • References: <ct4h70$av2$1@smc.vnet.net> <200501260937.EAA00268@smc.vnet.net>
  • Reply-to: drbob at bigfoot.com
  • Sender: owner-wri-mathgroup at wolfram.com

Maxim,

As usual, your analysis is broader and deeper than mine (or anyone else's, maybe) and the implications seem devastating for using Sum at all. I don't use it often, in fact, because of issues I never understood, possibly related to the ones you've mentioned. (I use it so seldom, I don't entirely remember why!)

Your delineation of these strange behaviors is very useful; it helps to know what to look out for.

Bobby

On Wed, 26 Jan 2005 04:37:34 -0500 (EST), Maxim <ab_def at prontomail.com> wrote:

> Mathematica does use some implicit assumptions about the iteration bounds:
>
> In[1]:=
> Sum[1, {k, 1/2, n}]
>
> Out[1]=
> 1/2 + n
>
> This assumes that the sum is taken over the points k = 1/2, 3/2, ..., n;
> that is, when evaluating Sum[f[k], {k, a, b}] symbolically Mathematica
> assumes that (b-a) is integer. For a value of n such that (n-1/2) is not
> integer (say n=5) Out[1] would be incorrect in the sense that Sum[1, {k,
> 1/2, 5}] does not equal 1/2 + 5.
>
> So if we take
>
> In[2]:=
> Sum[Sin[Pi*k]^2, {k, n}]
>
> Out[2]=
> (1 + 2*n - 2*I^(2*n)*n*Cos[n*Pi] - Cos[2*n*Pi])/4
>
> the result again doesn't hold for an arbitrary non-integer n (Out[2] can
> be complex), and since n is assumed to be integer, Mathematica indeed
> could have simplified the summand by doing Refine[Sin[Pi*k]^2, Element[k,
> Integers]] to obtain 0 immediately.
>
> What seems to be the real problem is that Mathematica doesn't handle those
> implicit assumptions in a consistent way:
>
> In[3]:=
> Sum[Cos[Pi*k], {k, 1/2, 2*n}]
>
> Out[3]=
> 1
>
> In[4]:=
> Sum[UnitStep[1 - k], {k, 1/2, Infinity}]
>
> Out[4]=
> 3/2
>
> In[5]:=
> Sum[Sqrt[k], {k, 1/2, n + 1/2}]
>
> Out[5]=
> HarmonicNumber[1/2 + n, -1/2]
>
> It is easy to verify that Out[3] is incorrect for any value of n (again,
> in the sense that if we substitute any numerical value for n before
> evaluating the sum, we will obtain 0, not 1), Out[4] cannot be correct
> because a sum of UnitStep terms cannot be half-integer, and Out[5] may
> happen to be correct for some values of n, but not for integer n.
>
> Next, what if we take a sum from a to b with a>b?
>
> In[6]:=
> Sum[1, {k, Infinity, 1}]
>
> Out[6]=
> -Infinity
>
> In[7]:=
> Sum[1/k^2, {k, Infinity, 1}]
>
> Out[7]=
> Pi^2/6
>
> In[8]:=
> Sum[1/(k^2 + 1), {k, Infinity, -Infinity}]
>
> Out[8]=
> 0
>
> Out[6] can be justified if we assume
>
> Sum[f[k], {k, a, b}] == -Sum[f[k], {k, b, a}].
>
> Out[7] is fine under the assumption
>
> Sum[f[k], {k, a, b}] == Sum[f[k], {k, b, a}].
>
> Out[8] is valid if we agree that
>
> Sum[f[k], {k, a, b}] == 0 provided that a>b.
>
> Each of these three conventions makes sense and can be useful. However, it
> is impossible to reconcile all three answers with one another (I prefer
> the third case, again because it agrees with numerical summation). We
> should choose one and only one convention and stick to it, otherwise it's
> just as good as returning a random result.
>
> Finally, the general form of the iterator is {k, a, b, d}:
>
> In[9]:=
> Sum[1/k^2, {k, Infinity, 1, -1}]
>
> <Infinity::indet warning>
>
> Out[9]=
> Indeterminate
>
> Even in these trivial examples we can see that Mathematica simply doesn't
> have a clear definition of how a symbolic sum is understood in such cases,
> and consequently, doesn't have a consistent implementation either.
>
> Maxim Rytin
> m.r at inbox.ru
>
>
>
>



-- 
DrBob at bigfoot.com
www.eclecticdreams.net


  • Prev by Date: Re: Re: simplifying inside sum, Mathematica 5.1
  • Next by Date: Re: Re: simplifying inside sum, Mathematica 5.1
  • Previous by thread: Re: simplifying inside sum, Mathematica 5.1
  • Next by thread: Re: Re: simplifying inside sum, Mathematica 5.1