Амосов А.А., Дубинский В.А., Копченова Н.В. Вычислительные методы для инженеров (1994) (1095853), страница 7
Текст из файла (страница 7)
Если число а' приводится в качестве результата без указания величины погрешности, то принято считать, что все его значащие цифры являются верными. Начинающий пользователь часто слишком доверяет выводимым из ЗВМ цифрам, предполагая, что вычислительная машина придерживается того же соглашения. Однако это совсем не так: число может быть 'выведено с таким количеством значащих цифр, сколько потребует программист заданием соответствующего формата.
Как правило, среди этих цифр только небольшое число первых окажутся верными, а, возможно, верных цифр нет совсем. Анализировать результаты вычислений и определять степень их достоверности совсем непросто. Одна из целей изучения вычислительных методов и состоит в достижении понимания того, что можно и чего нельзя ожидать от результатов, полученных на ЗВМ.
3. Округление. Часто возникает необходимость в округлении числа а, т.е. в замене его другим числом а* с меньшим числом значащих цифр. Возникающая при такой замене погрешность называется погрешностью округления. Существует несколько способов округления числа до и значащих цифр. Наиболее простой из них — усечение сосгоит в отбрасывании всех цифр, расположенных справа от н-й значащей цифры. Более предпочтительным является округление но дополнению. В простейшем варианте это правило округления состоит в следующем. Если первая слева из отбрасываемых цифр меньше 5, то сохраняемые цифры остаются без изменения. Если же она больше либо равна 5, то в младший сохраняемый разряд добавляется единица. Абсолютная величина погрешности округления при округлении по дополнению не превышает половины единицы разряда, соответствующего последней оставляемой цифре, а при округлении усечением— единицы того же разряда.
Пример 2.9. При округлении числа а = 1.72631 усечением до трех значащих цифр получится число а* = 1.72, а при округлении по дополнению— число а' = 1.73. Пример 2.10. Округление величин Ь(а*) = 0.003721 и б(а*) = 0.0005427 до двух значащих цифр дает значения Л(а*) = 0.0038 и б(а*) = 0.00055. $2.3.
Погрешности арифметических операций над приближенными числами Исследуем влияние погрешностей исходных данных на погрешность результатов арифметических операций. Пусть а * и Ь * приближенные значения чисел а и Ь. Какова соответствующая им величина неустранимой погрешности результата? П р е д л о ж е н и е 2.2. Абсолютная погрешность альебраической суилы (суллы или разности) не превосходит сул~ иы абсолютных поьрешностей слагаемых, т.е. Ь(а* ~ Ь*) ~ Ь(а*) + Ь(Ь~).
и Имеем сь(а ~ Ь *) = $(а ~= Ь) — (а * ~ Ь )$ = $(а — а *) ~ (Ь вЂ” Ь )$ ~ ~~ Ь(а ) + Л(Ь ). И (2.8) С л е д с т в и е. В силу неравенства (2.8) естественно положить Ь(а' х Ь') = Ь(а*) + гя(Ь*). (2.9) Оценим относительную погрешность алгебраической суммы. П р е д л о ж е н и е 2.3. Пусть а и Ь вЂ” ненулевые числа одного виана. То~да справедливы неравенства (2.10) б(а*+ Ь*) < бвех, б(а* — Ь*) ~ ибвах, аде б = шах 1б(а*), б(Ь*)), и = !а+ Ь~/~а — Ь|.
и Используя формулу (2.2) и неравенство (2.8), имеем 30 Границы абсолютной и относительной погрешностей принято всегда округлять в сторону увеличения. ~ а т Ь~ б(а* т Ь*) = Ь(а* т Ь*) < Ь(а*) + Ь(Ь') = = ~ а ) б(а *) + ~ Ь ~ б(Ь *) ~ 1( ~ а ~ + ~ Ь! ) б а — ~ а + Ь ~ б„ Из полученного неравенства сразу следуют оценки (2.10). И С л е д с т в и е.
В силу неравенств (2.10) естественно положить б(а*+ Ь') = бах, б(а* — Ь') = ибпах> (2.11) ьде бвих = шах 1б(а*), б(Ь')), и = ~ а + Ь~// а — Ь/. Первое из равенств (2.11) означает, что при суммировании чисел одного знака не происходит потери точности, если оценивать точность в относительных единицах. Совсем иначе обстоит дело при вычитании чисел одного знака. Здесь граница относительной ошибки возрастает в н > 1 раз и возможна существенная потеря точности.
Если числа а и Ь близки настолько, что ~а.+ Ь~ > ~а — Ь~, то и > 1 и не исключена полная или почти полная потеря точности. Когда это происходит, говорят о том, что произошла катастрофическая потеря точности. Итак, получаем следующий важный вывод. При построении численного метода решения задачи следует избегать вычитания близких чисел одного знака. Если же такое вычитание неизбежно, то следует вычислять аргументы с повышенной точностью, учитывая ее потерю примерно в и = ~ а + Ь~/~ а — Ь~ раз. П р е д л о ж е н и е 2.4. Для относительных поьрешностей произв ведения и частноьо приближенных чисел верни опенки 31 Пример 2.11.
Пусть решается инженерная задача, в которой окончательный результат у вычисляется по формуле у = 1 — е с помощью предварительно определяемого значения е. Предположим, что найденное приближение е* = = 0.999997 к значению е содержит 6 верных значащих цифр. Тогда у' = 1— — 0.999997 = 0.000003 и в процессе вычисления оказались потерянными 5 верных цифр.
Если же учесть, что б(т*) — 0.0001% а б(у*) — 33%, то следует признать, что произошла катастрофическая потеря точности. Подчеркнем, что здесь виновником "катастрофы" является не операция вычитания, а предложенный метод решения задачи, где окончательный результат получается с помощью вычитания двух близких чисел. Выполнение этой операции лишь делает очевидным то, что действительно полезная информация о значении у уже оказалась потерянной до вычитания.
Если нет другого варианта расчета, то для получения приемлемого результата следовало бы предварительно вычислить е с существенно большим числом верных знаков, учитывая, что 5 старших значащих цифр при вычитании будут потеряны. Б(а*6*) < Б(а*) + Б(Ь') + Б(а*)Б(6*), б(а*/Ь') 4 1 — б(6*) (2.12) (2.13) в последней из которых считается,что б(Ь*) ( 1. и Выполним следующие преобразования: ~а6~ Б(а*6*) = Ь(а Ь*) = / аЬ вЂ” а*Ь'~ = ~(а — а*)Ь + + (Ь вЂ” Ь*)а — (а — а*)(Ь вЂ” 6*) ~ < ~ Ь/ Ь(а') + / а~Ь(6*) + + й(а*)/ь(Ь*) = ! аЬ|(б(а*) + Б(Ь*) + б(а')Б(6 ')), т.е.
~ аЬ| Б(а*Ь") ~ ~ аЬ|(б(а*) + б(Ь*) + Б(а*)б(Ь*)). Разделив обе части этого неравенства на ~ аЬ ~, получаем оценку (2.12). Для вывода второй оценки предварительно заметим, что ~ Ь*! ~ Ь + (6 — Ь) ~ > ! Ь~ — Ь(Ь*) = ~ Ь~ (1 — Б(Ь )). Тогда 1 (Ь'-Ь)+6( *)1 < Б( Ь *)+ Б(а *) р 1-Б( Ь *) С л е д с т в и е.
Если Б(а*) < 1 и Б(Ь*) ~ ~1, то для оиенхи ьрании относительных поьрешностей ложно использовать следующие приближенные равенства: Б(а'6*) н б(а*) + Б(Ь*), б(а*/6*) и б(а*) + б(6*). (2.14) Именно равенства (2.14) чаще всего и используют для практической оценки погрешности. Итак, выполнение арифметических операций над приближенными числами, как правило, сопровождается потерей точности, Единственная операция, при которой потеря не происходит, — это сложение чисел одного знака.
Наибольшая потеря точности может произойти при вычитании близких чисел одного знака. ~ 2.4. Погрешность функции всякий раз, когда на ЭВМ производится расчет по формуле. Важно знать, какова величина неустранимой ошибки, вызванной тем, что вместо значения у = 1 (х) в действительности вычисляется значение у*= 1 (х ), где х* = (х,', х*, ..., х,*„).
Введем обозначения: пусть [х, х*] — отрезок', соединяющий точки х и х*, и 1' = дфдх1. х1 П р е д л о ж е н и е 2.5. Для абсолютной по1решности значения у*= ~(х') справедлива следующая оценка: Ь(У") 1 Е П1аХ ~~' ~Ь(х*). 11 [х,х ) х1 1 и Оценка (2.15) вытекает из формулы конечных приращений Лагранжа2: 1(х) — 1 (х*) = Е 1' (х)(х, — х'), хЕ[х, х*~. ° 1=1 х1 С л е д с т в и е. Если х* и х, то в силу оценки (2.15) л1оясно положить Ь(у*) м г ~~'(х*)~Ь(х*), Р1 х1 1 ' (2.16) (2.17). Ь(У') а Х ~1' (х) [Ь(х'.).
Равенство (2.16) удобно для практических оценок, а равенством (2.17) мы воспользуемся в дальнейшем для теоретических построений. 1 Отрезком, соединяющим точки х и х~ в тп-мерном пространстве, называет ся множество точек вида ах+ (1 — а)х*, 0 ~ ~а ~~ 1. 2 Жозеф Луи Лагранж (1736 — 1813) — французский математик, механик и астроном. Один из создателей математического анализа, вариационного исчисления, классической аналитической механики. 2 — 28 33 1. Погрешность функции многих переменных. Пусть ~ (х) = ~ (х1, х2, х ) — дифференцируемая в области С функция т переменных, вычисление которой производится при приближенно заданных значениях аргументов х*, х*, ...,, х*.
Такая ситуация возникает, например, Из формул (2.16), (2.17) вытокагот приближенные равенства для оценки границ относительных п<н ~ ~енистой: и б(у ) ~ Е и*б(х'.), б(д*) м Х и б(г '>.'. /',,г (2.18) Здесь )х. ~)/ (х )) ]х (~/ (х)! тпрр ' " тпЛт (2.19) —,~ф/2, хг — — д (6, с) = ( — 6 + 4 ф/2, где И = 6г — 4с. Заметим, что х1 ° хг — с т~гп~ щи ~ ~ «и «эфф~ч у Д ~1Ю' — 4 ИЭ, х1 д ( — 10з 10з)/2 = 10з хг = с/х1 в 1/( 10з) — 10-з Далее, имеем /6 —— = ( 1 6/~П)/2 д ( 1 10з/10з)/2 — 1 /' — 1/~~ ц 10-з д' — ( + 6/л/4/2 = (6 — ~ф/(2л~ ф = -хг/~ Ы ~ 10 е„д' = -1/4 е в — 10 з.
Применяя первую из формул (2.19), для корня х1 находим и,', = !6*! //6~/~х*~ и 1, ! с*) |/с )/1х~*! ~ 10 а. Аналогично для корпя хг имеем и * ~6 ~ ~д6~/1~г ~ 1 г г ! !!дскб/~хг! 1 1аким образом б(х,') и б(6*) + 10 аб(с*), б(х*) н б(Ь*) + б(с'). (2.20) Следовательно, точность первого корня практически определяется только точностью задания коэффициента 6, в то время как коэффициент с может быть задан очень грубо. Для второго корня влияние погрешностей в задании коэффициентов 6 и с практически одинаково. 2. Погрешность функции одной переменной.