Source: https://mae.ufl.edu/nkim/eas6939/UnconstrainedOpt.pdf