MaxFunEvals fmincon default option

Good evening to everyone, I would like to know how I can chang the MaxFunEvals number using fmincon. Before calling the optimization algorithm I use:
options= optimoptions(@fmincon,'Display','final','MaxIter',1000,'MaxfunEvals',5000,'TolFun',1e-4,'TolCon',1e-6,'TolX',1e-6);
and then in fmincon I use options, but when I run the code I get the following message:
fmincon stopped because it exceeded the function evaluation limit,
options.MaxFunctionEvaluations = 3000 (the default value).
Thank you so much,
Alesandra

2 comentarios

Star Strider
Star Strider el 17 de Jun. de 2019
When I run the line you posted, it definitely shows that 'MaxFunctionEvaluations' has been set to 5000.
We would have to see the rest of your code (or at least the relevant parts of it) to see if we can detect tthe problem.
Alessandra Costa
Alessandra Costa el 18 de Jun. de 2019
Thank you for the answer. What do you mean with "the relavant parts of it"?

Iniciar sesión para comentar.

 Respuesta aceptada

Steven Lord
Steven Lord el 18 de Jun. de 2019
Your code that creates the optimoptions object looks correct though if you're using release R2016a or later you may want to switch to the current names listed on this documentation page. [That documentation page states that the optimoptions function accepts either legacy or current names.] In particular, 'MaxFunEvals' was changed to 'MaxFunctionEvaluations'.
options= optimoptions(@fmincon,'Display','final','MaxIter',1000,...
'MaxfunEvals',5000,'TolFun',1e-4,'TolCon',1e-6,'TolX',1e-6);
Can you show you call to fmincon? I suspect you're not passing the options into fmincon correctly (or at all.) The optimoptions function creates an object specifying the options, it does not change the options globally for all fmincon calls in the future. [I've seen a number of cases in the past where users held that belief, which is why I mention it.]

1 comentario

Alessandra Costa
Alessandra Costa el 19 de Jun. de 2019
Sorry for the late, I passed the options in this way:
[pars,log_lik,exit,output]=fmincon('f',pars,A,B1,[],[],LB,UB,[],options,data,1);
I solved by re-starting Matlab and now it seems right.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Optimization Toolbox en Centro de ayuda y File Exchange.

Preguntada:

el 17 de Jun. de 2019

Comentada:

el 19 de Jun. de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by