Matlab如何决定接受fminunc中的步骤?
我用的是fminunc。具体来说,我使用了一个带有BFGS和用户提供的梯度的拟牛顿法来最小化函数。它进行大约3次迭代,然后进行一系列函数求值。我有一个函数,我试图在调用它时最小化显示它的值,我可以看到,在第四次迭代中调用了几次后,它明显小于第三次迭代时的值,但是Matlab继续评估该函数,我不确定为什么。有什么我可以调整的,告诉它接受更新并移动到下一个迭代吗 听起来您对优化器非常了解,让我们看看是否可以帮助您进行optimset设置。从中,它指出了如何放宽公差,以使用以下参数终止优化: 函数值上的TolFun终止容差,一个正标量。这个 默认值为1e-6 TolX终止公差在x上,为正标量。默认值为 1e-6 听起来你有优化工具箱,在这种情况下,我相信你可以使用它来获取优化参数,然后使用Matlab如何决定接受fminunc中的步骤?,matlab,minimization,Matlab,Minimization,我用的是fminunc。具体来说,我使用了一个带有BFGS和用户提供的梯度的拟牛顿法来最小化函数。它进行大约3次迭代,然后进行一系列函数求值。我有一个函数,我试图在调用它时最小化显示它的值,我可以看到,在第四次迭代中调用了几次后,它明显小于第三次迭代时的值,但是Matlab继续评估该函数,我不确定为什么。有什么我可以调整的,告诉它接受更新并移动到下一个迭代吗 听起来您对优化器非常了解,让我们看看是否可以帮助您进行optimset设置。从中,它指出了如何放宽公差,以使用以下参数终止优化: 函数值上
fminunc
来初始化它。(常规优化集的文档没有要求你可以将fminunc
作为参数传递,但我认为它适用于工具箱版本
options = optimset('fminunc');
% you can try either of these two or both, but I would
% recommend only changing one at a time :-)
options = optimset(options,'TolFun',myNewTolFun)
options = optimset(options,'TolX',myNewTolX)
% then you can make your call to the optimizer
x = fminunc(fun,x0,options)
optim设置上令人痛苦的细节可以找到