当优化求解器完成其任务时,它设置了一个出口标志.退出标志是一个整数,它是求解器停止其迭代的原因的代码。一般来说:
此表链接到每个求解器的退出标志描述。
解算器退出标志
笔记
退出标志并不是解决方案质量的可靠指南。许多其他因素,如公差设置,会影响解决方案是否令您满意。您有责任决定一个求解器是否返回一个满意的答案。有时,一个否定的退出标志并不对应一个“坏的”解决方案。类似地,有时正的退出标志并不对应“好的”解决方案。
您通过调用求解器获得退出标志ExitFlag.
句法。此语法取决于求解器。有关详细信息,请参阅求解功能参考页面。例如,FSOLVE.
,获取退出标志的调用语法是
[x,fval,退出帧] = fsolve(...)
以下示例使用此语法。假设您要解决非线性方程系统
将这些方程写成一个匿名函数,在解处给出一个零向量:
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);
产生如下显示: