SIZE = 1000; UPPER = ceil(SIZE/2); NUMBER_OF_TESTS = 15; PARAMS = [10 0.4; 10 0.6; 10 0.8; 20 0.4; 20 0.6; 20 0.8; 30 0.4; 30 0.6; 30 0.8; 40 0.4; 40 0.6; 40 0.8; 50 0.4; 50 0.6; 50 0.8]; for i=1:15, k = PARAMS(i,1); q = PARAMS(i,2); epsilon = 0.03; expected_error = 1-q+epsilon; for j=1:NUMBER_OF_TESTS, i j clear A; A = mkmatrix(SIZE,k,q); error = 1; sleft = 0; sright = UPPER; while (abs(error - expected_error) >= 0.005) & (sleft ~= sright) s = round((sleft + sright) / 2) [error,H] = fastsvd (A, s, k); if error < expected_error sright = s; else sleft = s; end error deviation = error - expected_error; end Sresults(i,j) = s; end end save RES10a.mat PARAMS Sresults;