Re: Multiple sum with iterators that cannot equal
- To: mathgroup at smc.vnet.net
- Subject: [mg19407] Re: [mg19365] Multiple sum with iterators that cannot equal
- From: "David Park" <djmp at earthlink.net>
- Date: Mon, 23 Aug 1999 13:57:18 -0400
- Sender: owner-wri-mathgroup at wolfram.com
Eric,
Try this...
Sum[If[i != j, f[i, j], 0], {i, 1, 5}, {j, 1, 5}]
f[1, 2] + f[1, 3] + f[1, 4] + f[1, 5] + f[2, 1] + f[2, 3] + f[2, 4] +
f[2, 5] + f[3, 1] + f[3, 2] + f[3, 4] + f[3, 5] + f[4, 1] + f[4, 2] +
f[4, 3] + f[4, 5] + f[5, 1] + f[5, 2] + f[5, 3] + f[5, 4]
A second approach which is much faster if f[i,j] had defined numeric values is
mat = Array[f, {5, 5}];
Plus @@ Flatten[mat] - Tr[mat]
David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/
>Using multiple summmation signs with condition 'i "not
>equal" j', evaluation stops immediately as 'i' starts as
>1 as does 'j'. My formula requires that the 'i's' and
>'j's' together:
>
> Sum[Sum[f,{j,1,n}],{i,1,n}] ignore cases where i = j.
>
> Or as copied from my notebook:
>
>\!\(\(\(\[Sum]\+\(i = 1\)\%n\[Sum]\+\(j = 1\)\%n\)\+\(i
>!= j\)\) \(w\_i\)
> w\_j\)
>
>How do I solve this without some cumbersome loops.
>
>Many Thanks
>
>Eric Spahr
>Cottage Technology rspahr at worldnet.att.net
>
>