添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

设置优化选项

如何设置选项

可以使用由 optimset 函数创建的 options 结构体来指定优化参数。然后,可以将 options 作为输入传递给优化函数,例如,通过使用以下语法调用 fminbnd

x = fminbnd(fun,x1,x2,options)

或使用以下语法调用 fminsearch

x = fminsearch(fun,x0,options)

例如,要显示算法在每次迭代中的输出,请将 Display 选项设置为 'iter'

options = optimset('Display','iter');

选项表

选项 描述 求解器

Display

指示是否在屏幕上显示中间步骤的标签。

  • 'notify' (默认值)仅在函数未收敛时显示输出。

  • 'iter' 显示中间步骤(不适用于 lsqnonneg )。请参阅 优化求解器迭代输出

  • 'off' 'none' 不显示中间步骤。

  • 'final' 仅显示最终输出。

fminbnd , fminsearch , fzero , lsqnonneg

FunValCheck

检查目标函数值是否有效。

  • 当目标函数或约束返回的值是复数或 NaN 时, 'on' 显示错误。

  • 'off' (默认值)不显示错误。

fminbnd , fminsearch , fzero

MaxFunEvals

允许的最大函数计算次数。对于 fminbnd ,默认值为 500 ;对于 fminsearch ,默认值为 200*length(x0)

fminbnd , fminsearch

MaxIter

允许的最大迭代次数。对于 fminbnd ,默认值为 500 ;对于 fminsearch ,默认值为 200*length(x0)

fminbnd , fminsearch

OutputFcn

显示有关求解器的迭代的信息。默认值为 [] (无)。请参阅 优化求解器输出函数

fminbnd , fminsearch , fzero

PlotFcns

绘制有关求解器的迭代的信息。默认值为 [] (无)。有关可用的预定义函数,请参阅 优化求解器绘制函数

fminbnd , fminsearch , fzero

TolFun

函数值的终止容差。默认值为 1.e-4 。请参阅 容差和终止条件

fminsearch

TolX

x 的终止容差。默认值为 1.e-4 ,但以下两个函数除外: fzero ,其默认值为 eps (= 2.2204e-16 ),以及 lsqnonneg ,其默认值为 10*eps*norm(c,1)*length(c) 。请参阅 容差和终止条件

fminbnd , fminsearch , fzero , lsqnonneg

容差和终止条件

优化中的迭代次数取决于求解器的 终止条件 。这些条件包括几个可以设置的 容差 。一般来说,容差是一个阈值,超过阈值时将终止求解器的迭代。

提示

一般情况下,将 TolFun TolX 容差设置为远高于 eps 并通常高于 1e-14 。设置小容差并不能保证得到精确的结果。相反,求解器在收敛时无法识别,并可能继续进行无用的迭代。容差值小于 eps 实际上是禁用了这种终止条件。此技巧不适用于 fzero ,它为 TolX 使用默认值 eps

  • TolX 是步长的下界,表示 (x i – x i+1 ) 的范数。如果求解器尝试小于 TolX 的步长,则终止迭代。求解器通常将 TolX 用作 相对 边界,表示在达到 |(x i – x i+1 )| < TolX *(1 + |x i |) 或类似的相对测度时终止迭代。

    Plot showing how iterations end when the last step is smaller than TolFun or TolX.

  • TolFun 是步长中目标函数值变化的下边界。如果 |f(x i ) – f(x i+1 )| < TolFun ,则终止迭代。求解器通常将 TolFun 用作 相对 边界,表示在达到 |f(x i ) – f(x i+1 )| < TolFun (1 + |f(x i )|) 或类似的相对测度时终止迭代。

  • MaxIter 是求解器迭代数量的边界。 MaxFunEvals 是函数求值数量的边界。

注意

与其他求解器不同, fminsearch 同时 满足 TolFun TolX 时停止运行。

输出结构体

output 结构体包括函数计算次数、迭代次数和算法。当为 fminbnd fminsearch fzero 提供第四个输出参量时,将显示此结构体,如下所示

[x,fval,exitflag,output] = fminbnd(@humps,0.3,1);

函数参考页面上提供了每个求解器的 output 结构体的详细信息。

output 结构体选项不能选择用于 optimset 。它是 fminbnd fminsearch fzero 的可选输出。

相关主题