Can you help me with the output of my optimizer?
1 次查看(过去 30 天)
显示 更早的评论
I have this program from
par0 = [0.1,0.0001,100];% initial values
history = [];
fun_objetivo = @(par,pfrac)FunObjetivo(par);
options = optimset('MaxIter',3000,'MaxFunEvals',3000,'Display','iter','OutputFcn', @myoutput);
%We use here the Nelder-Mead method
par_optimos = fminsearch(fun_objetivo, par0, options);
function stop = myoutput(par_optimos,optimvalues,state);
stop = false;
if isequal(state,'iter')
history = [history;par_optimos];
end
end
but I can´t make it give me the value of my vector par_optimos for each iteration, can someone help me?
0 个评论
回答(2 个)
Sulaymon Eshkabilov
2021-6-1
You'd need define a math formulation of fun_objetivo = @(par,pfrac)FunObjetivo(par);
Once it is done, you can run via loop iteration, i.e.: for ... end
0 个评论
Alan Weiss
2021-6-2
Alan Weiss
MATLAB mathematical toolbox documentation
2 个评论
Walter Roberson
2021-6-3
编辑:Walter Roberson
2021-6-3
You did not nest the function like suggested.
history = do_the_work;
function hist = do_the_work()
fun_objetivo = @(par,pfrac)FunObjetivo(par);
history=[];
options = optimset('MaxIter',3000,'MaxFunEvals',3000,'Display','iter','OutputFcn', @myoutput);;%,'PlotFcns',@optimplotfval);
%We use here the Nelder-Mead method
par_optimos = fminsearch(fun_objetivo, par0, options);
hist = history;
function stop = myoutput(par_optimos,optimvalues,state);
stop = false;
if isequal(state,'iter')
history = [history;par_optimos];
end
end
end
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!