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

14

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

RelTol — 此公差是相对于每个解分量的大小的误差度量标准。粗略地说,它控制所有解分量中正确数字的数量,除了小于阈值AbsTol(i)的那些分量。默认值1e-3对应于0.1%的精度。
AbsTol — AbsTol(i)是第i个解分量的值低于其阈值时该值不重要。当解接近零时,绝对误差容限确定其准确性。

我不明白为什么AbsTol在解接近零时决定准确性(事实上,如果我的问题的解是半径为7000 km的圆形轨道,则不符合此条件),以及为什么RelTol控制所有解分量中正确数字的数量,除了小于阈值AbsTol(i)的那些分量。有哪些确定每个公差的实际表达式?我想得到更简单易懂的定义。

1个回答

18
当你进行优化时,需要决定何时停止。检查解决方案是否仍在显著变化是判断解决方案是否足够好的方法之一。衡量解决方案变化的方式有两种:相对变化(即百分比变化)和绝对变化。
检查相对变化很有道理,因为当解决方案在1左右时,5的变化意义与在100000左右时完全不同。因此,优化程序在每次迭代i时检查 abs(1-x(i)/x(i-1))<relTol,即新解决方案自上次迭代以来变化了多少倍。请注意,如果您同时优化多个参数,则x可以是解决方案数组(因此解决方案具有“多个组件”)。当然,在继续优化之前,您希望所有“解决方案组件”都满足该条件。
然而,当解决方案接近零时,相对公差成为问题,因为 x/0 是未定义的。因此,在值的绝对变化方面也要考虑,并在 abs(x(i)-x(i-1))<absTol 时退出优化。如果选择足够小的absTol,则只有在解决方案位于零附近时才会使用absTol,而大解决方案则只有relTol起作用。
由于求解器在满足两个标准之一时停止,因此您接近(局部)最优解的程度取决于absTolrelTol。例如,如果 relTol 为10%,除非解决方案接近零,在这种情况下 absTol 的标准(如0.0001)将先于 relTol 的标准得到满足,否则您永远不会比最优解更接近10%。

1
谢谢您的回答。我仍然有一些疑问:为什么RelTol控制解决方案中正确数字的数量?如果任何解决方案组件小于AbsTol,我如何控制正确数字的数量? - julianfperez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接