Tengo la siguiente situación: Tengo un hermitian Matriz $A$ que satisface algunas simetrías que puedo expresar a través de $AS = SA$ por una matriz unitaria $S$. Ahora estoy interesado en los vectores propios de a $A$, pero quiero que estos autovectores también el respeto a mi simetrías ( compare con ondas de Bloch en la física, donde los vectores propios son los elegidos para reflejar la traslación de la invariancia de la rejilla ).
Desde $A$ ha degenerado (se repite) autovalores, el estándar de técnicas numéricas volverá arbitraria (pero ortonormales) los vectores propios que abarcan el espacio propio. Yo, sin embargo, desea obtener resultados únicos y por lo tanto queremos hacer uso de las simetrías. ¿Cómo puedo hacer esto numéricamente? Sé que los desplazamientos de las matrices pueden ser diagonalized simultáneamente - en teoría. Pero no sé cómo hacerlo en la práctica. Tengo que diagonalize uno de ellos, aplicar la central unitaria de transformar así obtenidos para el otro, llegando a un bloque diagonal formulario donde tengo que diagonalize cada bloque por separado? O es que hay algo más elegante que puedo hacer?
EDIT: La matriz es densa, pero muy pequeño (12x12 para 18x18).
La simetría sería algo así como la traducción de simetría: $\begin{pmatrix} 0 & 0 & 0 & -1 \\ 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \end{pmatrix}$
donde cada entrada es un 3x3-bloque en el caso de un 12x12 de la matriz, que se ve algo como $\begin{pmatrix} a & b & 0 & -b\\ b&a&b&0\\ 0&b&a&b\\ -b&0&b&a\end{pmatrix}$