MATLAB Answers

I need to create a 3d plot with each step of fminsearch

1 view (last 30 days)
Hi, here is my program
par0 = [0.005276, 0.5017, 88.6357];% initial values
fun_objetivo = @(par,pfrac)FunObjetivo(par);
options = optimset('MaxFunEvals',3000,'Display','iter','PlotFcns',@optimplotfval);
%We use here the Nelder-Mead method
par_optimos = fminsearch(fun_objetivo, par0, options);
I need help with some comands to create a 3d plot, what I want is a 3d plot with "par_optimos(1)" as X, "par_optimos(2)" as Y and "min f(x)" as Z , so I can see how two of the values of my vector "par_optimos" are optimized in each iteration.

Accepted Answer

Walter Roberson
Walter Roberson on 10 May 2021
options = optimset('MaxFunEvals',3000,'Display','iter','PlotFcns',@plot_12z);
and
function stop = plot_12z(X,OPTIMVALUES,STATE)
persistent h
stop = false;
switch STATE
case 'init'
if isempty(h) || ~isvalid(h)
fig = figure();
ax = axes(fig);
h = animatedline();
end
case 'done'
if ~isempty(h) && isvalid(h)
delete(ancestor(h), 'figure');
end
case 'iter'
if isvalid(h)
addpoints(h, X(1), X(2), OPTIMVALUES.fval);
end
case 'interupt'
%no new data
end
end
  16 Comments

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!