function leastime % *** m=2*n *** A=randn(2000,1000); b=randn(2000,1); % % *** Least squares via projected equations *** % *** complexity 2*m*n^2-2*n^3/3 => 10*n^3/3 FLOPs tic x1=A\b; t1=toc % % *** minor improvement with linsolve *** opts.RECT=true; tic x2=linsolve(A,b,opts); t2=toc opts.RECT=false; % % *** Least squares via normal equations *** % *** (classic complexity m*n^2+n^3/3 => 7*n^3/3 FLOPs ) % *** complexity here 2*m*n^2+n^3/3 => 13*n^3/3 FLOPs % tic x3=(A'*A)\(A'*b); t3=toc % % *** minor improvement with linsolve *** opts.SYM=true; opts.POSDEF=true; tic x4=linsolve(A'*A,A'*b,opts); t4=toc opts.SYM=false; opts.POSDEF=false; % kolla2=norm(x2-x1)/norm(x1) kolla3=norm(x3-x1)/norm(x1) kolla4=norm(x4-x1)/norm(x1)