%% U = [1 -1; 1 1]/sqrt(2); S = [1 0 ; 0 .01]; V = normc([1 1; 2 -1; -1 3; -2 2]); X = U*S*V'; figure(2);clf;scatter(X(1,:),X(2,:),50,'filled');axis square colorbar [U2,S2,V2] = svd(X) %% p = 2; n = 100; u_orig = [1 -1; 1 1]/sqrt(2); v_orig = randn(p,n)/sqrt(n); X = u_orig*[1 0; 0 1e-10]*v_orig; w = rand(2,1) noise = randn(n,1)/100; y = X'*w + noise;%v_orig'*[1;.1]; figure(1);clf;scatter(X(1,:),X(2,:),50,y,'filled');axis square colorbar [U,S,V] = svds(X,p); %LS what_LS = U*inv(S)*V'*y %Tik lambda = .01; S2 = diag(diag(S)./(diag(S).^2 + lambda)); what_tik = U*S2*V'*y %% p = 2; n = 100; U = orth(randn(p)) Sigma = diag([1 .1]); V = randn(n,p); X = U*Sigma*V'; figure(4);clf;scatter(X(1,:),X(2,:),50,'filled');axis square axis([-1,1,-1,1]) colorbar grid on hold on for k = 1:2 quiver(0,0,U(1,k)*Sigma(k,k),U(2,k)*Sigma(k,k),0,'filled','linewidth',5,'maxheadsize',.5) % quiver(0,0,U(1,k),U(2,k),0,'filled','linewidth',5,'maxheadsize',.5) end