As far as I know, numpy.eig and scipy.eig are from LAPACK, and the algorithm is based on iterative method.
If we assume that the good initial guess for eigen values and eigen vectors are given (very close to the real eigenvals/vectors), is there any chance to imporve the convergence speed of eigendecomposition?
import numpy as np
A = np.random.rand( 100, 100 )
LAM, W = np.linalg.eig(A)
A2 = A + 0.001 * np.random.rand( 100, 100 ) # similar matrix to A
LAM2, W2 = eig_with_initial_guess(A2, guess = (LAM,W))
There is no way to provide an initial guess for
np.linalg.eig. If you've a good guess and want some polishing, you can make a few inverse iteration steps manually. Or use ARPACK viascipy.sparse.linalg.