Re: Sum question and general comment
- To: mathgroup at smc.vnet.net
- Subject: [mg50673] Re: [mg50638] Sum question and general comment
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Wed, 15 Sep 2004 07:55:02 -0400 (EDT)
- Reply-to: hanlonr at cox.net
- Sender: owner-wri-mathgroup at wolfram.com
excludedSum[f_, {i_Symbol, imin_Integer:1,imax_Integer}, exclude:{_Integer..}] := Tr[f /. ({i->#}& /@ DeleteCases[Range[imin,imax], _?(Or@@Thread[#==exclude]&) ])]; excludedDiagonalSum[f_, {i_Symbol,imin_Integer:1,imax_Integer}, {j_Symbol,jmin_Integer:1,jmax_Integer}] := Sum[excludedSum[f, {j,jmin,jmax},{i}],{i,imin,imax}]; excludedSum[f[i],{i,5},{2,4}] f[1] + f[3] + f[5] excludedDiagonalSum[f[i,j],{i,3},{j,3}] f[1, 2] + f[1, 3] + f[2, 1] + f[2, 3] + f[3, 1] + f[3, 2] Tr[f /@ {1,2,3,5,7,8,21}] f[1] + f[2] + f[3] + f[5] + f[7] + f[8] + f[21] Bob Hanlon > > From: Steve Gray <stevebg at adelphia.net> To: mathgroup at smc.vnet.net > Date: 2004/09/15 Wed AM 01:49:43 EDT > To: mathgroup at smc.vnet.net > Subject: [mg50673] [mg50638] Sum question and general comment > > 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. > >