据我所知,
numpy.eig
和scipy.eig
来自LAPACK
,算法基于迭代方法。
如果我们假设给出了特征值和特征向量的良好初始猜测(非常接近真实特征值/向量),是否有机会提高特征分解的收敛速度?
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))
无法对
np.linalg.eig
提供初步猜测。如果您有一个很好的猜测并需要一些改进,您可以手动执行一些逆迭代步骤。或者通过 scipy.sparse.linalg
使用 ARPACK。