迭代输出
简介
迭代输出包含一系列的统计量,用来描述求解器在每次迭代中的计算。统计量取决于求解器和求解器算法。当您使用适当的选项运行求解器时,该表会出现在 MATLAB® 命令行窗口中。有关迭代的详细信息,请参阅迭代和函数计算次数。
通过使用 optimoptions
并将 Display
选项设置为 'iter'
或 'iter-detailed'
,获得迭代输出。例如:
options = optimoptions(@fminunc,'Display','iter','Algorithm','quasi-newton'); [x fval exitflag output] = fminunc(@sin,0,options);
First-order Iteration Func-count f(x) Step-size optimality 0 2 0 1 1 4 -0.841471 1 0.54 2 8 -1 0.484797 0.000993 3 10 -1 1 5.62e-05 4 12 -1 1 0 Local minimum found. Optimization completed because the size of the gradient is less than the value of the optimality tolerance.
迭代输出适用于除下列求解器之外的所有求解器:
lsqlin
'trust-region-reflective'
算法lsqnonneg
quadprog
'trust-region-reflective'
算法
常见标题
下表列出了迭代输出的一些常见项目标题。
标题 | 显示的信息 |
---|---|
| 当前目标函数值;对于 |
| 一阶最优性度量(请参阅一阶最优性度量) |
| 函数计算次数;请参阅迭代和函数计算次数 |
| 迭代编号;请参阅迭代和函数计算次数 |
| 当前步的大小(表示为欧几里德范数,或 2-范数)。对于 |
函数特定项目标题
本节中的表介绍各优化函数的迭代输出中的特定项目标题。
fgoalattain、fmincon、fminimax 和 fseminf
下表描述了特定于 fgoalattain
、fmincon
、fminimax
和 fseminf
的输出标题。
fgoalattain、fmincon、fminimax 或 fseminf 的输出标题 | 显示的信息 |
---|---|
|
|
| 当前迭代中采用的共轭梯度迭代次数(请参阅预条件共轭梯度法) |
| 目标函数沿搜索方向的梯度 |
| 最大约束违反度,其中满足条件的不等式约束计为 |
| 缩放搜索方向的乘法因子(请参阅公式 29) |
| 内部构造的和用户提供的所有约束的最大违反度;当没有绑定约束时,可以为负值 |
|
|
| Hessian 矩阵更新过程:
有关详细信息,请参阅更新 Hessian 矩阵。 QP 子问题过程:
|
| 缩放搜索方向的乘法因子(请参阅公式 29) |
| 当前信赖域半径 |
fminbnd 和 fzero
下表描述了特定于 fminbnd
和 fzero
的输出标题。
fminbnd 或 fzero 的输出标题 | 显示的信息 |
---|---|
|
|
| 算法的当前点 |
fminsearch
下表描述了特定于 fminsearch
的输出标题。
fminsearch 的输出标题 | 显示的信息 |
---|---|
| 当前单纯形中的最小函数值 |
| 当前迭代中的单纯形过程。过程包括:
有关详细信息,请参阅fminsearch Algorithm。 |
fminunc
下表描述了特定于 fminunc
的输出标题。
fminunc 的输出标题 | 显示的信息 |
---|---|
| 当前迭代中采用的共轭梯度迭代次数(请参阅预条件共轭梯度法) |
| 缩放搜索方向的乘法因子(请参阅公式 11) |
fminunc
'quasi-newton'
算法可以在 First-order optimality
列的右侧发出 skipped update
消息。此消息表示 fminunc
没有更新其 Hessian 矩阵估计值,因为生成的矩阵不是正定矩阵。该消息通常指示目标函数在当前点处不平滑。
fsolve
下表描述了特定于 fsolve
的输出标题。
fsolve 的输出标题 | 显示的信息 |
---|---|
| 函数沿搜索方向的梯度 |
| Levenberg-Marquardt 方法中定义的 λk 值 |
| 函数的残差(平方和) |
| 当前信赖域半径(信赖域半径的范数变化) |
intlinprog
下表描述了特定于 intlinprog
的输出标题。
intlinprog 的输出标题 | 显示的信息 |
---|---|
| 探查的节点的累积数 |
| 自 |
| 找到的整数可行点的数量 |
| 找到的最佳整数可行点的目标函数值。此值是最终目标函数值的上界 |
| 其中
注意 虽然您将 |
linprog
下表描述了特定于 linprog
的输出标题。每个算法都有自己的迭代输出。
linprog 的输出标题 | 显示的信息 |
---|---|
| 原始不可行性,约束违反度的一种度量,在解处应为零。 有关定义,请参阅预测-校正 ( |
| 对偶不可行性,拉格朗日导数的一种度量,在解处应为零。 有关拉格朗日函数的定义,请参阅预测-校正。有关对偶不可行性的定义,请参阅预测-校正 ( |
| 上界可行性。{x} 指那些具有有限上界的 x。此值是内点传统线性规划中的 ru 残差。 |
| 原始目标和对偶目标之间的对偶间隙(请参阅内点传统线性规划)。仅当问题具有有限上界时, |
| 总相对误差,在主算法的末尾有介绍 |
| 拉格朗日乘数乘以与边界的距离的一种度量,在解处应为零。请参阅停止条件中的 rc 变量。 |
|
|
lsqlin
lsqlin
'interior-point'
迭代输出继承自 quadprog
迭代输出。线性最小二乘:内点或活动集中解释了这些函数之间的关系。有关迭代输出的详细信息,请参阅quadprog。
lsqnonlin 和 lsqcurvefit
下表描述了特定于 lsqnonlin
和 lsqcurvefit
的输出标题。
lsqnonlin 或 lsqcurvefit 的输出标题 | 显示的信息 |
---|---|
| 函数沿搜索方向的梯度 |
| Levenberg-Marquardt 方法中定义的 λk 值 |
| 在 |
| 函数的残差向量 |
quadprog
下表描述了特定于 quadprog
的输出标题。只有 'interior-point-convex'
算法具有迭代输出。
quadprog 的输出标题 | 显示的信息 |
---|---|
| 原始不可行性,定义为 |
| 对偶不可行性,定义为 |
| 非活动不等式的拉格朗日乘数的最大绝对值的一种度量,在解处应为零。在不可行性检测中此量为 g。 |