Calcular los vectores propios más pequeños de una matriz

8

Parece que Matlab eigsme está dando malas aproximaciones de los vectores propios más pequeños de una matriz.

Supongo que puedo usar algunos métodos más lentos que también serían más precisos ...

Estoy buscando encontrar el segundo vector propio más pequeño de una matriz lapalciana (conocido como el vector "fiedler"). Sé, por supuesto, que el vector propio más pequeño de una matriz laplaciana es el vector constante.

¿Alguna sugerencia para un método más preciso?

PD En todo lo anterior, cuando digo "vector propio más pequeño" me refiero al vector propio asociado con el valor propio de menor magnitud.

olamundo
fuente

Respuestas:

5

Hay una manera directa de explotar su conocimiento a priori del par propio más pequeño: simplemente podría proyectar el componente de la estimación del vector propio actual en la dirección del vector constante en cada iteración de, digamos, iteración inversa. A continuación, debe esperar que la iteración converja al vector propio correspondiente al segundo valor propio más pequeño, su vector Fiedler deseado.

UNA-1

Jack Poulson
fuente
1

Puede obtener la descomposición propia completa con eig(full(A))

Aron Ahmadia
fuente
gracias, pero irrelevante para una enorme matriz escasa 100000X100000 :)
olamundo
@noam Edite su pregunta para incluir información importante como esa.
David Ketcheson el