Continuidad de vectores propios de matriz paramétrica

8

Tengo matrices -dimensional H ( k ) en función de vector de parámetros k .nH^(k)k

Ahora, las rutinas de valores propios devuelven valores propios sin un orden particular (generalmente están ordenados), pero quiero rastrear valores propios como funciones suaves de k . Debido a que los valores propios no se devuelven en ningún orden en particular, simplemente trazando E i por algún determinado índice i { 1 , . . , n } devolverá un conjunto de líneas que no son suaves, como se muestra en la imagen siguienteEikEii{1,..,n}

estructura de banda

kk+dkvi(k)vj(k+dk)δpipjpi,pjπ({1,...,n})π

En otras palabras, rastrearía la continuidad de los vectores propios.

Sin embargo, me encuentro con algunos problemas con las rutinas numéricas. En un pequeño subconjunto de puntos que uso, pocos vectores propios en puntos cercanos no son casi ortonormales. Mi primera sospecha fue que esos vectores propios corresponden a un valor propio degenerado, pero eso no siempre es cierto.

dk

¿Está permitido que tal cosa suceda? ¿O es posible garantizar que las rutinas numéricas devuelven vectores propios continuos? La rutina que uso es numpy.linalg.eigh, que es una interfaz para zheevd de LAPACK.

(Los físicos entre ustedes reconocerán que estoy hablando de la estructura de la banda)

tomic
fuente
1
Tu matriz es hermitiana, ¿verdad?
k20
Por supuesto. Me olvidé de mencionar eso.
tomic
¿Quizás el problema es que incluso cuando los valores propios son distintos, los vectores propios pueden tener signos arbitrarios?
k20
No creo que este sea el problema, ya que al final solo tomo el valor absoluto de la matriz de productos de vectores propios.
tomic
¿Sería capaz de usarlo numpy.linalg.svdpara generar sus vectores propios? Al menos en Matlab, la rutina subyacente para svdsiempre devuelve los valores propios y los vectores propios en orden decreciente.
horchler

Respuestas:

3

En los puntos donde se fusionan dos líneas, tiene que dos valores propios son iguales y, en consecuencia, el espacio propio que corresponde a estos dos vectores propios es bidimensional. Lo que esto significa es que en ese punto, los dos vectores propios ya no son únicos (no solo hasta un signo) sino que pueden ser cualquiera de los infinitos vectores ortogonales posibles que abarcan este espacio bidimensional.

k

Wolfgang Bangerth
fuente
Fue lo primero que pensé. Sin embargo, me sorprendió que también sucediera con valores propios que no eran degenerados.
tomic
bastante seguro de que para las matrices hermitianas, esto no sucede para los valores propios que no son degenerados
k20
También te puede interesar esta pregunta: scicomp.stackexchange.com/questions/8432/…
Wolfgang Bangerth
2

Trabajo en electromagnetismo, así que tengo que calcular estructuras de banda fotónica. Solía ​​tratar de suavizar las bandas tratando de detectar puntos de cruce, pero después de muchos intentos y discusiones con compañeros de trabajo, finalmente llegamos a la conclusión de que no hay una buena forma o razón para hacerlo.

Pero, si aún insiste en hacer lo que quiere, debe considerar calcular los derivados del valor propio con respecto a k. Existe bastante literatura sobre esto, principalmente sobre la teoría de la perturbación de los problemas de valores propios (libro clásico de Kato), y también se trabaja en el análisis de perturbaciones en presencia de degeraciones de valores propios (un problema mucho más difícil, literatura de Roger CE Tan). Primero trataría de hacer esto para el caso no degenerado, ya que todavía es relativamente fácil.

Victor Liu
fuente