私は、以下の電力の繰り返ししか知りません。しかし、行と列の両方がかなり大きい場合、巨大な行列A '* Aを作成する必要があります。また、Aは密行列です。次のような繰り返しの方法に代わる方法はありますか?私はkrylov部分空間法について聞いたことがありますが、私はそれに精通していません。どんな場合でも、私は下に述べたものよりも速くする方法を探しています:最も支配的な固有値/特異値を計算する最も速い方法は何ですか?
B = A'*A; % or B = A*A' if it is smaller
x = B(:,1); % example of starting point, x will have the largest eigenvector
x = x/norm(x);
for i = 1:200
y = B*x;
y = y/norm(y);
% norm(x - y); % <- residual, you can try to use it to stop iteration
x = y;
end;
n3 = sqrt(mean(B*x./x)) % translate eigenvalue of B to singular value of A
'eigs(B、1)'を試しましたか? –