Введение
Ошибка округления в вычислениях, также называемая ошибкой округления, — это разница между результатом, полученным при использовании данного алгоритма с точной арифметикой, и результатом, полученным при использовании того же алгоритма с арифметикой конечной точности и округлением. Ошибки округления возникают из-за неточности представления вещественных чисел и арифметических операций с ними. Это одна из форм ошибки квантования. При использовании приближенных уравнений или алгоритмов, особенно при представлении вещественных чисел конечным числом знаков (которые теоретически имеют бесконечное число знаков), одной из задач численного анализа является оценка вычислительных ошибок. Вычислительные ошибки, также называемые численными ошибками, включают в себя как ошибки усечения, так и ошибки округления. При выполнении последовательности вычислений с использованием входных данных, содержащих какую-либо ошибку округления, ошибки могут накапливаться и иногда преобладать над результатом вычисления. В плохо обусловленных задачах может накапливаться значительная ошибка. В целом, в числовых расчетах существует два основных аспекта ошибок округления:
Возможность компьютеров представлять как величину, так и точность чисел принципиально ограничена. Определенные числовые операции крайне чувствительны к ошибкам округления. Это может быть связано как с математическими соображениями, так и со способом выполнения арифметических операций компьютерами.
the acrobatic movement, roundoff
In computing, a roundoff error, also called rounding error, is the difference between the result produced by a given algorithm using exact arithmetic and the result produced by the same algorithm using finite precision, rounded arithmetic. Rounding errors are due to inexactness in the representation of real numbers and the arithmetic operations done with them. This is a form of quantization error. When using approximation equations or algorithms, especially when using finitely many digits to represent real numbers (which in theory have infinitely many digits), one of the goals of numerical analysis is to estimate computation errors. Computation errors, also called numerical errors, include both truncation errors and roundoff errors. When a sequence of calculations with an input involving any roundoff error are made, errors may accumulate, sometimes dominating the calculation. In ill conditioned problems, significant error may accumulate. In short, there are two major facets of roundoff errors involved in numerical calculations:
The ability of computers to represent both magnitude and precision of numbers is inherently limited. Certain numerical manipulations are highly sensitive to roundoff errors. This can result from both mathematical considerations as well as from the way in which computers perform arithmetic operations.
Ошибка представления
Ошибка, возникающая при попытке представить число с помощью конечной строки цифр, является формой ошибки округления, называемой ошибкой представления. Вот несколько примеров ошибок представления в десятичных представлениях:
Обозначение | Представление | Приближение | Ошибка
------- | -------- | -------- | --------
1/7 | 0.142857 | 0.000000
ln 2 | 0.69314718055994530941 | 0.693147 | 0.00000018055994530941
log10 2 | 0.30102999566398119521 | 0.3010 | 0.00002999566398119521
1.25992104989487316476 | 1.25992 | 0.00000104989487316476
1.41421356237309504880 | 1.41421 | 0.00000356237309504880
e | 2.71828182845904523536 | 2.718281828459045 | 0.00000000000000023536
π | 3.14159265358979323846 | 3.141592653589793 | 0.00000000000000023846
Увеличение числа цифр, допустимых в представлении, уменьшает величину возможных ошибок округления, но любое представление, ограниченное конечным числом цифр, все равно будет вызывать некоторую степень ошибки округления для несчетного числа действительных чисел. Дополнительные цифры, используемые на промежуточных этапах вычисления, называются защитными цифрами. Многократное округление может привести к накоплению ошибки. Например, если 9.945309 округлить до двух десятичных знаков (9.95), а затем снова до одного десятичного знака (10.0), общая ошибка составит 0.054691. Округлить 9.945309 до одного десятичного знака (9.9) за один шаг приводит к меньшей ошибке (0.045309). Это может произойти, например, когда программное обеспечение выполняет арифметику в 80-битной арифметике с плавающей точкой x86, а затем округляет результат до 64-битной арифметики с плавающей точкой IEEE 754.
Система с плавающей запятой
По сравнению с системой чисел с фиксированной точкой, система чисел с плавающей точкой более эффективно представляет вещественные числа, поэтому она широко используется в современных компьютерах. В то время как вещественные числа бесконечны и непрерывны, система чисел с плавающей точкой является конечной и дискретной. Следовательно, в системе чисел с плавающей точкой возникает ошибка представления, приводящая к ошибке округления.
Нормализованная система плавающих цифр
Система с плавающей запятой считается нормализованной, если старшая цифра всегда ненулевая, за исключением случая, когда число равно нулю. Следует отметить, что при сложении двух чисел с плавающей запятой может возникнуть ошибка округления, если их сумма на несколько порядков превышает значение большего из этих чисел. Например, рассмотрим нормализованную систему чисел с плавающей запятой с основанием и точностью Тогда и Обратите внимание, что но возникает ошибка округления. Этот тип ошибки может возникать одновременно с ошибкой абсорбции в ходе одной операции.
This kind of error can occur alongside an absorption error in a single operation.
Умножение
В общем случае, произведение двух чисел с мантиссой из p цифр содержит до 2p цифр, поэтому результат может не поместиться в мантиссу. Например, вычисление выражения "очевидным" методом неустойчиво вблизи из-за большой ошибки, возникающей при вычитании двух близких по значению чисел, в то время как эквивалентное выражение устойчиво.
Проблемы с некомпетентностью
Даже если используется устойчивый алгоритм, решение задачи может быть неточным из-за накопления ошибки округления, если сама задача является плохо обусловленной. Число обусловленности задачи — это отношение относительного изменения решения к относительному изменению входных данных. Задача считается хорошо обусловленной, если небольшие относительные изменения входных данных приводят к небольшим относительным изменениям решения. В противном случае задача является плохо обусловленной. Иными словами, задача плохо обусловлена, если её число обусловленности значительно больше 1. Число обусловленности вводится как мера ошибок округления, которые могут возникнуть при решении плохо обусловленных задач.