I have a Hermitian matrix $A$ that satisfies some symmetries which I can express via $AS = SA$ for a unitary matrix $S$. Now I am interested in the eigenvectors of $A$, but I want that these eigenvectors also respect my symmetries ( compare to Bloch waves in physics where the eigenvectors are chosen to reflect the translational invariance of the lattice).

Since $A$ has degenerate (repeated) eigenvalues, the standard numerical techniques will return some arbitrary (yet orthonormal) eigenvectors spanning the eigenspace. I, however, want to obtain unique results and thus want to make use of the symmetries. How can I do this numerically? I know that commuting matrices can be diagonalized simultaneously - in theory. But I don't know how to do it practically. Would I have to diagonalize one of them, apply the unitary transform thus obtained to the other one, arriving at a block diagonal form where I then have to diagonalize each block separately? Or is there something more elegant I can do?

EDIT: The matrix is dense, but quite small (12x12 to 18x18).

The symmetry would be something like translation symmetry:

$$\begin{pmatrix} 0 & 0 & 0 & -1 \\ 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \end{pmatrix}$$

where each entry is a 3x3-block in the case of a $12 \times 12$ matrix, which looks something like

$$\begin{pmatrix} a & b & 0 & -b\\ b&a&b&0\\ 0&b&a&b\\ -b&0&b&a\end{pmatrix}$$

  • $\begingroup$ "degenerate" = repeated? Exactly what "symmetries" are the eigenvectors supposed to satisfy? $\endgroup$ Commented Nov 28, 2010 at 16:56
  • $\begingroup$ Another thing: are your Hermitian matrices dense or sparse? Are they positive/negative (semi)definite? $\endgroup$ Commented Nov 28, 2010 at 16:59
  • $\begingroup$ So your symmetric matrix has "cyclic tridiagonal" blocks? I still don't understand what special constraints your eigenvectors are supposed to satisfy. Of course, you won't have orthonormal eigenvectors anymore if you do things other than flipping signs. $\endgroup$ Commented Nov 28, 2010 at 17:28
  • $\begingroup$ Thanks for your comments so far. No, the blocks aren't tridiagonal. But the matrix is "cyclic" (note the sign change, though). What I want: Eigenvectors of my matrix A are degenerate, so I want to classify them using the eigenvalues of the symmetry. Similar to what people do in quantum mechanics where additional symmetries lift degeneracies. $\endgroup$
    – Lagerbaer
    Commented Nov 28, 2010 at 17:37
  • $\begingroup$ Actually, "cyclic tridiagonal" (a.k.a. "periodic tridiagonal") is a specialized term for matrices that are tridiagonal, plus two nonzero elements at the upper right and lower left corners. They arise often when discretizing PDEs with periodic boundary conditions. $\endgroup$ Commented Dec 2, 2010 at 12:16

3 Answers 3


I think I solved it: If matrices $A$ and $S$ commute, i.e. $AS = SA$, then I eigenspaces of one matrix are invariant under the other matrix, because if $Ax = \lambda x$, then $A Sx = SAx = S\lambda x$, so if $x$ is eigenvector of $A$ with eigenvalue $\lambda$, then so is $S\lambda x$.

This in mind, I choose one of the matrices and diagonalize it, say I choose $S$. Then I get $S = T D T^\top$ with $T$ being unitary and $D$ being diagonal. If I then use $T$ to transform $A$, I get $A' = T A T^\top$ is block diagonal, because of the invariance mentioned earlier.

I can then diagonalize each block of $A$ on its own, because that way, the resulting eigenvectors of $A$ will remain eigenvectors of $S$. That way, I have simultaneously diagonalized $A$. The nice thing is that this can help make the resulting eigenvectors unique, because now eigenvectors are characterized not only by their $A$-matrix eigenvalue but also by their $S$-matrix eigenvalue.

If that doesn't suffice, I could search for more symmetries that all simultaneously commute with each other. An example from quantum mechanics is the hydrogen atom, where one find that the Hamiltonian commutes with the modulus of the angular momentum and its z-component, which ultimately gives rise to the three quantum numbers n, l and m.

  • $\begingroup$ I have a question here. After diagonalizing $A$, $S$ is obtained as a block diagonal matrix. Let us say it has two blocks (call them $S_1$ and $S_2$). Now we diagonalize each of the blocks separately. Let's imagine that while diagonalizing $S_1$ we get an eigenvalue $\alpha$. While diagonalizing $S_2$ we also get $\alpha$ as one of the eigenvalues. Is that a problem? Or can we deal with it with the same algorithm written above? $\endgroup$ Commented Feb 23, 2021 at 14:37
  • 1
    $\begingroup$ Wow, what a throwback! I was just about to start my PhD in Physics back then :D Getting the same eigenvalue while diagonalizing the two different blocks isn't a problem. In fact, this is why using multiple commuting matrices and their eigenbases is done in the first place. If we only had S to diagonalize, we'd get $\alpha$ twice, so we'd get two eigenvectors, which means they're not unique. Now with the extra info from diagonalizing $A$, I can split the two-dimensional eigenspace of $\alpha$ into two one-dimensional eigenspaces, one for each corresponding block of $A$. $\endgroup$
    – Lagerbaer
    Commented Feb 24, 2021 at 16:16
  • $\begingroup$ I didn't realize the question was asked 10 years ago. I guess your answers are still relevant. What I wanted to ask here is if what you have written is valid/limited to 2x2 matrices. If $S$ is nxn dimensional, how do we then justify that the algorithm applies? $\endgroup$ Commented Feb 24, 2021 at 16:30
  • $\begingroup$ I don't see where I limit this to 2x2. It should indeed hold for any dimension. $\endgroup$
    – Lagerbaer
    Commented Feb 25, 2021 at 2:38

The solution of Lagerbaer has been tested and i present the results obtained by sympy :

    [0  1  1]
    [       ]
    [1  0  1]
    [       ]
    [1  1  0]
    [0  1  0]
    [       ]
    [0  0  1]
    [       ]
    [1  0  0]
    eigenvals of A
    [-1  0   0]
    [         ]
    [0   -1  0]
    [         ]
    [0   0   2]
    eigenvects of A
    [-0.707106781186548  -0.707106781186548  0.577350269189626]
    [                                                         ]
    [0.707106781186548           0           0.577350269189626]
    [                                                         ]
    [        0           0.707106781186548   0.577350269189626]
    [-1.0 + 7.46207733321766e-27*I  0.e-137 + 0.e-140*I   -0.e-134 + 0.e-138*I]
    [                                                                         ]
    [     0.e-137 + 0.e-140*I         -1.0 + 0.e-26*I     -0.e-134 + 0.e-138*I]
    [                                                                         ]
    [    -0.e-126 + 0.e-125*I       -0.e-126 + 0.e-125*I          2.0         ]
    eigenvals after TATadj
    [-1.0   0                 0              ]
    [                                        ]
    [ 0    2.0                0              ]
    [                                        ]
    [ 0     0   -1.0 + 7.46207733321766e-27*I]
    eigenvects after TATadj
    [ 0    0   1.0]
    [             ]
    [1.0   0    0 ]
    [             ]
    [ 0   1.0   0 ]

it seems that the method might work


One can also diagonalize the stochastic superposition of $A$, and $S$: $A+\epsilon S$. However, there are special values of $\epsilon$ that wont make it work, but as $\epsilon$ can be pseudo-random, it is almost impossible.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .