Амосов А.А., Дубинский В.А., Копченова Н.В. Вычислительные методы для инженеров (1994) (1095853), страница 9
Текст из файла (страница 9)
Дело в том, что двоичная запись числа 0.1 является бесконечной периодической дробью: 0.1 = (0.0001100110011...)2. Поэтому это число всегда представляется на ЭВМ приближенно, с погрешностью, вызванной необходимостью округления. 2о. Диапазон изменения чисел в ЭВМ ограничен. В самом деле, так как 11 —— 1, то для мантиссы р справедливы оценки 0.5 ~ ~И~ < 1.В то же время для представления в ЭВМ порядка р используется конечное число (1+ 1) двоичных цифр и поэтому ~ р~ ~ р„а„= 2~'" — 1. Таким образом, для всех представимых на ЭВМ чисел х (за исключением -(р +1) нуля) имеем 0 < Хо < )х( < Х, где Хо — — 2 и'ах, Х„= 2 н1ах.Заме- тим, что диапазон представления чисел на ЭВМ всецело определяется разрядностью порядка.
Зо. Все числа х, по модулю большие Х, не представимы на ЭВМ и могут рассматриваться как яьашинная бесконечностпь. Попытка получить такое число приводит к аварийному астапову ЭВМ по переполнениьо. Все числа х, по модулю меньшие Хо, для вычислительной машины не различимы и представляются как нуль (яьашиннььй нуль). Получение числа х такого, что ~х~ < Хо, называют исчезнооениеяь порядка (или антпипереполнениеяь). Обычно при исчезновении порядка автоматически полагается П(х) = 0 и вычисления продолжаются. 3 а м е ч а н и е. Не следует смешивать машинную точность е„с минимальным положительным представимым на ЭВМ числом Хо.
Это совершенно разные числа, причем Хо ч, е„. хо а хо Иашинный нут Иашиннан беснонечнаеть Иаш аннан беснанечноеть Рис. Й2 4о. На машинной числовой оси (рис. 2.2) числа расположены нерав- номерно. Плотность их возрастает по мере приближения к нулю и падает с удалением от нуля. Чтобы убедиться в этом, заметим, что 39 расстояние от одного представимого на ЭВМ числа т до другого ближайшего представимого равно единице последнего разряда мантиссы, умноженной на 2г', т.е. равно 2Р г. Так как 1 фиксировано, то рассто— яние уменьшается с уменьшением порядка р и возрастает с увеличени— ем р. Для компьютеров типа 1ВМ РС (при вычислениях на ФОРТРАНЕ) представимые числа расположены в диапазоне 10 з8 < ~х~ < 3 ° 10зв, вполне достаточном для большинства приложений.
Однако разрядность мантиссы невелика (1 = 23) и Ям в 10 т; в десЯтичной аРифметике это эквивалентно тому, что мантисса содержит 7 десятичных цифр. Заметим, что для большинства ЭВМ, используемых для научно-технических расчетов, мантисса имеет разрядность, эквивалентную 7 — 14 десятичным разрядам.
4. Арифметические операции над числами с плавающей точкой. Правила выполнения арифметических операций в двоичной системе счисления чрезвычайно просты и легко реализуются на ЭВМ. Однако в силу ограниченной разрядности мантиссы операции сложения, вычитания, умножения и деления над представимыми в ЭВМ вещественными числами не могут быть реализованы точно. Дело в том, что арифметические операции над числами, мантиссы которых содержат 1 разрядов, приводят, как правило, к результатам, содержащим более 1 разрядов. Округление результата до 1 разрядов и служит главным источником погрешности. Для того чтобы отличать машинные арифметические операции от идеальных математических операций +, —, х,:, будем обозначать их через 9, б, Э, О.
Игнорируя несущественные детали, можно считать, что результат машинной арифметической операции совпадает с результатом точного выполнения той же операции с погрешностью, приближенно равной погрешности округления. Таким образом, Л(а б Ь) ) а + Ь(е„, Ь(а Э Ь) ! а — д~е„, Ь(аЗ Ь) ~ ~а х Ь!~м, Л(а© Ь) !а: Ь!ем, Конечно, в некоторых ситуациях округление может отсутствовать. Например, полезно знать, что умножение и деление числа на целую степень двойки выполняется на ЭВМ точно, так как в этом случае мантисса не меняется.
Пример 2.17. Рассмотрим гипотетическую ЭВМ, в' которой числа представляются всего лишь с 6 двоичными разрядами мантиссы, а округление производится по дополнению. Пусть на такой ЭВМ вычисляются сумма и произве- 40 дение двух представимых на ней чисел а = 20.5 = (10100.1)т и 6 = 1.75 = = (1.11)т. Производим вычисления в двоичной арифметике; а + Ь = (10100.1)г + (1,11)~ = (10110.01)2, а х 6 = (10100.1)2 х (1.11)2 = (100011.111)2. После округления до 6 значащих цифр получим а Ю 6 = (10110.1)т — 22.5, а 3 6 = (100100.)т = Зб. Очевидно, что эти результаты.
отличаются от точных значений а + 6 = 22.25, а х 6 = 35.875. Заметим, что машинные арифметические операции обладают иными свойствами, нежели обычные математические операции. Например, не выполняется известное правило арифметики "от перемены мест слагаемых сумма не меняется".
Покажем это на примере. Пример 2.18. Пусть вычисления производятся на ЭВМ из примера 2.17, причем а = (1.)2, Ь = с = (0.000001)2.''1'огда а + Ь = (1.000001)т и после округления имеем а ® Ь = (1.00001)2. Далее, (а ® Ь) + с = (1.000011)г и после округления получим (а Ю 6) Э с = (1.00010)2. Сложение в ином порядке дает с Ю 6 = (0.000010)т, (с ~ 6) ~ а = (1.00001)2. Таким образом, (а ~ Ь) ~ с 1 ~ (с 9 6) 9 а.
5. Удвоенная точность. На многих вычислительных машинах возможна реализация арифметических действий над числами, разрядность мантисс которых примерно вдвое превосходит стандартную разрядность 1. Это приводит к существенному повышению машинной точности. Например, на компьютерах типа 1ВМ РС (при вычислениях на ФОРТРАНЕ) в Режиме Удвоенной точности ем — 10 ~е. ДлЯ сРавнения напомним, что обычная точность этих ЭВМ есть е„- 10 т, так что следует говорить не об удвоении точности, а о повышении точности на много порядков. На тех ЭВМ, где арифметика удвоенной точности реализована аппаратурно, время исполнения программ возрастает не более чем вдвое (часто этот коэффициент ближе к единице).
Если же реализация вычислений с удвоенной мантиссой осуществляется программным образом, то время счета увеличивается в несколько раз. Поскольку для хранения числа с удвоенной мантиссой отводится два машинных слова, в этом случае вдвое возрастает используемая память. Отметим, что удвоенная точность не ликвидирует ошибки округления, а только уменьшает их величину. 6. Вычисление машинного эпсилон. Для приближенного вычисления величины ем удобно пользоваться следующим определением. Машинное эпсилон — это минимальное из представимых на ЭВМ чисел е, для которых 1 ® е ) 1. 41 Величину е„можно оценить непосредственно в ходе вычислительного процесса. Для этого достаточно включить в программу фрагмент, реализующий следующий метод. 11олагая е'о~ = 1, следует вычислять последовательно е''> = 0.5е'о1, я~~' = 0.5еы', ..., е'"' = 0.5е'" ", ..., проверяя каждый раз выполнение неравенства 1 ® е'"' > 1.
Как только при некотором п окажется, что 1 Ю е<"' = 1, следует положить ем —— = е' "" и перейти к следующему этапу вычислений. Хотя полученное таким способом значение может отличаться от ем в 2 раза, обычно оно используется так, что эта погрешность не имеет значения. Пример 2.19. Покажем, что е„= 2 в = (0.000001)т — машинное эпсилон для ЭВМ из примера 2.17. В самом деле, 1 + ем = (1.000001)~ и после округления имеем 1 6 ям = (1.00001)г. Если же к единице добавить любое положительное е < ем, то в седьмом разряде результата будет стоять нуль и после округления получим 1 ч е = 1. Всюду в дальнейшем, приводя конкретные числовые примеры, мы откажемся от использования двоичной арифметики.
Десятичная арифметика привычнее, а основные закономерности поведения ошибок округления не зависят от основания используемой системы. В большинстве расчетов, которые будут приведены для иллюстрации поведения ошибок округления, имитируется выполнение вычислений на гипотетической вычислительной машине, имеющей 6 десятичных разрядов мантиссы и производящей округление по дополнению. Будем называть эту машину .б-разрядной десятичной ЭВМ. Для нее е„, = 5 ° 10 т, так что по точности она сравнима с компьютером типа 1ВМ РС (при вычислениях на ФОРТРАНЕ с обычной точностью). 3 2.6. Дополнительные замечания 1.
Более подробно приближенные числа и погрешности арифметических операций над ними изложены в известном учебном пособии !28]. Здесь же приведены правила подсчета оставляемых значащих цифр, которые рекомендуется применять при массовых "ручных" вычислениях без точного учета погрешностей. 2. Дополнительную информацию об особенностях арифметических опера— ций над числами с плавающей точкой можно найти, например, в 119], [83]. 3. В последнее время в практике вычислений в качестве меры ошибки ~а — а ! приближенного числа а* часто используют величину 1+ а объединяющую в себе черты абсолютной и относительной погрешности. Она близка к Ь ) а*) при ~ а~ < 1 и практически совпадает с о(а") при ) а~ > 1. 42 Глава 3 ВЫЧИСЛИТЕЛЬНЫЕ ЗАДАЧИ, МЕТОДЫ И АЛГОРИТМЫ, ОСНОВНЫЕ ПОНЯТИЯ 8 3.1. Корректность вычислительной задачи 1.
Постановка вычислительной задачи. Под вычислительной задачей будем понимать одну из трех задач, которые возникают при анализе математических моделей: прямую задачу, обратную задачу или задачу идентификации (см. ~ 1.2). Слово "вычислительная" подчеркивает, что основные усилия будут направлены на то, чтобы найти (вычислить) ее решение. Будем считать, что постановка задачи включает в себя задание л~ножества допустилых входных данных Х и множества возможных решений У.
Цель вычислительной задачи состоит в нахождении решения АУ по заданному входному данному хЕХ. Для простоты понимания достаточно ограничиться рассмотрением задач, в которых входные данные и решение могут быть только числами, наборами чисел (векторами, матрицами, последовательностями) и функциями. Предположим, что для оценки величин погрешностей приближенных входных данных т" и приближенного решения у* введены абсолютные и относительные погрешности Л(х*), Ь(у*), о(т'), 6(у*), а также их границы Ь(х*), Ь(у*), о(х*), о(у*). Определения этих величин в случае, когда а и у— числа, были даны в 8 2.2.