给定一个矩阵,有没有一种快速的算法可以恢复前导奇异矢量,即找到最接近Frobenius范数矩阵的秩1矩阵?
通过快速算法,我的意思是:
[U, S, V] = svd(A);
A1 = U(:,1)*S(1,1)*V(:,1)';
答案 0 :(得分:0)
因此power method可用于此目的:
C = A*A';
v1 = power_method(C);
v2 = nanmean(A./v1,1)';
A1 = v1*v2';
但是在我的实验中,它并没有比高度优化的完整svd始终快:
[U,S,V] = svd(A);
A1 = U(:,1)*S(1,1)*V(:,1)';
但是我想对于较大的矩阵,它可能会更好。