spectra
spectra copied to clipboard
Incremental / Warm-start
Is there some way in the code to Use an existing set of eigenvectors to compute the eigenvectors of a freshly arrived set? If not, where in the code can we make the change to implement this?
I don't think there is a standard algorithm to do this, at least from the user guide of ARPACK.
But actually there is a simple method to achieve this goal out of the library. For example, assume that M is a positive definite matrix and you have computed the first two eigen pairs (λ1, v1) and (λ2, v2), with λ1 and λ2 being the largest two eigenvalues. If you want to obtain the next two largest eigenvalues, you can first compute matrix M12 = λ1 * v1 * transpose(v1) + λ2 * v2 * transpose(v2), and then decompose the matrix M - M12 and request the largest two eigenvalues on it.