在我最近的练习中,我编写了一个函数,它得到一个矩阵A和一个数k,并使用Rayleigh商指迭代的近似公式给出了A的特征值的第k个近似值。我写了下面的函数,确保第一次迭代没问题,但第二次得到错误,我不知道如何维护矩阵或向量的方式。我很沮丧,非常感谢任何帮助。
def RayleighQuotientItreation(A,k):
import math
import numpy as np
I=np.matrix(np.identity(A.shape[0]))
b=np.random.rand(A.shape[0])
b=math.pow(normal(b),-1)*b
u=(np.dot(b,(np.dot(A.T,b)).T))[0,0]
for i in range(0,k):
b, u=(np.dot(np.linalg.inv((A- u*I)).T,b))*math.pow(normal((np.dot(np.linalg.inv((A-u*I)),b)).T),-1), (np.dot((np.dot(b.T,A)),b))[0,0]
return u