Is there a faster way to get eigenvalues/vectors when good initial guess is given?

74 Views Asked by At

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))
1

There are 1 best solutions below

0
ev-br On

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 via scipy.sparse.linalg.