Schnelle und effiziente Berechnung eines Eigenvektors für einen bekannten Eigenwert

Kurze Version meiner Frage:

Was wäre die optimale Methode zur Berechnung eines Eigenvektors für eine MatrixA, ob wir den zum Eigenvektor gehörenden Eigenwert bereits kennen?

Längere Erklärung:

ch habe eine große stochastische MatrA welches, weil es stochastisch ist, einen nicht negativen linken Eigenvektor hatx (so dassA^Tx=x).

Ich suche nach schnellen und effizienten Methoden zur numerischen Berechnung dieses Vektors. (Am liebsten in MATLAB oder Numpy / Scipy - da sich beide um ARPACK / LAPACK drehen, ist jeder in Ordnung.)

Ich weiß das1 ist der größte Eigenwert vonA, also ich weiß, dass so etwas wie dieser Python-Code aufrufen:

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

wird darin enden, dassvals = 1 undvecs Gleich den Vektor, den ich brauche.

Was mich hier jedoch stört, ist, dass das Berechnen von Eigenwerten im Allgemeinen schwieriger ist als das Lösen eines linearen Systems, und im Allgemeinen, wenn eine MatrixM hat Eigenwertl, dann ist das Finden des geeigneten Eigenvektors eine Frage der Lösung der Gleichung(M - 1 * I) * x = 0, was zumindest theoretisch eine Operation ist, die einfacher ist als die Berechnung eines Eigenwerts, da wir nur ein lineares System lösen, genauer gesagt, den Nullraum einer Matrix finden.

Ich finde jedoch, dass alle Methoden der Nullraumberechnung inMATLAB sich verlassen aufsvd Berechnung, ein Prozess, den ich mir nicht leisten kann, um eine Matrix meiner Größe durchzuführen. Ich kann auch keine Löser für die lineare Gleichung aufrufen, da sie alle nur eine Lösung finden und diese Lösung @ is0 (was ja eine Lösung ist, aber nicht die, die ich brauche).

Gibt es eine Möglichkeit, Anrufe an @ zu vermeideeigs -ähnliche Funktion, um mein Problem schneller zu lösen als durch Berechnung des größten Eigenwerts und des zugehörigen Eigenvektors?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage