主要内容

退出标志和退出消息

退出标志

当优化求解器完成其任务时,它设置了一个出口标志.退出标志是一个整数,它是求解器停止其迭代的原因的代码。一般来说:

  • 积极的退出标志对应成功的结果。

  • 负退出标志对应不成功的结果。

  • 零退出标志对应于通过超过函数评估数量的迭代限制或限制而被停止的解算器(参见迭代和函数计数,也看到了公差和停止标准)。

此表链接到每个求解器的退出标志描述。

解算器退出标志

coneprogExitFlag.

fgoalattainExitFlag.

FMINBND.ExitFlag.

粉刺ExitFlag.

fminimaxExitFlag.

fminsearch.ExitFlag.

Fminunc.ExitFlag.

fseminf.输出参数

FSOLVE.ExitFlag.

fzeroExitFlag.

intlinprog.ExitFlag.

linprogExitFlag.

lsqcurvefit.ExitFlag.

Lsqlin.ExitFlag.

lsqnonlinExitFlag.

lsqnonneg.ExitFlag.

quadprogExitFlag.

笔记

退出标志并不是解决方案质量的可靠指南。许多其他因素,如公差设置,会影响解决方案是否令您满意。您有责任决定一个求解器是否返回一个满意的答案。有时,一个否定的退出标志并不对应一个“坏的”解决方案。类似地,有时正的退出标志并不对应“好的”解决方案。

您通过调用求解器获得退出标志ExitFlag.句法。此语法取决于求解器。有关详细信息,请参阅求解功能参考页面。例如,FSOLVE.,获取退出标志的调用语法是

[x,fval,退出帧] = fsolve(...)

以下示例使用此语法。假设您要解决非线性方程系统

2 X 1 - X 2 = E. - X 1 - X 1 + 2 X 2 = E. - X 2

将这些方程写成一个匿名函数,在解处给出一个零向量:

myfcn = @(x)[2 * x(1) -  x(2) -  exp(-x(1));-x(1)+ 2 * x(2) -  exp(-x(2))];

称呼FSOLVE.ExitFlag.起始点[-5 -5]处的语法:

[Xfinal Fval ExitFlag] = FSOLVE(MyFCN,[ -  5-5])
方程解决。FSOLVE完成,因为通过函数容差的值测量,功能值的向量接近零,并且如梯度测量的问题会常规。Xfinal = 0.5671 0.5671 FVAL = 1.0E-06 * -0.4059 -0.4059 EXITFLAG = 1

在表格中FSOLVE.ExitFlag.,您发现退出标志值1意思是“功能融合到解决方案X换句话说,FSOLVE.举报myfcn.几乎是零X=[0.5671 0.5671]

退出消息

每个解算器向MATLAB发出一条消息®其迭代结束时的命令窗口。此消息简要介绍为什么解算器停止。消息可能会提供比退出标志更多的细节。

本文档中的许多示例显示退出消息,例如在命令行定义和解决问题.上一节中的例子,退出标志,显示以下退出消息:

方程解决。FSOLVE完成,因为通过函数容差的值测量,功能值的向量接近零,并且如梯度测量的问题会常规。

此消息比退出标志提供更多信息。该消息表明梯度是相关的。该消息还声明,函数容忍度控制了函数值的向量必须接近0的程度FSOLVE.将解决方案视为已完成。

增强的退出消息

有些求解器有退出消息,其中包含有关更多信息的链接。有两种类型的链接:

  • 单词或短语上的链接。如果单击此类链接,则打开一个窗口,该窗口显示术语的定义,或提供其他信息。新窗口可以包含有关更多详细信息的帮助浏览器文档的链接。

  • 作为显示的最后一行的链接> <停止标准细节.如果单击此链接,MATLAB会显示求解器停止的原因的更多详细信息。

Fminunc.求解器具有增强的退出消息:

opts = Optimoptions(@Fminunc,'算法''quasi-newton');% 'trust-region'需要渐变[Xfinal Fval ExitFlag] = Fminunc(@ SIN,0,OPTS)

这会产生以下结果:

每个带下划线的单词或短语都包含提供更多信息的链接。

  • > <停止标准细节链接将以下内容打印到MATLAB命令行:

    优化已完成:一阶最优度量,0.000000E + 00的options.optimalantyTolerance = 1.000000E-06。
  • 其他链接会弹出一个带有术语定义的帮助窗口。例如,单击发现局部最小值链接打开以下窗口:

    点击一阶最优性测量扩展器链接带来了一阶最优性措施的定义Fminunc.

    扩展程序链接是在同一窗口中获取更多信息的方法。点击一阶最优性测量扩展器链接再次关闭定义。

  • 另一个链接打开帮助查看器。

退出消息选项

设定展示选项来控制退出消息和迭代显示的外观。有关更多信息,请参见迭代显示.下表显示了各种设置的效果展示选择。

显示选项的值 输出到命令窗口
退出消息 迭代显示
'没有任何',或代名词“关闭” 没有一个 没有一个
'最终的'(大多数索盘默认) 默认的 没有一个
最后详细的 详细的 没有一个
'iter' 默认的 是的
'iter-comment' 详细的 是的
“通知” 默认情况下才是ExitFlag.≤0 没有一个
'通知 - 详细' 只有if.ExitFlag.≤0 没有一个

例如,

opts = Optimoptions(@Fminunc,“显示”'iter-comment''算法''quasi-newton');[xfinal fval] = fminunc(@cos,1,opts);

产生如下显示:

相关的话题