Numerical Methods For Least Squares Problems