当目标函数达到一定值时停止fminsearch



当目标函数超过某个值(最小值或最大值(时如何停止fminsearch(

options = optimset('MaxFunEvals',9999);
[x,fval,exitflag,output]  =  fminsearch(@(var)objectiveFunction(variables), changingParameters,options);

如果我达到某个目标函数值(例如 1000([在 9999 次迭代中],如何停止函数

我已经尝试过'TolFun',我不确定这是否正确

options = optimset('MaxFunEvals',999,'TolFun',1000);
[x,fval,exitflag,output]  =  fminsearch(@(var)objectiveFunction(variables), changingParameters,options);
您可以通过在

options.OutputFcn输入结构中放置适当的函数来手动停止搜索过程。 此函数在搜索的每次迭代中调用,并允许返回搜索将终止的信号。 例如,您可以定义

function stop = custom_stop_fun(~, optimValues, ~)
if optimValues.fval >= 1000
    stop = true;
else
    stop = false;
end
end

然后通过

options.OutputFcn = @custom_stop_fun;

查看完整的OutputFcn文档

相关内容

  • 没有找到相关文章

最新更新