Why is it that if I run fminunc with gradient supplied (return gradient in output, set 'GradObj' to 'on', etc) and print out the input variable for each call to the objective, I see the same value of the variable repeated multiple times (which seems to mean the same point is evaluated multiple times) before it changes/steps to the next point?
I would understand if it repeated multiple times, with perturbations for each variable component, to estimate the gradient, but in this case the gradient value/function is already supplied within the first call, and the values repeat exactly, not even with perturbation.
Any help with explaining this would be greatly appreciated because otherwise, on the surface, it just seems like several wasted function calls, but I have a feeling I'm missing something.
Thanks
Best Answer