Source: http://apmonitor.com/me575/uploads/Main/chap7_constrained_opt_KKT_v2.pdf