Погрешности при компьютерных расчетах

При использовании компьютеров погрешности вычислений возникают не только вследствие вышеназванных причин. Даже при вычислении по «точным» формулам возможно получение результата с погрешностью, являющейся следствием способа представления чисел в компьютере.

В обиходе мы используем позиционную систему счисления с основанием 10. Последнее означает, что любое число есть взятая с определенным знаком упорядоченная выборка из десяти цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Любое число в этой системе записывается по формуле

Например, число 43,062 можно представить в виде

В компьютере вследствие использования запоминающих устройств, которые могут находиться только в одном из двух состояний, применяется позиционная система счисления с основанием 2, т.е. любое число есть взятая с определенным знаком выборка из множества цифр {0, 1}. В этой системе любое число записывается по формуле

Здесь коэффициенты Ру — двоичные цифры (0, 1). Например, число 20,5, записанное в десятичной форме, при представлении в двоичной системе записывается так:

По форме представления, способу хранения и реализации арифметических операций в компьютерах используются два разных типа чисел: целые и вещественные.

В компьютерах целые числа представляются в виде

где L — стандартное для данного типа компьютера число, которое характеризует количество разрядов, отводимых для представления целых чисел. Поскольку 2L +2L_1 +... + 2+ 2°-2L+1 -1, то для представления целых чисел отводится L + 1 разряд (один разряд для хранения знака числа). Так, для современных компьютеров величина L + 1 = 32. Это означает, что наибольшее целое число в компьютерах этого типа есть 232 -1 ~ 4,2-109.

Примечание 1.1. Если арифметические операции над целыми числами приводят к результатам, не выходящим за пределы этой величины, то такие результаты считаются точными. В противном случае возникают непредсказуемые погрешности, о чем пользователь не уведомляется.

Для представления вещественных чисел часто используется нормализованная форма представления с плавающей запятой. В этом случае вещественное число представляется в виде

где Yj, Уг> Yс — двоичные цифры, причем всегда равна единице; t — разрядность мантиссы; р — целое число, называемое двоичным разрядом вещественного числа.

Пример 1.4

Рассмотрим десятичное число 20,5. В двоичной системе оно запишется так: 20,5 = (10100,1)2. Чтобы записать это число в нормализованной форме, необходимо переместить двоичную точку на пять порядков влево. Следовательно, в машинном виде 20,5 = (0,101001)2 • 25.

Число p = ±(yt -2-12-2~2+... +yr-2_f) в формуле (1.5) называется мантиссой числа х. В компьютерах определенного типа количество цифр в мантиссе всегда постоянно. Так, если для хранения мантиссы отводится четыре байта, то мантисса имеет разрядность, соответствующую числу с семью десятичными знаками. Именно это обстоятельство приводит к погрешности округления при расчетах на компьютере. При округлении по усечению граница относительной погрешности округления (представления) равна единице первого отброшенного порядка мантиссы, т.е. е(х*) = ем= 21-t. В этом случае при t = 7 машинная точность еы < 0,0001%. При восьмибайтовом же представлении мантиссы машинная точность ем < 10~14.

Порядок двоичного числа также записывается в двоичной форме:

и для его представления необходимо (т + 2) двоичных разрядов.

Примечание 1.2. В компьютере практически все числа представляются некоторыми их приближениями. Так, десятичное число 0,1 не может быть точно представлено в нормализованной форме с плавающей запятой (в двоичной системе счисления, например, дробь 1/10 превращается в последовательность 0,000110011...). Невозможно представить и иррациональное число (число я, V2 и т.п.). Даже число 0 требует особого представления.

Примечание 1.3. Для представления порядка используется конечное число (т + 1) двоичных разрядов. Поэтому |р| < ртах = = 2T+1 - 1. Величина ртах называется машинной бесконечностью: р^= 2T+1 - 1. Она ограничивает значения машинных чисел по модулю. Попытка превысить число р„ приводит к аварийному останову компьютера из-за переполнения.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >