Как вычислить погрешность, при которой два числа с плавающей точкой можно считать равными? При реализации алгоритмов вычислительной геометрии, пользуясь книгой Окулова "Программирование в алгоритмах", столкнулся с проблемой использования "магического" числа, а точнее реализация алгоритма в книге подразумевала погрешность в 10^(-3) и меня заинтересовало откуда было взято это число.Алгоритм проверки равенства:ЕСЛИ |a - b| <= eps ТО числа равныИНАЧЕ числа не равны,где eps - и есть та самая погрешность.
Для вычисления погрешности, при которой два числа с плавающей запятой можно считать равными, можно использовать формулу:
eps = max(|a|, |b|) * epsilon,
где epsilon - это маленькое число, обычно принимаемое за машинный ноль, например 10^(-16) для типа данных double.
В вашем случае, если в книге Окулова была установлена погрешность eps = 10^(-3), возможно, это было сделано для обработки результатов вычислений с учетом конкретных задач, связанных с геометрией.
Рекомендуется выбирать значение погрешности eps, исходя из особенностей конкретной задачи и требуемой точности результата.
Для вычисления погрешности, при которой два числа с плавающей запятой можно считать равными, можно использовать формулу:
eps = max(|a|, |b|) * epsilon,
где epsilon - это маленькое число, обычно принимаемое за машинный ноль, например 10^(-16) для типа данных double.
В вашем случае, если в книге Окулова была установлена погрешность eps = 10^(-3), возможно, это было сделано для обработки результатов вычислений с учетом конкретных задач, связанных с геометрией.
Рекомендуется выбирать значение погрешности eps, исходя из особенностей конкретной задачи и требуемой точности результата.