BFGS method