让和和在哪里,并考虑正定矩阵.
题
什么是计算领先特征向量的有效方法不形成产品?
让和和在哪里,并考虑正定矩阵.
什么是计算领先特征向量的有效方法不形成产品?
假设乘以对角矩阵在计算上很容易,我们可以将其写为:
在哪里. 动机是因为左奇异向量是一组正交特征向量,我们可以进一步进行:
第一列列(对应于最高奇异值)应对应于第一个的特征向量. 由于您只需要领先的特征向量,这就足够了。
这是一个简短的 MATLAB 代码来实现这个想法:
m = 5; d = 3;
A = randn(m,d); % A is a random matrix - note that it can have negatives
D = diag(rand(d,1)); % just a random diagonal that is positive
[V, ~] = eigs(A*D*A', d); % what we actually like to have
[U, ~, ~] = svd(A*sqrt(D),'eco'); % the variant avoiding the product
上面代码的示例运行产生以下和:
注意符号歧义。无论如何,向量的符号对于特征分解都是任意的。如果您想获得单个前导特征向量,另一种选择是直接将最后一行替换为:
[U, ~, ~] = svds(A*sqrt(D),1);