I'm relatively inexperienced with mathematica, so I apologize if this is a trivial question. I want to take a double sum over a function $f(i,j)$ of two indices, of the form $$ \sum_{i = -\infty}^\infty \sum_{j = 0\atop j\not = i}^m f(i,j). $$ That is, in the inner sum I want to sum over only those indices $j$ in my range of summation that satisfy the assumption $j \not = i$. How can I input such a sum to Mathematica?

  • 7
    $\begingroup$ Use Boole[] or KroneckerDelta[]. See this as well. $\endgroup$ May 26 '13 at 9:14
  • 2
    $\begingroup$ Change function inside sum to: Sign[Abs[i - j]] f[i,j], not very elegant but it works. $\endgroup$
    – Kuba
    May 26 '13 at 9:24

You can use Boole as follows:

Sum[f[i, j] Boole[i != j], {j, 0, m}, {i, -Infinity, Infinity}]

Here's an example where f[i, j] = Sin[i] Cos[j]

Sum[Sin[i] Cos[j] Boole[i != j], {j, 0, 3}, {i, 0, 3}]

Which gives

Sin[1] + Cos[2] Sin[1] + Cos[3] Sin[1] + Sin[2] + Cos[1] Sin[2] + 
 Cos[3] Sin[2] + Sin[3] + Cos[1] Sin[3] + Cos[2] Sin[3]
  • $\begingroup$ @NickStrehlke, glad I could help. $\endgroup$
    – RunnyKine
    May 27 '13 at 5:21
  • 2
    $\begingroup$ What if f[i,j] diverges when i=j? Imagine f[i,j]=M[i,j]^(-a), where M[i,j] is a matrix with M[i,j]=0 if i=j, and a is a positive integer number. @RunnyKine $\endgroup$
    – Ana S. H.
    May 5 '15 at 16:15
  • $\begingroup$ @RunnyKine Do you know how to do double summation with conditions. mathematica.stackexchange.com/questions/250873/… $\endgroup$
    – Jasmine
    Jul 12 '21 at 5:30

You can use If to put the condition in the argument of the sum. It would be something like

Sum[If[i != j, f[i, j], 0], {i, -Infinity, Infinity}, {j, 0, m}]

where If[i != j, f[i,j], 0] tells Mathematica to use $f(i,j)$ in the sum if $i\neq{j}$ or 0 if $i=j$.

  • $\begingroup$ Thank you! This answer was helpful too. $\endgroup$ May 27 '13 at 3:13
  • 13
    $\begingroup$ I found that your If solution works better than the Boole by RunnyKine, because it allows f[i,j] to be undefined at i == j. $\endgroup$ Sep 19 '13 at 1:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.