% FUNCTION [ x, e ] = LS_SVD( A, b ) % % Least square solution of an overdetermined system Ax = b % where A is a M-by-N matrix with M > N % x is a M-by-1 vector % b is a M-by-1 vector % % This is done using Singular Value Decomposition of A. % Also returned: e (scalar) the euclidian norm of Ax-b function [ x, e ] = ls_svd( A, b ) error( nargchk( 1, 2, nargin ) ); M = size( A, 1 ); N = size( A, 2 ); [ U, S, V ] = svd( A ); c = U' * b; y = c( 1:N ) ./ diag( S ); x = V * y; e = norm( A*x-b );