17
$\begingroup$

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?

$\endgroup$
  • 6
    $\begingroup$ Use Boole[] or KroneckerDelta[]. See this as well. $\endgroup$ – J. M. will be back soon 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
20
$\begingroup$

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]
$\endgroup$
  • $\begingroup$ @NickStrehlke, glad I could help. $\endgroup$ – RunnyKine May 27 '13 at 5:21
  • 1
    $\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
16
$\begingroup$

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$.

$\endgroup$
  • $\begingroup$ Thank you! This answer was helpful too. $\endgroup$ – Nick Strehlke May 27 '13 at 3:13
  • 11
    $\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$ – Peeter Joot 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.