A menudo, en la literatura de física de la materia condensada, uno se encuentra con un hamiltoniano que dice algo así como:
Si uno supiera la función de onda como , entonces sería fácil simplemente aplicar el hamiltoniano y hacer lo que uno quiera. Pero supongamos que no tengo eso y necesita diagonalizar directamente para calcular sus valores propios y vectores propios (por ejemplo, al simular un modelo de este tipo en una red en la computadora), ¿cómo lo haría?
¿Cómo se aseguraría uno de que es diferente de ? La única forma de hacerlo es operarlos en algún giro supuesto (aleatorio) existente en sus sitios. Pero si uno hace eso, entonces el hamiltoniano es una suma del producto de dos matrices ( matriz) que no tiene sentido!
¿Alguien podría explicar dónde me estoy equivocando? Básicamente, quiero diagonalizar un hamiltoniano de la forma anterior en una computadora (usando, digamos, Mathematica, que tiene funciones incorporadas para dar los valores propios y los vectores propios) sin conocer las funciones propias.
Editar: después de pensarlo más, al decir que el giro en cualquier sitio en particular es un matriz, ¿estoy asumiendo implícitamente que es un estado no tensorial? Incluso si eso es cierto, ¿cómo ayuda a dar la dimensión correcta del hamiltoniano para diagonalizarlo?
El espacio de Hilbert de una cadena de espín de longitud viene dada por el producto tensorial de copias del espacio de Hilbert de un solo giro. Suponiendo que estamos hablando de spin- , la dimensión del espacio es .
En este contexto, un "operador que actúa en un solo giro" significa un -operador dimensional obtenido como el producto tensorial de un operador 2d con copias de la identidad 2d, por lo que la acción en los otros giros es trivial.
Por ejemplo, dada la ( ) Matriz de Pauli ,
De manera similar, un operador de "dos cuerpos" se puede escribir explícitamente
Diagonalizar tal hamiltoniano numéricamente es un problema difícil. En principio, con las expresiones anteriores puede construir explícitamente la matriz en su lenguaje de programación favorito (por ejemplo, en Mathematica usando KroneckerProduct
y PauliMatrix
). Sin embargo, como se señaló anteriormente, la dimensión crece exponencialmente con el número de giros, lo que significa que ni siquiera podrá llegar a
.
Por lo tanto, uno necesita encontrar formas más inteligentes de hacer las cosas; por ejemplo, un punto de partida sería representar como una matriz dispersa. Este es un campo activo de investigación, e incluso con algoritmos de última generación y grandes computadoras, las personas pueden resolver el problema con unas pocas decenas de giros como máximo.