Re: simplifying inside sum, Mathematica 5.1
- To: mathgroup at smc.vnet.net
- Subject: [mg53721] Re: [mg53709] simplifying inside sum, Mathematica 5.1
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Tue, 25 Jan 2005 05:03:17 -0500 (EST)
- References: <200501240837.DAA28210@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
On 24 Jan 2005, at 09:37, Richard Fateman wrote:
> Sum[a[i]*x^i,{i,0,Infinity}]
>
> %/. x->0
>
>
> leaves 0^i inside the sum, unsimplified.
>
> So does the sum from 1 to Inf.
>
> The correct answers are presumably a[0] and 0.
>
> Is there a way to get Mathematica to do this?
>
> RJF
>
>
>
First, note that even if Mathematica did "simplify" 0^i inside the sum
it would not return what you are (presumably) expecting since:
Sum[0*a[i],{i,0,Infinity}]
Indeterminate expression 0*Infinity encountered.
Indeterminate
The way to deal with this is to replace Infinity by some symbol m and
after evaluating replace m by Infinity:
Sum[0*a[i],{i,0,m}]/.m->Infinity
0
Curiously using Hold[Infinity] in place of Infinity does not work:
In[18]:=
Sum[0*a[i], {i, 0, Hold[Infinity]}]
Indeterminate expression 0*Infinity encountered.
Indeterminate
Nevertheless, this works:
ReleaseHold[Sum[a[i]*x^i, {i, 0, Hold[Infinity]}] /.
x -> 0 /. 0^(i_) :> KroneckerDelta[i, 0]]
a[0]
or
Sum[a[i]*x^i, {i, 0, Hold[Infinity]}];
ReleaseHold[Block[{Power},
0^(i_) := KroneckerDelta[i, 0]; % /. x -> 0]]
a[0]
If you prefer you can use m and m->Infinity instead of Hold and
ReleaseHold and you could of course globally re-define 0^i as
KroneckerDelta[i, 0].
Andrzej Kozlowski
- References:
- simplifying inside sum, Mathematica 5.1
- From: Richard Fateman <fateman@cs.berkeley.edu>
- simplifying inside sum, Mathematica 5.1