import numpy as np
dim = 5
np.random.seed(0)
data = np.random.rand(dim, dim)
eigenvalue, featurevector = np.linalg.eig(data)
v = np.random.rand(dim, 1) # 随机取一个列向量。
for i in range(15):
v = np.matmul(data, v)
v = v / np.sqrt(np.sum(v * v))
print((np.expand_dims(featurevector[:, 0], -1) - v).T) #两种方法求得的主特征向量的差接近于0.
# [[-4.35979031e-12+0.j -8.58479954e-13+0.j 7.73514586e-12+0.j
# -1.10900178e-11+0.j 6.92740310e-12+0.j]]
参考:文献