Таким образом, power mode может использоваться для этой цели:
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)';
но я думаю, что для больших матриц это может работать лучше.