Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
3.5. ОКРУГЛЕНИЕ ЧИСЕЛ В ЭВМВыбор системы счисления и длина разрядной сетки ЭВМ, а также формы представления числа в машине зависят в значительной мере от требуемой точности вычислений. Точность вычислений определяется также погрешностью выполнения арифметических операций при использовании в ЭВМ чисел, представленных в форме с фиксированной и плавающей запятой. Можно считать, что в машине с фиксированной запятой операции сложения и вычитания, при условии отсутствия переполнения, выполняется точно. Как уже отмечалось, для чисел, представленных в нормальной форме, при операциях сложения и вычитания необходимо выравнивать порядки и нормализовать результат, что ведет к потере некоторых разрядов мантиссы в результате ее сдвига. Источниками погрешностей при сложении в машине с плавающей запятой являются сдвиг вправо мантиссы одного из исходных чисел при выравнивании порядков, сдвиг вправо мантиссы при нормализации результата, а также искусственная установка нуля в качестве результата при отрицательном переполнении порядков. Поэтому при нормальной форме представления чисел сама операция алгебраического сложения также является источником погрешностей. Таким образом, причинами погрешностей вычислений в ЭВМ могут быть: 1) неточное задание исходных данных, участвующих в выполнении операции (либо из-за ограничений разрядной сетки машины, либо из-за погрешностей перевода информации из одной системы счисления в другую); 2) использование приближенных методов вычислений, что само по себе дает методическую погрешность (например, использование метода прямоугольников, трапеций при интегрировании); 3) округление результатов элементарных операций, что в свою очередь может привести к появлению накопленных погрешностей; 4) сбои в работе ЭВМ, что может быть устранено введением системы контроля выполнения операций. Округление чисел в прямом кодеЕсли предположить, что исходная информация не содержит никаких ошибок и все вычислительные процессы выполняются абсолютно точно, то всегда существует третий тип ошибок — ошибки округления, которые возникают при переводе чисел из одной системы счисления в другую и последующем представлении их в разрядной сетке машины, а также при получении внутри машины чисел, разрядностью большей, чем это допустимо, например, при умножении. В этом случае число А округляют, т. е. заменяют его машинным числом 1/4] заданной разрядности. Округление (обозначим его знаком
1. Округление в направлении к нулю, когда вещественное число округляется до ближайшего к нулю машинного числа. 2. Округление в направлении от нуля, когда округление производится до машинного числа, лежащего дальше от нуля, чем вещественное число 3. Округление по дополнению, когда округление производится до ближайшего машинного числа. В качестве параметров, по которым будут сравниваться способы округления, целесообразно использовать максимальную величину модуля погрешности, т. е. Атах, где Округление к нулю или усечение. Для конкретности считаем, что числа в машине представлены в прямом коде с запятой, фиксированной перед старшим разрядом, т. е.
Очевидно, что при усечении Обычно вероятность появления чисел разного знака при выполнении определенной программы не одинакова, поэтому представляет интерес округление абсолютных величин, т. е. фактически чисел одного знака. При этом значение
Это означает, что при действиях с числами одного знака погрешность усечения носит систематический характер, что приводит к накоплению погрешности. Это обстоятельство заставляет исследовать другие способы округления, которые рассматриваются пока для прямых кодов. Округление от нуля. Реализация данного способа требует анализа хвоста на нуль, затем отбрасывается хвост и, если отсекаемая часть не равна нулю, к абсолютной величине оставшейся части добавляется единица в младший разряд. Тогда
Эго добавление может вызвать распространение переносов через все разряды числа, что требует в общем случае выполнения операции сложения для реализации данного способа округления. Помимо дополнительных временных затрат это может привести к переполнению разрядной сетки. Следовательно, способ сложнее в реализации, хотя основные его характеристики точно такие же, как и при усечении. Округление по недостатку. Реализация данного способа базируется на анализе знака округленного числа. Если Если рассматривать округление чисел только одного знака, то при Округление по избытку. Этот способ во всем подобен предыдущему, с тем отличием, что добавление единицы в младший разряд сохраняемой части числа производится, когда оно больше нуля и хвост не равен нулю. При Округление по дополнению. Данный способ представляет собой объединение способов округления от нуля и к нулю. Его реализация связана с коррекцией сохраняемой части числа
где
Когда
Пример. Заданы
В случае равновероятного появления чисел разных знаков и равномерного распределения вероятностей появления различных значений хвоста числа математическое ожидание погрешности округления равно нулю. Однако при округлении чисел одного знака значение А отлично от нуля. Поэтому при округлении чисел одного знака данный способ дает систематические ошибки округления хотя и меньшие, чем при усечении. По своим характеристикам способ округления по дополнению лучше, чем усечение. Систематические ошибки при округлении чисел одного знака обусловлены в данном случае тем, что округление особенно неточно производится, когда значение отсекаемой части близко к половине единицы младшего сохраняемого разряда. Этот недостаток устраняется в следующем способе округления. Усовершенствованное округление по дополнению. В этом случае решение о коррекции сохраняемой части числа А принимается на основе анализа значения всех разрядов его отсекаемой части
При этом величина Упрощенное округление по дополнению. При реализации способов округления по дополнению из-за возникновения переносов при суммировании сохраняемой части числа с единицей округления необходимо выполнить операцию сложения, что требует дополнительного времени, т. е. снижает реальное быстродействие При этом если в неокругленном результате разряд Таким образом, при равновероятном появлении нуля и единицы в младшем разряде сохраняемой части для знакопеременных чисел снова получим симметричное распределение погрешностей с когда длина отсекаемой части составляет один двоичный разряд. Только в этом, важном для практики случае, округление происходит правильно, без накопления систематических ошибок. Вероятностное округление. Для такого округления необходимо иметь датчик случайных величин (0 или 1), единица с выхода которого прибавляется к младшему разряду сохраняемой части числа. Погрешность округления при равновероятном распределении значении отбрасываемой части является случайной величиной с нулевым математическим ожиданием. Таким образом, самым простым способом округления является усечение, при котором не требуется дополнительных затрат времени и оборудования. Однако на практике важнее всего точность вычислений, которая определяется величиной
|
1 |
Оглавление
|