Constrained optimization using Lagrange's multiplier