Numerical Methods for Non-Linear Optimization