       Re: Interaction of Sum/Plus and KroneckerDelta

• To: mathgroup at smc.vnet.net
• Subject: [mg55244] Re: [mg55178] Interaction of Sum/Plus and KroneckerDelta
• From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
• Date: Thu, 17 Mar 2005 03:30:15 -0500 (EST)
• Sender: owner-wri-mathgroup at wolfram.com

```On 16 Mar 2005, at 19:11, Andrzej Kozlowski wrote:

> On 16 Mar 2005, at 11:35, Ofek Shilon wrote:
>
>> I'm fighting Mathematica 5.1.0 to perform a (seemingly) elementary
>> simplification, and Mathematica - so far - wins, so i thought i'd
>> consult some veterans.
>> Here's a simplified example of the problem.
>>
>> type:
>> Sum[KroneckerDelta[i, j], {i, 1, 5}]
>>
>> and you get:
>> KroneckerDelta[1, j] + KroneckerDelta[2, j] +
>>   KroneckerDelta[3, j] + KroneckerDelta[4, j] + KroneckerDelta[5, j]
>>
>> which i want to simplify to 1.  The direct approach:
>> Simplify[%, Assumptions -> {j Ã¢Ë?Ë? Integers, 0 < j < 3}]
>>
>> still gives:
>> KroneckerDelta[1, j] + KroneckerDelta[2, j]
>>
>> Can Mathematica somehow automatically transform this to 1?
>> modification of the original sum are welcome too, of course.
>>
>>   thanks for any ideas,
>>
>>     Ofek Shilon
>>
>>
>>
>
> I think the closest you can get to the answer you want is by using
> Matheamtica 5.1's new function  Piecewise. You have to define your own
> KroneckerDelta:
>
> KD[i_, j_] := Piecewise[{{1, i == j}}]
>
> and then use Simplify:
>
> In:=
> Simplify[KD[1, j] + KD[2, j] +
>    KD[3, j] + KD[4, j] + KD[5, j]]
>
> Out=
> Piecewise[{{1, j == 1 ||
>      j == 2 || j == 3 ||
>      j == 4 || j == 5}}]
>
>
> Unfortunately the answer is a Piecewise object rather than one and
> including assumption sin Simplify such as 1<=j<=5 does not help.
>
>
> Andrzej Kozlowski
> Chiba, Japan
> http://www.akikoz.net/andrzej/index.html
> http://www.mimuw.edu.pl/~akoz/
>
Actually, I was not quite correct.

Let again

KD[i_, j_] := Piecewise[{{1, i == j}}]

This does not work as one might have hoped:

Simplify[KD[1, j] + KD[2, j] + KD[3, j] + KD[4, j] +
KD[5, j], j â?? Integers && 1 <= j <= 5]

Piecewise[{{1, j == 1 || j == 2 || j == 3 || j == 4 ||
j == 5}}]

but this:

Simplify[KD[1, j] + KD[2, j] + KD[3, j] + KD[4, j] +
KD[5, j], Or @@ Thread[j == Range]]

1

does and to me seems the best solution to your problem.

Andrzej Kozlowski

```

• Prev by Date: How can I compute the Fourier transform of a unit disk and a unit ball analytically by using Mathematica?
• Next by Date: Re: Re: Do loops in Mathematica
• Previous by thread: Re: Interaction of Sum/Plus and KroneckerDelta
• Next by thread: Re: Interaction of Sum/Plus and KroneckerDelta