Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
3.6. ТОЧНОСТЬ ВЫПОЛНЕНИЯ ОПЕРАЦИИ В МАШИНЕ С ПЛАВАЮЩЕЙ ЗАПЯТОЙОценка погрешности при вычислениях на машине особенно затруднена при использовании чисел, представленных в форме с плавающей запятой, так как в этом случае вычисления неточны по самой своей природе. Здесь возможно перемещение ошибки из младших разрядов мантиссы в старшие, если преждевременно округлить младшие разряды числа. Такая ситуация возникает, например, при нормализации результата влево, если порядки исходных данных отличались на единицу. При этом с одной стороны мантисса может содержать некоторую погрешность (из-за сдвига на один разряд вправо одной из мантисс), с другой стороны при нормализации результата может потребоваться большое количество сдвигов влево, в результате которых погрешность мантиссы результата может быть выведена чуть ли не в старшие разряды. В этом случае полностью исправляют ошибку с помощью цифры младшего разряда, которая была выдвинута в схему округления при выравнивании порядков. Возможно также непредусмотренное переполнение при округлении. Причем такая ситуация может возникнуть как при сложении, так и при умножении двух чисел. Пример. Заданы Вычислить
Мантисса результата денормализовала вправо на один разряд. Следовательно, необходима ее нормализация и последующее округление до 4-х разрядов. После нормализации имеем:
После округления получим
Для исключения подобных ситуаций необходимо после округления проверять, не нарушена ли нормализация влево, и устранять ее известным образом. Тогда в нашем примере получим окончательно:
Если в процессе выравнивания порядков окажется, что хвост преобразуемой мантиссы отличен от нуля, или при переполнении младший разряд результата имел ненулевое значение, то результат окажется приближенным. Так как степень преобразования мантиссы зависит от величины большего числа, то результат сложения нескольких чисел может зависеть от порядка суммирования, т. е. в общем случае ассоциативный закон при сложении чисел с плавающей запятой не выполняется. Этот закон может не соблюдаться также, когда мантису результата принудительно обнуляют при отрицательном переполнении порядков. Приравнивание мантиссы нулю при исчезновении порядка допустимо, когда результат должен складываться со значительно большей величиной. Если исчезновение порядка не отмечается каким-то образом, то могут возникнуть неожиданные ситуации, когда Пример. Заданы
После умножения Очевидно, что наибольшую потерю точности следует ожидать при сложении и вычитании почти равных величин с соответствующими знаками, т. е. при операциях вида: Некоторым выходом из создавшегося положения могла бы послужить возможность задания входных данных задачи в ненормализованной форме, которая бы отражала степень принятой точности, и если бы при этом в выходных данных имелась информация о том, какова точность ответа. Некоторые возможности в этом плане дает ненормализованная арифметика. Ее правила состоят в следующем: пусть Следует отметить, что арифметика ненормализованных чисел не может служить выходом из создавшегося положения. Имеются примеры, где указываемая такой арифметикой точность больше действительной (например, нахождение Другой выход к проблеме оценки погрешности связан с так называемой «интервальной» арифметикой [16], в которой вычисления выполняются с учетом верхней и нижней оценок для каждого числа. Так, например, если известно, что имеются также некоторые проблемы, связанные с применением итерационных численных методов. Необходимо помнить, что любой метод анализа ошибок не надежен, так как операнды обычно не являются независимыми. Это означает, что ошибки имеют тенденцию компенсировать или усиливать друг друга непредсказуемым образом и поэтому невозможно гарантировать достаточную точность в промежуточных вычислениях. Таким образом, ошибки при выполнении операций плавающей арифметики обусловлены в основном округлением мантисс одного из операндов и результата операции. При этом, если мантисса представлена в прямом или дополнительном коде, то в этом коде она и округляется. Если она представлена в обратном коде, Следует отметить, что для прямого кода соблюдается большее число стандартных математических законов, чем для дополнительного. Поэтому с этой точки зрения прямой код для представления чисел с плавающей запятой имеет некоторое теоретическое преимущество
|
1 |
Оглавление
|