Hello,
I have problem with optimization using fminunc with GradObj set to on. I'm trying to find minimum in Rosenbrock function – which have only one minimum at [1.0, 1.0]. Without GradObj fminunc is ale to find optimum. With GradObj function stops after 3 iterations with message:
—–
First-order Iteration Func-count f(x) Step-size optimality 0 1 24.2 211 1 3 4.25728 0.000871384 17.8 2 4 4.12914 1 3.16 Local minimum possible.fminunc stopped because it cannot decrease the objective functionalong the current search direction.<stopping criteria details>X = -1.0306 1.0697FVAL = 4.1291EXITFLAG = 5OUTPUT = iterations: 3 funcCount: 22 stepsize: 1 firstorderopt: 3.1610 algorithm: 'medium-scale: Quasi-Newton line search' message: [1x362 char]
—–
Here is code I'm running:
function [f,G] = func1(x) f = (1 - x(1))*(1 - x(1)) + 100*(x(2) - x(1)*x(1))*(x(2) - x(1)*x(1)); % Gradient of the objective function
if nargout > 1 G = [-2 - 2*x(1) - 400*x(2)*x(1) + 400*x(1)*x(1)*x(1), 200*x(2) - 200*x(1)*x(1)]; endend
…
options = optimset('LargeScale', 'off', 'InitialHessType', 'Scaled-Identity', 'GradObj', 'on', 'Display', 'iter');% where startX = -1.2 and startY = 1.0
[X,FVAL,EXITFLAG,OUTPUT] = fminunc(@func1,[startX, startY], options)
Please, help me solve this problem.
Best Answer