calcular componentes de vectores propios de un vector dado

8

Tengo un vector V que puede descomponerse en el espacio propio del operador escaso hermitiano M :

V=ivim^i

¿Hay una manera de encontrar el m i (el vector propio sí mismo) que se corresponden con la mayor v i (en magnitud)?m^ivi

Básicamente, quiero los pocos términos más grandes de la suma, incluidos los vectores propios de M , que no conozco de antemano.

Específicamente, quiero encontrar simultáneamente los vectores propios de M que corresponden a los más grandes |vi|, junto con encontrar el mayor vi . Preferiblemente sin encontrar el espectro completo de M primero.

Algunas posibilidades en las que he estado pensando:

Podemos "inflar" la matriz usando el opuesto de "Deflación de Wieldant":

M1=M+σ[Σivim^i]VH=M+σVVH

Los valores propios de diferentes m i se desplazan λ i + sigma | v i | 2 . Creo que podemos extraer σ y v i porque los vectores propios no cambian. El problema es que el producto externo de V es denso.m^iλi+σ|vi|2σviV

Otra posibilidad:

MVVvi

¿Hay alguna forma de controlar esto para que solo converjamos en el componente más grande?

Andrew Spott
fuente
Estoy pensando en el mundo real, así que creo que requiere una simulación estocástica. Tienes un vector y quieres encontrar su lugar en un subespacio. El subespacio es atravesado por los vectores propios. El truco es que no tienes todos los vectores propios, solo algunos. Puede usar el producto de puntos para ver cuáles de los vectores propios que tiene contribuyen al vector o vectores que tiene. Si tiene suerte, podría abarcar su vector con un subconjunto de los vectores propios. Si no es así, puede descomponer su vector en términos de los vectores propios que tiene y encontrar los vectores que no tiene.
EngrStudent
¡Consulte scicomp.stackexchange.com/questions/28111/… para obtener una solución! He agregado algunos detalles de la solución a la pregunta.
as2457

Respuestas:

1

Como la matriz es hermitiana, puede usarla como hamiltoniana para propagarla en tiempo imaginario. Es decir, resuelva el siguiente sistema de ecuaciones diferenciales:

idVdt=MV

La solución general a esto es:

V(t)=V0eiMt

V(t)V(0)

Una vez que tenga los valores propios, encuentre los vectores propios con cualquier solucionador de valores propios específico que prefiera.

Dan
fuente
¿Me puede recomendar un libro de texto, notas de clase o cualquier fuente que contenga una introducción a este "método espectral"? La búsqueda de Google realmente no me proporcionó resultados satisfactorios.
Marco Breitig
@Marco Breitig: Nunca he podido encontrar uno tampoco. Supongo que es solo parte de la tradición oral de la física atómica.
Dan
0

M^MMM^viM^v=Vimaxj|vj|=|vi|iM^vi

Geoff Oxberry
fuente
1
Lo siento, no estaba claro. Sé que solo puedo calcular cada vector propio y obtener la respuesta de esa manera, pero sólo quiero los vectores propios correspondientes a los mayores componentes de . Si es posible, me gustaría evitar calcular todos los vectores propios y luego averiguar qué componentes son los más grandes. V
Andrew Spott
2
@ AndrewSpott: Agregue ese requisito a su pregunta. Encontrar vectores propios dados valores propios (o encontrar uno para un valor propio de magnitud máxima) es sencillo. Encontrar un mejor aproximado de bajo rango en términos de una base dada también es sencillo. Sin embargo, aquí, debe resolver una base propia y, al mismo tiempo, encontrar un mejor aproximado de bajo rango. Puede ser factible, pero no se le ocurre ningún algoritmo de inmediato.
Geoff Oxberry
¿Está más claro ahora?
Andrew Spott