Matlab求解器中的相对和绝对公差定义



我正在尝试理解RelTol和AbsTol参数的以下Matlab定义:

RelTol——此公差是相对于每个解决方案组件。粗略地说,它控制着所有解决方案组件,除了那些小于阈值AbsTol(i)的组件。默认情况下,1e-3对应于0.1%的准确度。AbsTol——AbsTol(i)是一个阈值,低于该阈值,第i个解的值组件不重要。绝对误差公差决定精度当解接近零时

我不明白为什么AbsTol在解接近零时确定精度(事实上,如果我的问题的解是7000公里半径的圆形轨道,这就不满足它),以及为什么RelTol控制所有解分量中正确数字的数量,除了那些小于阈值AbsTol(I)的数字。确定每个公差的实际表达式是什么?我想得到更简单易懂的定义。

执行优化时,需要决定何时停止。检查您的解决方案是否足够好的一种方法是检查解决方案是否仍在发生显著变化。有两种方法可以衡量解决方案的变化程度:相对变化(即%变化)或绝对变化。

检查相对变化是很有意义的,因为当溶液在1左右时,5的变化意味着与在100000左右时非常不同。因此,优化例程在每次迭代i检查abs(1-x(i)/x(i-1))<relTol,即,新的解决方案自上次迭代以来改变了多少分数。请注意,如果同时优化多个参数,x可以是一组解决方案(因此解决方案具有"多个组件")。当然,在停止进一步优化之前,您希望满足所有"解决方案组件"的条件。

然而,由于x/0是未定义的,因此当解决方案在零左右时,相对公差就成了问题。因此,同样关注值的绝对变化,并在abs(x(i)-x(i-1))<absTol时退出优化是有意义的。如果选择足够小的absTol,则只有relTol才适用于大型解决方案,而只有当解决方案位于0附近时,absTol才具有相关性。

由于解算器在满足这两个标准中的任何一个时都会停止,因此您离(局部)最优解的距离由absTolrelTol决定。例如,如果relTol是10%,那么你永远不会接近最优解的10%,除非你的解大约为零,在这种情况下,在relTol标准之前满足absTol标准(比如0.0001)。

相关内容

  • 没有找到相关文章