MathGroup Archive 2004

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

Search the Archive

Re: Sum question and general comment

  • To: mathgroup at smc.vnet.net
  • Subject: [mg50687] Re: [mg50638] Sum question and general comment
  • From: "David Park" <djmp at earthlink.net>
  • Date: Fri, 17 Sep 2004 01:15:53 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

Steve,

For summing over arbitrary index values it's generally easiest to abandon
Sum and go directly to Plus and use functional programming to generate the
indices.

For an arbitrary list in indices...

Plus @@ MapThread[f, {{1, 2, 3, 5, 7, 8, 21}}]

To exclude a specific set of indices from a larger complete domain...

Plus @@ f /@ Complement[Range[100], {23, 36}]

To eliminate diagonal elements from a double sum...

Plus @@ Flatten[Outer[If[#1 == #2, 0, f[#1, #2]] &, Range[10], Range[10]]]

David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/

From: Steve Gray [mailto:stevebg at adelphia.net]
To: mathgroup at smc.vnet.net

I don't want to overload the group with my questions, so I only post after
not being able to find the answer in the Help or at the site. Part of the
problem of course is that it isn't clear how to state the question so that
I can look it up*. Anyway, the current question has to do with Sum and
similar "indexed" operations:

I find no way to do, for example,
"Sum over i=1 to 100 except i!= 23 and 36", etc., or Sum over values
belonging to a list, such as
"Sum over i (belonging to) {1,2,3,5,7,8,21}", etc., or
"Sum ( i=1 to 10) Sum (0ver j=1 to 10 but j !=i)", etc. (this can be
awkwardly done with j=1 to i-1
and j=i+1 to 10)
In some cases there can be workarounds using things like
(1- KroneckerDelta[i,j]), etc., but these can get complicated and obscure.
I would have thought that Mathematica could do operations like these
directly,
but ??. Thank you for any information.

Steve Gray

* Someone who makes major progress on the problem of letting users
communicate with a computer in
ordinary, appropriate technical "people" language will have big success.
Currently in almost all
software one must ask using exactly the right terms. (I realize that
Microsoft and others are trying
to make progress here, but it's negligible so far in my opinion.) Part of
the answer would be a
greatly expanded index, compiled knowing what terms people are likely to use
for their questions.




  • Prev by Date: Re: Log[4]==2*Log[2]
  • Next by Date: Re: Technical Publishing Made Easy with New Wolfram Publicon Software
  • Previous by thread: Re: Sum question and general comment
  • Next by thread: Re: Sum question and general comment