迭代的优化的数量取决于解算器的停止标准。这些标准包括几个公差你可以设置。一般情况下,公差是一个门槛,如果交叉,停止求解器的迭代。
设定容差和采用其他标准optimoptions
在解释设置和更改选项。
通常设定的公差,例如OptimalityTolerance
和StepTolerance
大大高于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
是一个下界中的工序在目标函数的值的变化。对于这些算法,如果|F(X一世) -F(X一世+1)|<FunctionTolerance
,迭代结束。FunctionTolerance
通常用作一相对的结合的,这意味着迭代结束时|F(X一世) -F(X一世+1)|<FunctionTolerance
*(1 + |F(X一世)|)或类似的相对度量。看到宽容详细。
不像其他的解决者,fminsearch
停止时,它满足都TolFun
(功能公差)和TolX
(步骤公差)。
OptimalityTolerance
是第一阶最优措施的公差。如果最优措施不足OptimalityTolerance
,迭代结束。OptimalityTolerance
也可以结合在第一阶最优测量相对。看到宽容详细。第一阶最优量度中所定义一阶最优性措施。
ConstraintTolerance
由上结合上的任何约束函数的幅度。如果求解器返回一个点X同C(X)>ConstraintTolerance
要么|CEQ(X)|>ConstraintTolerance
,解算器报告该约束是在侵犯X。ConstraintTolerance
也可以是结合的相对的。看到宽容详细。
ConstraintTolerance
从其它的公差不同地操作。如果ConstraintTolerance
不满足(即,如果约束函数的幅度超过ConstraintTolerance
),解算器尝试继续,除非它被暂停的另一个原因。求解器不停止,只是因为ConstraintTolerance
满足。
MaxIterations
是结合在求解器的迭代次数。MaxFunctionEvaluations
是结合在函数评估的数目。迭代和功能评价是在论述迭代和函数计算。
有适用于特定求解另外两个公差:TolPCG
和MaxPCGIter
。这些涉及到预条件共轭梯度的步骤。欲了解更多信息,请参阅预处理共轭梯度法。
有迹象表明,仅适用于若干容限fmincon
内点算法。欲了解更多信息,请参阅内点法在fmincon
选项
。
有迹象表明,仅适用于若干容限intlinprog
。看到一些“整数”的解决方案是不是整万博 尤文图斯数和分枝限界。