Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
176
Добавлен:
16.05.2015
Размер:
3.82 Mб
Скачать

1.15. Погрешности, связанные с вычислениями на компьютере Представление числовых данных в памяти компьютера

Представление чисел в форме с фиксированной запятой. Для хранения вещественных чисел в памяти компьютера в основном используются два способа: с фиксированной и плавающей запятой (точкой). Запоминающее устройство персонального компьютера состоит из множества базисных элементов (элементарных ячеек памяти), в каждом из которых можно записать одну двоичную цифру (0 или 1). Под запись вещественного числа выделяется некоторое фиксированное число ячеек памяти – обозначим его через k. Кроме того, еще одну ячейку выделяют для записи знака числа, куда помещается цифра 0, если число положительное, и 1, если оно отрицательное. Таким образом, в памяти компьютера числа хранятся в двоичной системе счисления.

Будем считать, что вещественное число а уже переведено в двоичную систему счисления, и представлено в виде бесконечной двоичной дроби

(1.15.1)

Здесь двоичные цифры в записи числаа. Первая цифра не должна быть равна 0 и, следовательно, всегда равна 1. Остальные цифры могут быть равны 0 или 1.

При записи числа а в память компьютера в форме с фиксированной запятой оно также записывается в виде обычной двоичной дроби, но конечной, содержащей k двоичных разрядов. Кроме значения k, фиксируется также число разрядов после двоичной запятой . Значенияk и l определяются типом компьютера и используемым программным обеспечением. Поскольку число разрядов, отводимых под запись числа а конечно, лишние разряды справа отбрасываются. Поэтому в памяти компьютера оказывается не число а, а результат его округления. Обозначим его fix(a). Если , то

fix(a)=. (1.15.2)

В противном случае число а не может быть записано в память компьютера, и если такой случай возникает, то компьютер выдает сообщение об ошибке и вычисления прекращаются (происходит прерывание). Формула (1.15.2) представляет результат записи числа а в память компьютера, если используется несимметричное округление, когда лишние разряды просто отбрасываются. Но может быть применено и симметричное округление. Вид округления также определяется используемым программным обеспечением. Наибольшее положительное число, которое можно записать в форме с фиксированной запятой

,

.

Наименьшее положительное число, которое можно представить в форме с фиксированной запятой

,

Все числа вида представляются в компьютере нулем.

Числа с фиксированной запятой равномерно заполняют диапазон от дос шагом.

Оценим абсолютную погрешность округления при записи вещественного числа а в память компьютера в форме с фиксированной запятой. Если и числоа возможно записать, а округление используется несимметричное, то абсолютная погрешность равна

Поэтому

. (1.15.3)

Соответствующая оценка относительной погрешности

. (1.15.4)

В этом случае она зависит от а. На краях диапазона оценка относительной погрешности мала, но чем ближе к центру диапазона, чем меньше |fix(a)|, тем больше становится оценка относительной погрешности. Если , то оценка относительной погрешности становится равна.

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

, (1.15.5)

где – целое число, называемое порядком,r  основание системы счисления, M – вещественное число, называемое мантиссой числа а, удовлетворяющее неравенству

. (1.15.6)

Всякое вещественное число записывается в r  системе счисления в нормальной форме (1.15.5) единственным образом. Запишем, например, в нормальной форме число а, заданное формулой (1.15.1):

. (1.15.7)

В форме с плавающей запятой вещественное число а записывается так же, как в обычной нормальной форме, только для записи мантиссы отводится фиксированное число двоичных разрядов l, а также вводится диапазон целых чисел [Г1, Г2] (Г1<0, Г2>0), которому может принадлежать значение порядка. Значения l,определяются используемым программным обеспечением. Если значение порядка числаа не входит в этот диапазон, то число а не может быть записано в память компьютера, и если такой случай возникает, то выдается сообщение об ошибке и вычисления прерываются. Поскольку число разрядов для записи мантиссы ограничено, лишние разряды справа отбрасываются. Поэтому в памяти компьютера оказывается не число а, а результат его округления. Обозначим его .

Если ], то

. (1.15.8)

Если , то числоа не может быть записано в памяти компьютера, и если такой случай возникает, то компьютер выдает сообщение об ошибке и вычисления прекращаются (происходит прерывание). А если , то числоа будет заменено нулем (машинный ноль).

Формула (1.15.8) представляет результат записи числа а в память компьютера, если используется несимметричный способ округления (простое отбрасывание лишних разрядов). Но может быть применено и симметричное округление мантиссы. Способ округления определяется используемым программным обеспечением.

Наибольшее положительное число а, представленное в форме с плавающей запятой:

,

.

Наименьшее положительное число а, представляемое в форме с плавающей запятой:

.

.

Таким образом, в форме с плавающей запятой можно записывать вещественные числа из отрезка []. Все вещественные числаа из интервала () представляются при записи в память машины нулем (f l(a)=0).

Числа с плавающей запятой заполняют диапазон [], но заполняют его неравномерно. На границах этого диапазона расстояние между соседними числами равно. А в середине диапазона оно равно . Если подставить в эти формулы приведенные характерные значения, то расстояние между соседними числами на краю диапазона составит, а в центре –.

Оценим абсолютную погрешность округления при записи вещественного числа в память компьютера в форме с плавающей запятой. Если n[], а округление используется несимметричное, то абсолютная погрешностьf l(a) равна

Отсюда

. (1.15.9)

Эта оценка зависит от а, точнее от порядка а. Наименьшее значение абсолютная погрешность округления имеет при , когда а находится в центре диапазона, а наибольшее на краях диапазона при .

Соответствующая оценка относительной погрешности

. (1.15.10)

Эта оценка постоянна и не зависит от а в пределах диапазона и симметричного диапазона. Ее называют «машинный эпсилон» и обозначаютmacheps. Значения macheps для данных типа single, real и extended языка Pascal составляют 10-7, 10-15 и 10-19 ,соответственно.

Соседние файлы в папке ВМ_УЧЕБНИК