公差和停止条件

迭代的优化的数量取决于解算器的停止标准。这些标准包括几个公差你可以设置。一般情况下,公差是一个门槛,如果交叉,停止求解器的迭代。

设定容差和采用其他标准optimoptions在解释设置和更改选项

小费

通常设定的公差,例如OptimalityToleranceStepTolerance大大高于EPS和通常高于1E-14。设置小的公差并不总是导致准确的结果。相反,求解器可能会失败时,它已经融合识别,并可以继续徒劳的迭代。容差值小于EPS有效地禁用停止条件。这个技巧并不适用于fzero,它使用的默认值EPS为了TolX公差。

您可以在默认的公差优化应用。一些默认公差不同的算法不同,因此同时设置了解算器和该算法。

optimoptions显示公差。例如,

选项= optimoptions('fmincon');[options.OptimalityTolerance,options.FunctionTolerance,options.StepTolerance]
ANS = 1.0E-06 * 1.0000 1.0000 0.0001

您还可以找到在求解函数引用页面的选项部分的默认公差。

  • StepTolerance是下限上的台阶的尺寸,这意味着的范数X一世-X一世+1。如果求解器试图采取这一步骤是小于StepTolerance,迭代结束。StepTolerance通常用作一相对的结合的,这意味着迭代结束时|(X一世-X一世+1)|<StepTolerance*(1 + |X一世|)或类似的相对度量。看到宽容详细

  • 对于一些算法,FunctionTolerance是一个下界中的工序在目标函数的值的变化。对于这些算法,如果|FX一世) -FX一世+1)|<FunctionTolerance,迭代结束。FunctionTolerance通常用作一相对的结合的,这意味着迭代结束时|FX一世) -FX一世+1)|<FunctionTolerance*(1 + |FX一世)|)或类似的相对度量。看到宽容详细

    注意

    不像其他的解决者,fminsearch停止时,它满足TolFun(功能公差)和TolX(步骤公差)。

  • OptimalityTolerance是第一阶最优措施的公差。如果最优措施不足OptimalityTolerance,迭代结束。OptimalityTolerance也可以结合在第一阶最优测量相对。看到宽容详细。第一阶最优量度中所定义一阶最优性措施

  • ConstraintTolerance由上结合上的任何约束函数的幅度。如果求解器返回一个点XCX)>ConstraintTolerance要么|CEQX)|>ConstraintTolerance,解算器报告该约束是在侵犯XConstraintTolerance也可以是结合的相对的。看到宽容详细

    注意

    ConstraintTolerance从其它的公差不同地操作。如果ConstraintTolerance不满足(即,如果约束函数的幅度超过ConstraintTolerance),解算器尝试继续,除非它被暂停的另一个原因。求解器不停止,只是因为ConstraintTolerance满足。

  • MaxIterations是结合在求解器的迭代次数。MaxFunctionEvaluations是结合在函数评估的数目。迭代和功能评价是在论述迭代和函数计算

有适用于特定求解另外两个公差:TolPCGMaxPCGIter。这些涉及到预条件共轭梯度的步骤。欲了解更多信息,请参阅预处理共轭梯度法

有迹象表明,仅适用于若干容限fmincon内点算法。欲了解更多信息,请参阅内点法fmincon选项

有迹象表明,仅适用于若干容限intlinprog。看到一些“整数”的解决方案是不是整万博 尤文图斯数分枝限界

相关话题