У меня есть следующий код Matlab:
r=5;
[U, Gamma, V] = svd( rand(20,10), 'econ' );
L1 = U(:,1:r) * Gamma(1:r,1:r) * V(:,1:r)';
L2 = zeros(20,10);
for i=1:r
L2 = L2 + Gamma(i)* U(:,i) * V(:,i)';
end
norm(L1-L2,'fro')
Обычно L1 должен быть таким же, как L2, а norm(L1-L2,'fro')
в результате должен давать ноль. Однако это не тот случай, когда я набираю приведенные выше команды в командном окне Matlab.
Может ли кто-нибудь помочь мне определить проблему здесь?