【问题标题】:Relative and absolute tolerance definitions in Matlab solverMatlab求解器中的相对和绝对公差定义
【发布时间】:2012-02-16 05:23:32
【问题描述】:

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

RelTol — 此容差是相对于每个尺寸的误差的度量
解决方案组件。粗略地说,它控制了所有正确数字的数量
解决方案组件,除了那些小于阈值 AbsTol(i) 的组件。默认值,
1e-3,对应于 0.1% 的准确度。

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

我不明白为什么 AbsTol 在解决方案接近零时确定精度(实际上,如果我的问题的解决方案是半径为 7000 公里的圆形轨道,这不符合它)以及为什么 RelTol 控制正确位数所有解决方案组件,除了那些小于阈值 AbsTol(i) 的组件。确定每个公差的实际表达式是什么?我希望得到更简单易懂的定义。

【问题讨论】:

    标签: matlab parameters integration document definitions


    【解决方案1】:

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

    检查相对变化很有意义,因为当解在 1 左右与在 100000 左右时变化 5 意味着非常不同。因此,优化例程在每次迭代时检查 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 标准(例如,0.0001)之前已经满足relTol 标准。

    【讨论】:

    • 感谢您的回答。我还是有些疑惑:为什么 RelTol 控制解中正确位数?如果任何解决方案组件小于 AbsTol,我如何控制正确数字的数量?
    猜你喜欢
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    相关资源
    最近更新 更多