Cálculo rápido y eficiente de un vector propio para un valor propio conocido

Versión corta de mi pregunta:

¿Cuál sería la forma óptima de calcular un vector propio para una matrizA, si ya conocemos el valor propio que pertenece al vector propio?

Explicación más larga:

Tengo una gran matriz estocásticaA que, debido a que es estocástico, tiene un vector propio izquierdo no negativox (tal queA^Tx=x)

Estoy buscando métodos rápidos y eficientes para calcular numéricamente este vector. (Preferiblemente en MATLAB o numpy / scipy, ya que ambos envuelven ARPACK / LAPACK, cualquiera estaría bien).

Yo sé eso1 es el mayor valor propio deA, así que sé que llamar a algo así como este código Python:

from scipy.sparse.linalg import eigs
vals, vecs = eigs(A, k=1)

resultará envals = 1 yvecs igualando el vector que necesito.

Sin embargo, lo que me molesta aquí es que calcular valores propios es, en general, una operación más difícil que resolver un sistema lineal y, en general, si una matrizM tiene valor propiol, entonces encontrar el vector propio apropiado es cuestión de resolver la ecuación(M - 1 * I) * x = 0, que es, al menos en teoría, una operación que es más simple que calcular un valor propio, ya que solo estamos resolviendo un sistema lineal, más específicamente, encontrando el espacio nulo de una matriz.

Sin embargo, encuentro que todos los métodos de cálculo de espacio nulo enMATLAB depender desvd cálculo, un proceso que no puedo permitirme realizar en una matriz de mi tamaño. Tampoco puedo llamar a los solucionadores en la ecuación lineal, porque todos solo encuentran una solución, y esa solución es0 (que, sí, es una solución, pero no la que necesito).

¿Hay alguna manera de evitar llamadas aeigs-como una función para resolver mi problema más rápidamente que calculando el valor propio más grande y el vector propio que lo acompaña?

Respuestas a la pregunta(1)

Su respuesta a la pregunta