user366312
user366312

Reputation: 16894

MATLAB Optimization toolbox example

https://www.mathworks.com/help/optim/examples/banana-function-minimization.html

fun = @(x)(100*(x(2) - x(1)^2)^2 + (1 - x(1))^2);
options = optimset('OutputFcn',@bananaout,'Display','off');
x0 = [-1.9,2];
[x,fval,eflag,output] = fminsearch(fun,x0,options);
title 'Rosenbrock solution via fminsearch'
Fcount = output.funcCount;
disp(['Number of function evaluations for fminsearch was ',num2str(Fcount)])
disp(['Number of solver iterations for fminsearch was ',num2str(output.iterations)])

What is @bananaout here?

This is giving me the following error,

??? Error using ==> feval
Attempt to execute SCRIPT bananaout as a function:
C:\Users\admin\Desktop\bananaout.m

Error in ==> callAllOptimOutputFcns at 12
    stop(i) = feval(OutputFcn{i},xOutputfcn,optimValues,state,varargin{:});

Error in ==> fminsearch>callOutputAndPlotFcns at 464
            stop = callAllOptimOutputFcns(outputfcn,xOutputfcn,optimValues,state,varargin{:})
            || stop;

Error in ==> fminsearch at 199
    [xOutputfcn, optimValues, stop] =
    callOutputAndPlotFcns(outputfcn,plotfcns,v(:,1),xOutputfcn,'init',itercount, ...

Error in ==> test_optim at 9
[x,fval,eflag,output] = fminsearch(fun,x0,options)

Upvotes: 0

Views: 584

Answers (1)

Phil Goddard
Phil Goddard

Reputation: 10762

As per the doc, Output Functions are called by the optimizer at every time step, enabling you to do things like plot the progress of the optimization.

In your case you get an error because bananaout seems to be a script when it needs to be a function (with specific inputs - see the doc for their details). Did you happen to save the example code in a script called bananaout? If so, rename the script.

You can see a list of all m-code that you have that are called bananaout by executing the following:

>> which bananaout -all

One of them will be the function that the example should be calling, while another will be the one that you have created and need to rename/remove.

Upvotes: 1

Related Questions