我试图了解以下有关RelTol和AbsTol参数的Matlab定义:

RelTol-此公差是相对于每个尺寸的误差的度量
解决方案组件。大致来说,它控制着所有数字的正确位数
解决方案组件,但小于阈值AbsTol(i)的组件除外。默认情况下,
1e-3,对应于0.1%的精度。

AbsTol — AbsTol(i)是一个阈值,低于该阈值时,第ith个解决方案的值
组件不重要。绝对误差容限决定精度
当解接近零时。

我不明白为什么AbsTol会在解决方案接近零时确定精度(实际上,如果我的问题的解决方案是半径为7000 km的圆形轨道,那么它将不满足),以及为什么RelTol控制所有解决方案组成部分中的正确位数,但小于阈值AbsTol(i)的除外。确定每种公差的实际表达式是什么?我想获得更简单易懂的定义。

最佳答案

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

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

但是,当解近似为零时,相对公差将成为问题,因为x/0是未定义的。因此,有意义的是还要查看值的绝对变化,并在使用abs(x(i)-x(i-1))<absTol时退出优化。如果选择的absTol足够小,则只有大解决方案才有意义的relTol,而absTol仅在解决方案的值大约为0时才有意义。

由于求解器在满足两个条件中的任何一个时都会停止,因此您可以通过absTolrelTol来确定离(局部)最优解的接近程度。例如,如果relTol为10%,那么除非您的解决方案约为零,否则您永远不会比10%接近最优解。在这种情况下,在absTol准则之前满足relTol准则(例如0.0001)。

关于matlab - Matlab求解器中的相对公差和绝对公差定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8961844/

10-12 18:08