variational techniques