Назад (Информатика).

Точность вычислений на компьютере

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

Машинная эпсилон

Машинным эпсилоном εm называется наименьшее из чисел, удовлетворяющих условию 1+ε>1, т.е. εm=min{ε: 1+ε>1}.

Величина εm при округлении методом отсечения определяется по формуле εm=2-m+1, а при округлении методом дополнения - εm=2-m, где m - количество разрядов, отведенное для хранения мантиссы числа в представлении с плавающей точкой.

Машинный ноль

Машинным нулем X0 называется наименьшее представимое на компьютере положительное число, т.е. для любого другого представимого на компьютере числа χ будет выполняться неравенство: 0< X0 ≤ | χ |.

Величина X0 определяется по формуле X0=2-2k , где k - количество разрядов, отведенное для хранения порядка числа в представлении с плавающей точкой.

Ситуации, при которой результат какого-либо действия, выполняемого на компьютере, оказывается меньше X0, называется исчезновением порядка.

Машинная бесконечность

Машинной бесконечностью X называется наименьшее из чисел удовлетворяющих неравенству | χ | < X, где - χ любое число, которое можно представить на компьютере.

Величина X определяется по формуле X=22k - 1, где k - количество разрядов, отведенное для хранения порядка числа в представлении с плавающей точкой.

Ситуации, при которой результат какого-либо действия, выполняемого на компьютере, оказывается больше или равен X, называется переполнением.

Шаг, с которым возможно представление чисел в компьютере

Шаг h, с которым возможно представление чисел в компьютере определяется по формуле h=2K-m , где K - порядок числа, m - количество разрядов, отведенное для хранения мантиссы числа в представлении с плавающей точкой.

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

Точность вычислений на компьютере

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

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

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

Пример 1. Пусть X0=10-2, тогда 0.01-0.011+1=1, но в то же время 1-0.011+0.01=0.999. В первом случае неправильный результат был получен вследствие потери порядка, которое произошло после выполнения операции вычитания.

Пример 2. Пусть εm =10-2 и требуется вычислить сумму

Точность вычислений на компьютере

Если вести суммирование слева направо, то получим S=100, поскольку с учетом округления до двух значащих цифр 100+0.1=100. Если вычислять справа налево, то после сложения тысячи слагаемых получим 100, дальнейшее прибавление по 0.1 ничего не изменит и результат окажется: S=200. Но правильный результат S=300 можно получить, только если сложить 1000 чисел по 0.1, затем еще 1000 чисел по 0.1, а после этого сложить промежуточные суммы.