More detailed output function in optimization

2 visualizaciones (últimos 30 días)
Mohammad Shojaei Arani
Mohammad Shojaei Arani el 2 de Ag. de 2022
Comentada: Mohammad Shojaei Arani el 2 de Ag. de 2022
Hello,
I think I have a simple question but found it difficult to fix it myself.
In doing the optimization we can have 'our' output function. The following represents roughly my code and my output function:
Extra_param = A number;
options=optimoptions('fmincon','OutputFcn',@myoutput,'StepTolerance',10^(-8));
fmincon(cost,x0,[],[],[],[],lb,ub,[],options);
function stop = myoutput(x,optimvalues,state);
stop = false;
if isequal(state,'iter')
disp(num2str(x));
end
end
I would like the output function to dsplay me another parameter called 'Extra_param' which is not related to the optimum values or optimum state. It is just an extra parameter (and has nothing to do with the optimization problem being solved). so, I would like something like bellow:
function stop = myoutput(x,optimvalues,state,Extra_param);
stop = false;
if isequal(state,'iter')
disp(num2str(x));
disp(num2str(Extra_param));
end
end
But, unfortunately I get the following error message:
Unrecognized function or variable 'Extra_param'.
  2 comentarios
Walter Roberson
Walter Roberson el 2 de Ag. de 2022
@myoutput
should become
@(x,op,st)myoutput(x,op,st,Extra_param)
This assumes that the value is known before you start optimization
Mohammad Shojaei Arani
Mohammad Shojaei Arani el 2 de Ag. de 2022
Yes Walter. Great!
Thanks man!

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Get Started with Optimization Toolbox en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by