Том 1 (1160083), страница 11
Текст из файла (страница 11)
Наша оценка очень груба, и практически мы будем иметь я — ! верных знаков, а иногда и я. При умножении вручную или на неавтоматических вычислительных машинах двух сомножителей с целью экономии времени и сокращения записей более точный сомножитель округляют так, чтобы число его верных знаков было на 1 больше, чем у менее точного. В случае частного двух величин х, х' =— Хг будем иметь: ~ ха) А,„+ )х! ~ А Ах = ог х |! = б, +д~е. ч З1 ПОГРЕШНОСТИ ОКРУГЛВНИЯ Таким образом, и в этом случае относительные ногргшности будут складываться и будут действовать те же правила, что и при умножении. Рассмотрим еще пример трансцендентной функции.
Пусть Тогда АГР ' О 0'4В4 А, х' 1и 1О Таким образом, абсолютная погрешность десятичного логарифма примерно равна половине относительной погрешности числа, стоящего под знаком логарифма. Если х" имеет п верных знаков, то Аг,— а, 1О" 1 Итак, у* будет иметь примерно и верных десятичных знаков. Обратно, по п-значным таблицам логарифмов можно найти само число с точностью до и верных знаков. Отсюда вывод. Чтобы не затруднять свою работу, с одной стороны, и не уменьшать точность, с другой, мы должны брать таблицы с таким количеством десятичных знаков.
каково число верных знаков в аргументе под знаком логарифма. Полученные нами формулы позволяют решать и обратную задачу теории погрешностей: находить допустимые погрешности одного нз аргументов по заданным погрешностям функции и остальных аргументов В заключение еще раз хотим напомнить, что полученные в настоящем параграфе формулы и способы оценок погрешности справедливы только при тех предположениях, которые были высказаны выше.
Эти предположения сводятся к тому, что при разложении разности значений функции при точных и приближенных значениях аргументов в ряд Тейлора по степеням погрешностей аргументов мы можем ограничиться только первыми членами, содержащими первые степени погрешностей аргументов. Если первыми степенями погрешностей ограничиться нельзя, то следует использовать формулу Тейлора до вторых, третьих и т.
д. степеней. ф 3. Погрешности округления В предыдущем параграфе мы уже говорили о том, как погрешности округления влияют на абсолютную погрешность. В этом параграфе мы коснемся некоторых вопросов, связанных с округлениями, производимыми внутри быстродействующей вычислительной машины. Эги вопросы в настоящее время разработаны еще очень ЛБйствия с пРиБлиженными ввлггчинами [гл. 1 слабо, Поэтому мы ограничимся лишь самыми предварительными соображениями. Влияние округлениЯ внутри машины на результат вычислений в различных машинах будет различное. Поэтому мы должны условиться, с какой машиной будем имегь дело.
Для упрощения последуюггыгх рассуждений возьмем самый простой образец автоматической машины. Будем предполагать, что у нас имеется машина с фиксированной запятой, в которой все числа удовлетворяют условию ~ х~ ( 1. Пусть машина имеет запоминающее устройство, в котором могут храниться числа, имеющие т разрядов. Предположим, что машина может производить операции сложения, вычитания и умножения, результаты которых помещаются в специальном накопителе, имеющем 2т разрядов.
Если в этом накопителе перед началом выполнения очередной операции уже имелось какое-то число, то результат операции либо прибавляется к числу, имеющемуся в накопителе, либо вычитается из него, Пусть наша машина может производить и операцию деления, причем она помещает первые лг разрядов величины (х"/у*)+ф ~/2) в специальный счетчик. Последнее наше предположение будет состоять в том, что наша машина может округлять числа в накопителе путем прибавления к ним р /2 и отбрасывания последних лг разрядов, Для того чтобы можно было произвести на нашей машине действия сложения и вычитания, нужно только потребовать, чтобы (х*+у*!( 1, (х* — у" (( 1. Округлять при этом не придется, и следовательно, ошибок округления не возникает.
Если нам нужно перемножить два каких-то числа, находящихся в каких-то ячейках запоминающего устройства, то модуль результата всегда будет меньше 1, а сам результат не может иметь более 2пг разрядов. Таким образом, и в этом случае округлений не потребуется. Но если этот результат придется выводить в какую-то ячейку запоминающего устройства или выводить из машины, то придется сделать округление. При этом мы уже не получим точного произведения. Результат такой операции будем обозначать х*Ху', отличая его тем самым от точного произведения х"у", и будем называть псевдопроизведением. г!так, Й3 ~ х*у' — х* К у" ~ .( е = —.
2 где е введено для упрощения последующих записей, Точно так же при делении х" на у' мы будем получать не точное частное х*1у", а псевдочастное х":у', причем х' —, — х: у* ~ =. е. У 55 ПОГРЕШНОСТИ ОКРУГЛЕНИЯ Пусть теперь нам нужно образовать сум му произведений. При этом мы можем сначала получить в специальном накопителе точную сумму произведений и лишь затем произвести округление. Такую ъи псевдоопсрацию будем обозначать ~з х*,ун Таким образом, ( ~, х'у" — ~~~~ х,у, ~ ( е. Интересно отметить, что ие все свойства обычных арифметических операций сохранятся для псевдоопераций. Так, например, имеет место с дистрибутивным законом. Выражение (х'+у")Хг' может отличаться от (х*+у*) х* на е, а х'Х х" -1-У*Ха* от х"х'+ — Г-у*а* на 2Е, так как в первом случае производится одно псевдо- умножение, а во втором два. Таким образом, ~ (х" +у") Х х* — (х* Х а*+ у" Х х') ~ < 3е.
Ио числа, разность которых стоит под знаком модуля, могут отлича1ься друг от друга лишь на величину, кратную 2Я (кратную единице последнего разряда), и следовательно, ~ (х" +у ) Х х' — (х* Х х'+ у' Х г) ~ < 2е. Мы получили, что разность величин, стоящих под знаком модуля, не может превышать единицы последнего разряда. Что такая разность действительно может возникнуть, подтверждается простым примером. Предположим, что т = 3. и нам нужно найти (0,364+ 0,423) ° 0,125.
(0,364+ 0 423) Х 0 125 = 0,098, (О 364 Х 0.125+ 0.423 Х 0*125) = 0,099. При этом и, следовательно, ) х" Х (у' Х х") — х*у*х" ! < (1 + ) х" ! ) е < 2е. Аналогично получим: ! (х* Х у") Х х" — х*у'х* ! < (1 + ) х* ! ) я < 2Е. Отсюда /(х* Х(у' Х х) — (х' Х у) Х г'!.<(2+/ х'(+ ~х'1) е (4е. Мы как раз получили разницу в единицу последнего знака. Порядол, в котором производятся операции умножения и деления, также будет иметь значение. Пусть нам требуется найти величину х'у*х*. При этом х" Х (У" Х г*) — х*у*г' = = (х Х (У* Х х') — х*(у" Х х')) +- (х'(у" Х х') ху *) действия с пвизлижвнными ввличинами [гл.
1 Проводя те же рассуждения, что и в предыдущем случае, найдем: ! х" Х (У' Х а*) — (х* Х у*) Х г" ! .( 2а. И здесь нетрудно привести пример, когда такая разность достигается. Пусть т = 3 и нам нужно найти произведение 0,964 0,836 0,030. При этом 0,964 Х О 836 = 0,806 (0,964 Х 0,836) Х 0 030 = 0,024. 0 836 ХО 030 = 0,024 В то же время х у'а' Будем предполагать, что х*, у' и г" положительны и все оперзции возможно произвести на нашей машине. При вычислении этого выражения в различной последовательности получим разные результаты. Вычислим сначала у' Х х" и затем найдем х*: (у' Х г"). При этом х" х" У х" У"а" У'Хх* У'Ха* — „— х': (У*Х г)=, „—,, +,, — х: (у*Ха*) = = ( " ) (у ) ~(у* х") (у а Н)+ ~у=. х ' (у Х л")~' Второй член правой части оценивается без труда: 1,,~, — ":(з Х *)) < .
Оценим первый член, предполагая, что У*Ха* мало, т, е. близко к 4з. Для того чтобы было возможно произвести деление, придется потребовать, чтобы х' было близко к 2з. Так как — з ( (Уа") — (у* Х г*) < з, то у л* может быть близким к 4з — а= За или 4з+з= 5з. В первом случзе оцениваемый член будет близок к 2;, 1 йм 4- )4е — Зз! = —, 6' во втором — к 2я ! 5.
4я (4з — 5з! = — —, Точное частное при х*=2а; у'а*= 5з булет '/, и погрешность со- ставляет около 25'/э. 0,964 Х (0,836 Х 0,030) = 0,023. Рассмотрим еше один пример. Пусть нам требуется вычислить выражение 5 "г й 41 ПОЛНАЯ ПОГРЕШНОСТЬ Так как для некоторых значений х", у', г' мы получили неудовлетворительный результат, то возьмем другую последовательность операций. Разделим сначала х* на у" и результат поделим на г*. Оценим Опять следует рассмотреть только первый член.
Результат будет зависеть от того, что больше: у* или г'. Лучший результат получится при г" )у*. Это мы будем предполагать. Так как у*я' ) х* (иначе деление невозможно было бы выполнить на машине), то ) Можно считать, что х') 2г и, следовательно, Отсюда —,„— Пх":у): г*1 (1 — +г. / Этот результат лучше, чем предыдущий. Если у'г' немало, то первый способ вычислений может оказаться лучше второго. Приведенные здесь рассуждения относятся к конкретной машине, данные о которой приведены в начале параграфа, и являются примерными. До тех пор, пока не выработается стандарт в конструкции автоматических машин, необходимо производить аналогичный анализ для каждой машины в отдельности. Чтобы при этом не затрачивать чересчур много времени при разработке каждой частной программы, целесообразно провести его заранее для типичных вычислительных процессов.
ф 4. Полная погрешность Мы уже говорили о том, что при решении математической задачи мы получаем приближенные результаты в силу различных причин: заданная нам задача заменяется другой, и в силу этого мы получаем ошибку — погрешность метода; числовые данные, с которыми производятся вычисления, неточны, и в силу этого измененная задача не может быть решена точно и возникает новая ошибка — неустранимая погрешность, и наконец, приближенные исходные данные будут подвергаться не тем операциям, которые требуются для измененной задачи, а псевдооперациям, так как мы вынуждены производить округления, и возникает третья ошибка — погр шность окпугления. Рассмотрим теперь, как будет складываться полная погрешность из отдельных погрешностей.
действия с пгизлиженными ВеличинАми (гл. 1 Пусть нам требуется решить залачу у = А (х). Для того чтобы эта задача могла быть численно решена, мы приводим ее к виду у = А (х). Далее, благодаря неточности исходных данных и процессам округления мы фактически решим задачу у= А(х). Пусть для определенности, нам нужно по х найти у. Тогда у — «=(у- у) +(у — у). Первая из скобок справа и даст ошибку метода, вторая скобка определит влияние неустранимой погрешности и погрешности округления. Мы ее назовем вычислительной погрешностью, Таким образом, полная погрешность является суммой погрешности метода и вьзчисеительной погрешности, При анализе погрешности метода мы должны учитывать способ замены )с на )с и замены А на А. При анализе вычислительной погрешности мы должны глубже учесть структуру функций А и А. Действительно, как это мы видели в предыдущем параграфе. величина погрешности округления сушественно зависит от последовательносги операций, производимых над числами.
Поэтому мы будем рассматривать вычислительную погрешность лишь в том случае, когда над двумя приближенными числами производится одна операция. Пусть х и у — те числа, над которыми должна быть произведена некоторая операции ьз. Фактически мы будем производить операцию не над ними, а над некоторыми приближениями к ним х" и у*. Кроме того, в действительности вследствие ошиоок округления мы произведем не операцию ю, а другую операцию сь*.