Davidon–Fletcher–Powell algorithm