Определения относительной и абсолютной толерантности в решателе Matlab

Я пытаюсь понять следующие определения Matlab для параметров RelTol и AbsTol:

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 ответов


когда вы выполняете оптимизацию, вам нужно решить, когда остановиться. Один из способов проверить, является ли ваше решение достаточно хорошим, - это проверить, значительно ли меняется решение. Существует два способа измерения изменения решения: относительное изменение (т. е. изменение%) или абсолютное изменение.

имеет смысл проверить относительное изменение, так как изменение 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.

поскольку решатель останавливается, когда выполняется любой из двух критериев, насколько близко вы приближаетесь к (локально) оптимальному решению определяется absTol или relTol. Например, если relTol составляет 10%, вы никогда не будете намного ближе, чем 10% к оптимальному решению, если ваше решение не будет около нуля, и в этом случае absTol критерий (скажем, 0.0001) удовлетворено до relTol критерий.