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

标签 matlab parameters integration document definitions

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

RelTol — This tolerance is a measure of the error relative to the size of each
solution component. Roughly, it controls the number of correct digits in all 
solution components, except those smaller than thresholds AbsTol(i).The default,
1e-3, corresponds to 0.1% accuracy.

AbsTol — AbsTol(i) is a threshold below which the value of the ith solution 
component is unimportant. The absolute error tolerances determine the accuracy 
when the solution approaches zero.

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

最佳答案

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

检查相对变化很有意义,因为当解在 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 附近时才变得相关。

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

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

相关文章:

linux - 在 zsh 中按模式拆分

parameters - SSRS 2008 : Some Multi-Value Paramaters Blank/Unselectable When Creating Subscriptions

javascript - 如何将 Quasar UI 集成到 Astro SSG 中

matlab - 使用 MATLAB,如何找到移动平均线?

matlab - 删除单词列表中的重复元素并计算重复次数

matlab - 如何加载文本文件并存储到数据结构中

configuration - spread 启动后直接退出

matlab - 神经网络的学习曲线

parameters - Laravel 4. 将参数传递给部分

c++ - C++ 中的数值积分