Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

迭代输出

简介

迭代输出包含一系列的统计量,用来描述求解器在每次迭代中的计算。统计量取决于求解器和求解器算法。当您使用适当的选项运行求解器时,该表会出现在 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' 算法

常见标题

下表列出了迭代输出的一些常见项目标题。

标题显示的信息

f(x)Fval

当前目标函数值;对于 fsolve,是函数值向量的范数的平方

First-order optimality

一阶最优性度量(请参阅一阶最优性度量

Func-countF-count

函数计算次数;请参阅迭代和函数计算次数

IterationIter

迭代编号;请参阅迭代和函数计算次数

Norm of step

当前步的大小(表示为欧几里德范数,或 2-范数)。对于 'trust-region''trust-region-reflective' 算法,当存在约束时,Norm of stepD*s 的范数。此处,s 是步长,D 是算法说明的信赖域子问题部分中所述的对角线缩放矩阵。

函数特定项目标题

本节中的表介绍各优化函数的迭代输出中的特定项目标题。

fgoalattain、fmincon、fminimax 和 fseminf

下表描述了特定于 fgoalattainfminconfminimaxfseminf 的输出标题。

fgoalattain、fmincon、fminimax 或 fseminf 的输出标题显示的信息

Attainment factor

fgoalattain 的达到因子的值

CG-iterations

当前迭代中采用的共轭梯度迭代次数(请参阅预条件共轭梯度法

Directional derivative

目标函数沿搜索方向的梯度

Feasibility

最大约束违反度,其中满足条件的不等式约束计为 0

Line search steplength

缩放搜索方向的乘法因子(请参阅公式 29

Max constraint

内部构造的和用户提供的所有约束的最大违反度;当没有绑定约束时,可以为负值

Objective value

fminimax 的 minimax 问题的非线性规划重新表示的目标函数值

Procedure

Hessian 矩阵更新过程:

  • Infeasible start point

  • Hessian not updated

  • Hessian modified

  • Hessian modified twice

有关详细信息,请参阅更新 Hessian 矩阵

QP 子问题过程:

  • dependent - 求解器检测到并删除了相关(冗余)等式约束。

  • Infeasible - 具有线性化约束的 QP 子问题不可行。

  • Overly constrained - 具有线性化约束的 QP 子问题不可行。

  • Unbounded - 具有大负曲率的 QP 子问题可行。

  • Ill-posed - QP 子问题搜索方向太小。

  • Unreliable - QP 子问题似乎是病态的。

Steplength

缩放搜索方向的乘法因子(请参阅公式 29

Trust-region radius

当前信赖域半径

fminbnd 和 fzero

下表描述了特定于 fminbndfzero 的输出标题。

fminbnd 或 fzero 的输出标题显示的信息

Procedure

fminbnd 的过程:

  • initial

  • golden(黄金分割搜索)

  • parabolic(抛物线插值)

fzero 的过程:

  • initial(初始点)

  • search(搜索包含零的区间)

  • bisection

  • interpolation(线性插值或逆二次插值)

x

算法的当前点

fminsearch

下表描述了特定于 fminsearch 的输出标题。

fminsearch 的输出标题显示的信息

min f(x)

当前单纯形中的最小函数值

Procedure

当前迭代中的单纯形过程。过程包括:

  • initial simplex

  • expand

  • reflect

  • shrink

  • contract inside

  • contract outside

有关详细信息,请参阅fminsearch Algorithm

fminunc

下表描述了特定于 fminunc 的输出标题。

fminunc 的输出标题显示的信息

CG-iterations

当前迭代中采用的共轭梯度迭代次数(请参阅预条件共轭梯度法

Line search steplength

缩放搜索方向的乘法因子(请参阅公式 11

fminunc 'quasi-newton' 算法可以在 First-order optimality 列的右侧发出 skipped update 消息。此消息表示 fminunc 没有更新其 Hessian 矩阵估计值,因为生成的矩阵不是正定矩阵。该消息通常指示目标函数在当前点处不平滑。

fsolve

下表描述了特定于 fsolve 的输出标题。

fsolve 的输出标题显示的信息

Directional derivative

函数沿搜索方向的梯度

Lambda

Levenberg-Marquardt 方法中定义的 λk

Residual

函数的残差(平方和)

Trust-region radius

当前信赖域半径(信赖域半径的范数变化)

intlinprog

下表描述了特定于 intlinprog 的输出标题。

intlinprog 的输出标题显示的信息

nodes explored

探查的节点的累积数

total time (s)

intlinprog 启动以来的时间(以秒为单位)

num int solution

找到的整数可行点的数量

integer fval

找到的最佳整数可行点的目标函数值。此值是最终目标函数值的上界

relative gap (%)

100(ba)|b|+1,

其中

  • b 是最佳整数可行点的目标函数值。

  • a 是目标函数值的最佳下界。

注意

虽然您将 RelativeGapTolerance 指定为十进制数字,但迭代输出和 output.relativegap 以百分比形报告该间隙,即测量的相对间隙的 100 倍。如果退出消息涉及相对间隙,则该值是测量的相对间隙,而不是百分比。

linprog

下表描述了特定于 linprog 的输出标题。每个算法都有自己的迭代输出。

linprog 的输出标题显示的信息

Primal Infeas A*x-bPrimal Infeas

原始不可行性,约束违反度的一种度量,在解处应为零。

有关定义,请参阅预测-校正 ('interior-point') 或主算法 ('interior-point-legacy') 或对偶单纯形算法

Dual Infeas A'*y+z-w-fDual Infeas

对偶不可行性,拉格朗日导数的一种度量,在解处应为零。

有关拉格朗日函数的定义,请参阅预测-校正。有关对偶不可行性的定义,请参阅预测-校正 ('interior-point') 或主算法 ('interior-point-legacy') 或对偶单纯形算法

Upper Bounds {x}+s-ub

上界可行性。{x} 指那些具有有限上界的 x。此值是内点传统线性规划中的 ru 残差。

Duality Gap x'*z+s'*w

原始目标和对偶目标之间的对偶间隙(请参阅内点传统线性规划)。仅当问题具有有限上界时,sw 才会出现在此方程中。

Total Rel Error

总相对误差,在主算法的末尾有介绍

Complementarity

拉格朗日乘数乘以与边界的距离的一种度量,在解处应为零。请参阅停止条件中的 rc 变量。

Time

linprog 已运行的时间(以秒为单位)

lsqlin

lsqlin 'interior-point' 迭代输出继承自 quadprog 迭代输出。线性最小二乘:内点或活动集中解释了这些函数之间的关系。有关迭代输出的详细信息,请参阅quadprog

lsqnonlin 和 lsqcurvefit

下表描述了特定于 lsqnonlinlsqcurvefit 的输出标题。

lsqnonlin 或 lsqcurvefit 的输出标题显示的信息

Directional derivative

函数沿搜索方向的梯度

Lambda

Levenberg-Marquardt 方法中定义的 λk

Resnorm

x 处的残差的 2-范数平方的值

Residual

函数的残差向量

quadprog

下表描述了特定于 quadprog 的输出标题。只有 'interior-point-convex' 算法具有迭代输出。

quadprog 的输出标题显示的信息

Primal Infeas

原始不可行性,定义为 max( norm(Aeq*x - beq, inf), abs(min(0, min(A*x-b))) )

Dual Infeas

对偶不可行性,定义为 norm(H*x + f - A*lambda_ineqlin - Aeq*lambda_eqlin, inf)

Complementarity

非活动不等式的拉格朗日乘数的最大绝对值的一种度量,在解处应为零。在不可行性检测中此量为 g。