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.