       Re: Splitting sums in mathematica

• To: mathgroup at smc.vnet.net
• Subject: [mg126842] Re: Splitting sums in mathematica
• From: Ray Koopman <koopman at sfu.ca>
• Date: Wed, 13 Jun 2012 04:53:30 -0400 (EDT)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• References: <jqusrg\$rnm\$1@smc.vnet.net> <jr1dvt\$73t\$1@smc.vnet.net> <jr3qni\$gr3\$1@smc.vnet.net>

```On Jun 10, 9:04 pm, Ray Koopman <koop... at sfu.ca> wrote:
> On Jun 9, 11:14 pm, Ray Koopman <koop... at sfu.ca> wrote:
>> On Jun 9, 12:09 am, jimbo <james.a.gord... at googlemail.com> wrote:
>>> Hello,
>>>
>>> Does anyone know of a way to algebraically split sums (if that is the
>>> correct name for it) in mathematica? I need to do the following (and
>>> higher-order versions of the same)...
>>>
>>> Sum_over_p [  Sum_over_q (  a_p * a_q  )   ] = Sum_over_p_equal_q
>>> (a_p^2) + Sum_over_p_not_equal_q (a_p*a_q)
>>>
>>> ...in other words, turn a nested sum running over two indices into two
>>> sum, one for when the indices are equal, and one for when they are
>>> different?
>>>
>>> I then need to make some substitutions once there are no nested sums
>>> and simplify my answer. I have an equation with many hundreds of terms
>>> in it, so doing it by hand is not an option. I can send a typeset
>>> example if anyone needs clarification
>>>
>>> I have version 5.2 for students
>>>
>>>
>>> James
>>
>> Let a = {a1,a2,...}. Then a.a gives the sum of the terms with p == q,
>> and 2*Dot@@Transpose@Subsets[a,{2}] gives the sum of the terms with
>> p != q.
>
> If you have to do that many times then you might want to define
> {p,q} = Transpose@Subsets[Range@Length@a,{2}]  once, and then
> use  2*a[[p]].a[[q]]  to sum the terms whose subscripts differ.

The sum of the terms whose subscripts differ is  Tr@a^2 - a.a,
and it may be faster to let Mathematica simplify that.

```

• Prev by Date: Re: WRI Curve and Filling Colors
• Next by Date: Re: modulo solving lacking domain?
• Previous by thread: Re: Splitting sums in mathematica
• Next by thread: Re: Splitting sums in mathematica