Numerical Optimization: Iterative Methods