Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is it possible to get an answer to the following question in Mathematica?

Let $M$ be a $n$ by $n$ matrix, is there a function $m:\mathbb{N}\times \mathbb{N}\rightarrow \mathbb{Z}$ such that $m_{ij}=m_{ji}$ and $m_{ij}=m_{i+2,j+2}$ for all $i$ and $j$.

I am new to Mathematica and interested whether such existential, abstract expressions can be solved in Mathematica.

share|improve this question
If the dimension n is specified one can use FindInstance to solve for the m_i,j. – Daniel Lichtblau Feb 26 '13 at 20:41
Sorry maybe it was not clear. I will enter the matrix M, so yes it'll be specified. – Nonlinear Feb 26 '13 at 20:46
Now I'm confused. I was assuming the m_i,j are entries of your M. Is that not the case? (In particular, is your M a numeric matrix?) If so then I'm not clear as to what is the question. – Daniel Lichtblau Feb 26 '13 at 20:49
Wait... you changed your question. I thought the $m_{ij}$ were entries in your matrix. Is that not the case? What relation does $M$ have with $f$? – R. M. Feb 26 '13 at 20:56
So now it's no longer $i+2,j+2$, but all possible $i,j,k,l$? You should formulate your problem correctly before posting instead of changing it every 5 minutes... else it is a waste of everyone's time. – R. M. Feb 26 '13 at 21:28
up vote 6 down vote accepted

The good thing about programming with Mathematica is that you can move from conceptual problems like the one described to getting a solution pretty easily. Since you're new to Mathematica, let's walk this through step by step:

1. Let $M$ be an $n\times n$ matrix

This one's easy:

ℳ[n_Integer] := Array[m, {n, n}]
ℳ[5] // MatrixForm

2. A function $m:\ \mathbb{N}\times\mathbb{N}\to \mathbb{Z}$ such that $m_{ij}=m_{ji}$

In other words, we don't care about the order $i,j$ or $j,i$ — we can achieve this simply by making m have the attribute Orderless.

SetAttributes[m, Orderless]
ℳ[5] // MatrixForm

Compare this output with the one above.

3. A function $m:\ \mathbb{N}\times\mathbb{N}\to \mathbb{Z}$ such that $m_{ij}=m_{i+2,j+2}$

Here, we can use RSolve to solve for the relation m[i,j] == m[i+2,j+2]:

RSolve[m[i, j] == m[2 + i, 2 + j], m[i, j], {i, j}]
(* {{m[i, j] -> C[1][-2 i + 2 j] + (-1)^i C[2][-2 i + 2 j]}} *)

What this solution says is that $m$ can be a function of the form

$$m: (i,j)\mapsto C_1(i,j) +(-1)^iC_2(i,j)$$

where the $C_i$ are constant functions (C denotes a constant in Mathematica).

Now putting all of these together, we can do:

Block[{m, p, q},
    SetAttributes[m, Orderless];
    m[i_, j_] := p + (-1)^i q;
] // MatrixForm

where p and q are constants you can choose.

share|improve this answer
Why do you define m as p + (-1)^i q instead of p[j - i] + (-1)^i q[j - i]? – ssch Feb 26 '13 at 21:00
@ssch It's a constant function – R. M. Feb 26 '13 at 21:00
ah right, never seen C[i][x] in a result before. Nice solution! – ssch Feb 26 '13 at 21:11

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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