Scientific Computing with MATLAB and Octave, 3rd ed.