Lecture notes for CPSC546, Numerical Optimization, taught by Michael Friedlander at UBC during January-April 2014.