Plot update on each function call when running fmincon in parallel
8 次查看(过去 30 天)
显示 更早的评论
Dear All
I am trying to run fmincon in parallel and would like to plot the function value after each objective function calll. I also want to save/log this value to a global variable or file. Global variables cannot be used and I am not sure what to do next. I have tried different suggestions from the FEX but just cannot get it to work. Any help or suggestions would be much appreciated.
Thanks in advance
Etienne
0 个评论
采纳的回答
Ameer Hamza
2020-5-5
编辑:Ameer Hamza
2020-5-5
To plot the objective function value, you can specify using optimoptions(). For example
opts = optimoptions('fmincon', 'PlotFcn', 'optimplotfval');
fmincon(@(x) sum(x.^2.*exp(x)), rand(4,1), [], [], [], [], [], [], [], opts)
You can find the list of available plot functions here: https://www.mathworks.com/help/releases/R2020a/optim/ug/fmincon.html#busog7r-options and you can also create your custom plot function.
To save the value, you will need to use outputFcn, as demonstrated in John's answer here: https://www.mathworks.com/matlabcentral/answers/510713-is-it-possible-to-store-the-intermediate-values-of-fmincon#answer_420002. You can use his FEX package (mentioned in his answer) to avoid the global variable.
2 个评论
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!