迭代次数和函数计数

通常,优化工具箱™求解器会迭代以找到最优解。求解器从一个初始值开始x0,执行一些中间计算,最终到达一个新的点x1,然后重复这一过程,以求得逐次逼近x2,x3.,……局部最小值。经过一定次数的迭代后,处理停止k

属性,可以限制迭代次数或函数计数MaxIterationsMaxFunctionEvaluations用于求解器的选项optimoptions。或者,如果您想让求解器在达到其中一个限制后继续执行,请提高这些选项的值。看到设置和更改选项

在任何步骤中,中间计算都可能涉及评估目标函数和当前迭代附近的任何约束x。例如,求解者可以通过有限差分估计一个梯度。在附近的每个点,函数计数(F-count)增加1。这个数字典型的三维迭代表明,在具有正向有限差分大小delta的三维空间中,一次迭代通常对应增加4个函数。图中,e表示的单位向量坐标方向。

典型的三维迭代

  • 如果问题没有约束,则F-count报告目标函数评估的总数。

  • 如果问题有约束,则F-count只报告发生函数计算的点数,而不是约束函数计算的总数。所以,如果问题有很多约束条件F-count可以明显小于函数求值的总数。

有时,解算者尝试一步并拒绝该尝试。的信赖域,trust-region-reflective,trust-region-dogleg算法将这些失败的尝试计数为迭代,并在迭代显示中报告(未更改的)结果。的内点,有效集,levenberg-marquardt算法不将失败的尝试计数为迭代,也不在迭代显示中报告尝试。所有尝试的步骤都会增加F-count,不管算法是什么。

F-count是许多求解器迭代显示中的标头。例如,看到的解释结果

F-count在输出结构中显示为output.funcCount,使您能够以编程方式访问计算计数。有关更多信息,请参见输出结构

另请参阅

相关的话题