Погрешности при преобразованиях и округлениях
Введение: почему важны погрешности
Погрешности возникают на каждом этапе вычислений: при измерениях, при переводе единиц, при представлении чисел в компьютере и при округлениях для вывода. Неправильная оценка или игнорирование погрешностей может привести к ошибочным выводам, потере значимости результата или накоплению ошибок при последовательных операциях. В учебном курсе важно понимать не только численные значения погрешностей, но и их природу и способы контроля.
В этом разделе мы даём базовые понятия и формулы, которые помогают формализовать понятие погрешности и перейти от качественных рассуждений к количественным оценкам. Это позволит анализировать, как малые отклонения данных отражаются на итоговых результатах и как минимизировать влияние округлений и преобразований.
Определения основных типов погрешностей
Абсолютная погрешность - значение, характеризующее разницу между истинным значением величины и её приближённым значением:
Относительная погрешность - отношение абсолютной погрешности к модулю истинного значения, дающее представление о размере ошибки относительно величины:
Эти две величины часто используются совместно: абсолютная погрешность показывает «насколько» ошибается значение в тех же единицах, в которых измерялась величина, а относительная — насколько значима эта ошибка по сравнению с самой величиной. Для малых величин относительная погрешность может быть очень большой даже при малой абсолютной ошибке.
Погрешности при округлении и переводе единиц
Округление — это замена числа другим, имеющим более простую запись. При округлении сохраняют лишь ограниченное число значимых цифр, что приводит к дополнительной (внешней) погрешности. Формулу записи результата округления при округлении до n десятичных знаков можно описать так:
Ограничение разности между точным и округлённым значением даёт верхнюю оценку погрешности округления:
При переводе единиц измерения абсолютная погрешность масштабируется вместе с величиной: если длину в метрах умножить на коэффициент перевода в сантиметры, то абсолютная погрешность умножается на тот же коэффициент. Это можно записать кратко как:
Погрешности при арифметических операциях
При сложении или вычитании абсолютные погрешности суммируются в худшем случае, что даёт простую верхнюю оценку для ошибки результата:
При умножении и делении удобнее оперировать относительными погрешностями. Для произведения двух величин относительную погрешность итогового результата можно при малых отклонениях аппроксимировать суммой относительных погрешностей множителей:
Более формально, при малых приращениях функция может быть линеаризована с помощью производной, и приращение функции оценивается как произведение производной на приращение аргумента: . Этот приём используется для оценки изменения сложных выражений и дает базовую методику для оценки погрешностей при нелинейных преобразованиях.
Погрешности, связанные с представлением чисел в компьютере
Компьютер хранит числа в ограниченном формате с конечным числом разрядов мантиссы и экспоненты (плавающая точка). Общая форма нормализованного представления в двоичной системе имеет вид:
Характерной величиной точности формата является машинный эпсилон, которая для формата с p бит мантиссы определяется как: . Практически используют также понятие единицы округления или «дельты» округления:
При выполнении базовых операций в плавающей точке результат фактически равен истинной операции, умноженной на множитель, близкий к единице: . Это удобная модель для последующего анализа накопления ошибок.
Феномены: вычитание почти равных величин и потеря значащих цифр
Одним из опасных эффектов является «вырождение» при вычитании почти равных чисел: значимые цифры взаимно компенсируются, и относительная ошибка результата может сильно возрасти. В грубой оценке это выражается так:
Избежать потери значимости можно при помощи алгебраических преобразований выражения до вычисления, использования более высокой точности или применения специальных алгоритмов, снижающих влияние такой отмены.
Условность задачи и численная обусловленность
Численная обусловленность - свойство математической задачи, характеризующее чувствительность решения к малому изменению входных данных. Условность функции в точке может быть выражена через условное число:
Численная обусловленность не зависит от конкретного алгоритма: она показывает, насколько проблема «плохо» поставлена сама по себе. При плохо обусловленной задаче даже идеально точный алгоритм даст большие относительные изменения результата при малых изменениях входа.
Переходные и обратные ошибки (forward/backward)
Обратная погрешность - мера, показывающая, насколько надо изменить входные данные, чтобы получить именно вычисленный результат. Формально вычисленный результат можно представить как значение точной функции на слегка изменённых входных данных:
Понимание разницы между прямой (forward) и обратной (backward) погрешностью помогает оценивать качество алгоритма: маленькая обратная погрешность означает, что найденный результат точен для слегка модифицированной исходной задачи.
Накопление ошибок при суммировании длинного ряда и методы компенсации
При последовательном выполнении операций погрешности умножаются или суммируются, в результате чего итоговое отклонение может расти с числом операций. Для произведения множителей с малыми относительными погрешностями можно записать приближение:
Для суммирования многих слагаемых используются алгоритмы, снижающие накопление ошибки. Один из наиболее известных приёмов — алгоритм Кахана для суммирования с компенсацией, где на каждой итерации корректирующая переменная хранит потерянную часть. Шаг алгоритма можно описать последовательностью выражений: {FORMULA_17}
Применение таких методов особенно важно при суммировании большого количества чисел разного порядка величины: без компенсации мелкие слагаемые могут «утонуть» в сумме более крупных, что приводит к значительной потере информации.
Практические рекомендации и примеры
Пример 1. Округление длины до двух знаков после запятой: если требуется округлить величину, вычисляют сначала сдвиг на десятичный множитель, затем округление и обратный сдвиг. Формально: . Верхняя оценка погрешности округления для такого случая: .
Пример 2. При переводе метров в сантиметры абсолютная погрешность масштабируется как в формуле: . Это означает, что если изначальная абсолютная погрешность была мала, то после масштабирования абсолютная погрешность также увеличится в том же соотношении.
Пример 3. Если программа считает сумму большого количества чисел, рекомендуется применять компенсационные алгоритмы (см. {FORMULA_17}) или суммировать числа от меньших к большим по модулю, чтобы уменьшить эффект утопления малых слагаемых.
Итоги: контроль и оценка погрешностей
Практически всегда при вычислениях необходимо дать числовую оценку погрешности результата и указать, какого порядка точности следует ожидать. Это помогает верно интерпретировать полученные значения и принимать решения на основе данных.
Ключевые идеи: понимать источник ошибки, выбирать подходящие оценки (абсолютную или относительную), применять аналитические приёмы линейной аппроксимации для оценки её распространения и использовать алгоритмы, минимизирующие накопление ошибок. Это позволяет контролировать влияние округлений и преобразований на итоговые результаты.