книги из ГПНТБ / Журавлев, Ю. П. Системное проектирование управляющих ЦВМ
.pdfственно слева и справа равны:
*°-д0 |
|
|
Д0+ е |
|
тл — |
, |
x d x |
х 0 |
|
1 ~ |
т |
' о > |
||
|
I |
|
|
|
хо— е |
|
|
|
|
|
*о + е |
|
|
До 4~е |
т. = |
Г |
x d x |
, |
|
J |
— |
- * • + |
|
*о+Д
В случае приближения слева математическое ожида ние тл, дисперсию Dn погрешности метода итераций можно определить следующим образом:
Д„ |
Дс + Де^ + < |
|
А, = |
В случае приближения справа эти величины также соответственно равны:
т., |
Др. + е. |
__ |
Д2 + дсе+ S* |
UТ, ------ |
з |
||
|
2 ’ |
~ и — |
Следовательно, среднеквадратическое значение сгм погрешности метода итераций можно рассчитать следую щим образом:
д;+ д0«+ «*
Ошибка метода итераций может быть уменьшена, если соответствующим образом корректировать величи
ну вычисленного корня. |
корень Хо* корректиро |
|||
1°. Первая |
коррекция. Если |
|||
вать на величину |
А с = \ x 0— f ( X o ± e ) |, |
|||
|
|
|||
то ошибка метода |
итераций Ам будет иметь вид |
|||
|
AM=^r-K** + f (*0± е ), |
|||
где х * = л*0 + |
Дс. |
|
|
|
В этом случае |
справедливы выражения: |
|||
|
|
|
*0 |
|
D, = |
On= |
\ |
г = Т „ = |
|
х0+е— |
|
х а—е+Дс |
|
|
|
d x |
/е — Д Д 2 |
||
|
|
|
160
и, следовательно,
(Тм= (е—Ас) / |/ 3.
2°. Вторая коррекция. Смысл второй коррекции за ключается в том, чтобы математическое ожидание кор ня Хо* совместить с истинным значением Хо:
— I е— М 2. |
з |
■■ - е — А ° |
[2VWJ ' |
м |
2 >Г |
где а 0***~х*0 -f- (s -f- Дс)/2; |
|
|
g (x0***)=\/[s~ A c).
Таким образом, наименьшее значение среднеквадра тической ошибки метода итераций имеет место при вто рой коррекции вычисленного корня хо*.
Систематическая ошибка Ас метода итераций соиз мерима с величиной е:
Ас= е |/(х о ± е ) |,
но |
поскольку точные |
значения производной в точках |
х0± |
е неизвестны, так |
как неизвестно значение корня х0, |
то в случае второй коррекции желательно корректиро вать вычисленный корень путем алгебраического сложе ния с поправкой А:
д = (8 + Дс)/2 = s [ 1 + Г (х*0 s)]/2,
причем среднеквадратическое значение ошибки метода уменьшается в два раза по сравнению со случаем пер вой коррекции. ,.
Таким образом, в случае монотонных итераций среднеквадратические ошибки метода после коррекции уменьшаются.
Вслучае осциллирующих итераций (ошибка метода
вкаждом последующем приближении изменяет знак) систематическая ошибка Ас метода прилегает к точному значению корня х0 слева или справа и ее величина опре* деляется выражением
| Ас | = )Хо—/ (хо±е) | ,
П —458 |
161 |
Плотности распределения значений корня Хо* при тех же предположениях (см. монотонные итерации) име ют вид:
2 (. '_ д j |
при х6 — s < x * 0< x 0 — Дс, |
|||
&(*«*) = |
|
при Х 0 -}- Д с < * * о < * о + £. |
||
2 (. - |
Дс) |
|||
|
|
|||
О |
— |
в остальных случаях, |
||
1 |
при х0 — s -}- Дс< х 0** < х 0 -|- е — Дс, |
|||
g ( X 0* * ) = 2 (. - Дс) |
||||
|
|
|
||
О |
— в остальных случаях, |
|||
|
1 |
|
(s — дс) |
|
|
^ ^ д у п р и |
|
g (х0***) =
у ^ у ____ _________________(е — Дс) .
S Л - о |
-А-О Т |
2 |
> |
О — в остальных случаях.
Математические ожидания |
корней х0*, х0**, х 0*** |
совпадают с точным значением |
корня х 0: |
т ~ х О*
Дисперсии ошибок метода в случае осциллирующих итераций определяются выражениями:
|
j |
•* + £ДС+ д? |
||
|
[х*0— ХоГ g (**о) = |
|
|
|
|
—00 |
|
|
|
|
00 |
(■ - |
Дс)2 . |
|
D [х0**] = |
j |
[х0** — х 0]8 g ( х * * ) |
||
|
—00 |
|
3 |
|
|
|
|
||
|
|
0 0 |
|
(^-Д с)г |
Z)[x0***] = |
|
jVo*** — *о]2£(*о***) = |
||
|
|
|
|
12 |
Среднеквадратические значения ошибок метода опре |
||||
деляются выражениями: |
|
|
||
ом = а [х*0 — х 0] = ] / (£"+ дсе + |
Д^/З; |
|||
°М= |
о 1*0** — *о] = [В — Дс)/3; |
|
||
ом = |
о [х?*** — Хо] = (е — Дс)/2 уТ т |
162
Все расчётные' соотношения выведены для случаев, когда
!/'(*) K V *
В противных случаях необходимо метод итераций проводить в соответствии с выражением
У (*«)
1- У (*i) О ,
причем величина значений среднеквадратических оши бок метода не изменится.
д) Метод Ньютона. Метод Ньютона (метод касатель ных) является разновидностью метода итераций при отыскании корней с помощью соотношений
X i+ l = Xi — f( X i) / f ' ( X i) .
При заданной допустимой погрешности е вычисления корня Хо метод Ньютона дает систематическую погреш ность Ас:
Л0=е—f(x0±e)/f'(xo±E).
В предположении, что вычисленное значение корня Хо* равномерно распределено в пределах x0±Ac^X o * ^ ^ х 0± е с плотностью g(%o*) распределения:
g(x0*) = 1/(е—Ас)
можно оценить ошибку метода Ам в соответствии с вы ражением Лм= |*о±Дс:+-*о*|, в котором случайной вели чиной является только Хо*.
Тогда справедливы соотношения:
тя = тп= х0± (е+Ас)/2; т[Дм]= + (е+Д с)/2.
Как и в методе итераций вторая коррекция дает
(Тм= (е—Ас)/2 ]/ 3,
причем величина поправки равна:
А ^ е[ 1 + П х 0*+е)]/2.
е) Квадратурные формулы. Вычисление определенно го интеграла
ь
t/= j f{x)dx
а
и * |
163 |
с помощью квадратурных формул дает абсолютную по грешность R n, которая определяется выражениями:
0 < ] Яг |
(6— а)3 |
|
12«2 |
|
|
для метода трапеции и |
(Ь— а)5 |
|
0 < |/? 2|< |
М2 |
|
|
180(2 п)4 |
|
для .метода парабол (метода Симпсона), где п — число отрезков разбиения интервала [a, b], Mi, М%— макси мальные значения модуля соответственно второй и чет вертой производных подынтегральной функции на отрез ке [а, Ь].
Очевидно, что
зм= у |
j [Ri — tn i\- § (x ) d x |
> |
— cc |
|
|
где |
|
|
CO |
|
|
rn = j R i g (x) dx- |
g ( x ) — 1 jib — a); |
i — 1 , 2. |
§ 4.4. ОШИБКИ ОКРУГЛЕНИЯ ПРИ ВЫПОЛНЕНИИ ЭЛЕМЕНТАРНЫХ ОПЕРАЦИЙ В ЦИФРОВЫХ М АШ И НАХ
Инструментальная ошибка ЦВМ обусловлена, как уже об этом говорилось, конечной величиной разрядной сетки и необходимостью округления результатов некото рых элементарных операций. Ошибки округлений в про цессе вычислений накапливаются и могут существенно повлиять на точность результатов. Поэтому при выборе разрядной сетки ЦВМ на этапе проектирования в зави симости от требований к точности вычислений необходи мо прогнозировать либо максимальную величину инстру ментальной ошибки машины, либо ее среднеквадратиче ское значение.
Анализ ошибок округлений при выполнении элементар ных операций проводится ниже при следующих предпо ложениях:
—система счисления, принятая в проектируемой ЦВМ, позиционная с основанием |3;
—в ЦВМ с «плавающей запятой» числа, участвую щие в элементарных операциях, нормализованы;
•164
—в ЦВМ с «фиксированной запятой» числа, участ вующие в элементарных операциях, меньше единицы; переполнение разрядной сетки не допускается;
—округление результата элементарной операции вы полняется по правилу: в младший разряд числа, остаю
щийся после округления, добавляется единица, если в старшем из отбрасываемых разрядов записана едини ца, либо нуль в противном случае.
Обозначим: п — количество разрядов, |
предназначен |
||
ных для представления мантиссы числа |
(без знаковых); |
||
go— ошибка |
однократного округления |
мантиссы. |
|
Ошибка |
go не превышает половины |
цены младшего |
разряда и равномерно распределена в пределах
—|3-”/ 2 ^ | 0< + р - п/2.
Плотность ее распределения имеет вид
£(so) = |3(n>.
Математическое ожидание ошибки округления может быть найдено в соответствии с выражением
|
р |
п/2 |
|
М [ У = |
|
J |
5о£(5о)<й , = 0. |
|
- |
р- « / 2 |
|
Дисперсия П[£0] ошибки |
округления равна: |
||
Д [ У = |
у |
2 ^ |
( У < я . = Г 712. |
— |
р— п /2 |
|
Среднеквадратическое значение а [$0] ошибки округле ния определяется выражением
в[У = р-я/ 2 / ЗГ.
Собственно ошибка округления go рассматривалась безотносительно типа элементарной операции и способа представления чисел.
Анализ ошибок округления, возникающих при выпол нении конкретных типов элементарных операций, про водится ниже.
1. Операция сложения (вычитания). Ошибки округ ления при выполнении операции сложения могут воз никнуть, во-первых, при выравнивании порядков слага емых и, во-вторых, при нормализации результата, если произошло переполнение разрядной сетки мантиссы.
165
Обозначим: |
|
|
|
|
|
6i — ошибка округления операций сложений; |
поряд |
||||
бвп— ошибка |
округления |
при |
выравнивании |
||
ков слагаемых; |
округления |
при |
нормализации |
резуль |
|
бн — ошибка |
|||||
тата; |
|
первого |
и второго слагаемых соот |
||
h, /2— порядки |
|||||
ветственно; |
|
|
|
|
|
] dL1— модуль |
мантиссы |
суммы до нормализации; |
|||
{х, у)б, {х, у}м — функция от аргументов х и у, |
прини |
мающая значение большего или меньшего из них соот ветственно.
Очевидно, что |
|
{х у)б= (х + у)/2+ | х |
у | /2, |
{х, у}м ={х + у) /2— |х—у | /2. |
|
Тогда можно записать |
|
6i —бвп+ бн |
(4.1) |
Ошибка округления при выравнивании порядков воз никает при сдвиге мантиссы меньшего слагаемого впра во на число разрядов, равное разности порядков слага емых. Поскольку округление происходит в п-м разряде сдвинутого числа, порядок которого равен порядку боль шего слагаемого, то можно записать
8,п=Е.Р{,,' Ч ‘ .
В случае равенства порядков слагаемых выравнива ния не происходит и ошибка округления равна нулю:
s |
_ |
^ |
” ^ 6 |
при |
(4.2) |
|
^ВП |
|
О |
|
при 1х — 1г. |
|
|
|
|
|
|
|
||
Выражение |
(4.2) |
можно |
представить в более |
ком |
||
пактной форме: |
|
|
|
|
|
|
|
8в/ = |
? |
/ " |
' я}б{|/1- / 2|, 1}м. |
(4.3) |
|
Действительно, если |
\к—/2| =0, то |
|
{ \ к — h \ , 1}м = 0, |
6 в п = 0 . |
Ошибка округления при нормализации результата возникает только в случае переполнения разрядной сетки мантиссы. При этом мантисса результата сдвигается на один разряд вправо с одновременным увеличением по рядка результата на единицу. Поэтому можно записать
ba = |
^ {ll' h}6+]{E(\d,\), 0}б, |
(4.4) |
где Е(г) — значение |
величины z, округленной |
в мень |
шую сторону до единицы младшего разряда целой части; в данном случае это есть целая часть модуля мантиссы суммы.
Из выражений (4.1), (4.3) и (4.4) получаем |
|
|||
= |
|
1}„ + р { £ ( № 0}б]. |
(4.5) |
|
Поскольку |
{£(|су), 0}б = |
£ (|dE|), |
то имеем |
|
Ьг=Ь${‘"1’}Ж - Ц > |
1}м + |
р э д ) ] . |
(4.6) |
|
Для машин |
с фиксированной запятой справедливо |
/, = /, = £ ( К |) = 0
и ошибка округления операции сложения (вычитания) равна нулю (в нуль обращается выражение, стоящее
вквадратных скобках).
2.Операция умножения. Обозначим:
Ьг — ошибка округления операции умножения; |Я |— модуль мантиссы произведения до нормализа
ции.
Модуль мантиссы произведения в зависимости от значений мантисс сомножителей может изменяться в пре делах
Э—а 11t<г- Q-: |
1. |
|
Г |
|
|
Этот диапазон можно разбить на два соседних под |
||
диапазона: |
- R-1—R-n |
|
а) р-з* |
|
|
б ) р - ‘- |
М — 2 р - и + р - 2п. |
|
Если в результате умножения модуль мантиссы про изведения примет значение из диапазона б), то это зна чит, что мантиссы произведения есть величина нормали-
167
зованная, и ошибка округления операции умножения в этом случае описывается выражением
8s = S„p,,+,\
Если же модуль мантиссы произведения примет зна чение из диапазона а), то это означает, что результат операции необходимо нормализовать путем сдвига ман тиссы на один разряд влево и уменьшения порядка ре зультата на единицу.
Выражение для ошибки округления примет вид
b2 = t0f +k~ \
если округление производится после нормализации ре зультата, и
б2= ^ 1+/а
в противном случае.
Общее выражение для ошибки округления в первом случае, когда округление производится после нормали зации, имеет вид
82 = ^ 1+/а+£{1ое?И}. |
(4.7) |
Действительно, если
р"1< ] Я1< 1 — 2р-та -}- р-£”, то
£ { ^ |Я |} = 0 и b2 = t0f +h.
Если же р"2 < | X| < р~1— j3-n, то
£{iog?Ui} = - - i И
Вероятности событий, заключающихся в том, что модуль мантиссы произведения примет в точности одно из значений, равных р '1 или ($~2, малы по сравнению с вероятностью попадания мантиссы в любой из этих диапазонов и неточностью выражения (4.7) можно пре небречь.
Если же округление мантиссы произведения выпол няется до нормализации результата (на практике так чаще всего и бывает), то общее выражение для ошибки округления операции умножения имеет вид
S2 = ^ 1+4 |
(4.8) |
В цифровых машинах с фиксированной запятой ре зультаты операции умножения не нормализуются. Кром§
168
fOfo, для них справедливо выражение / 1 = 4 = 0 . Поэтому ошибка округления операции умножения для таких ма шин совпадает с величиной go-'
6 2 = go-
3. Операция деления. При делении мантисса частно го может оказаться нормализованной либо ненормализо ванной. В последнем случае происходит переполнение разрядной сетки, вследствие чего необходимо сдвинуть мантиссу частного на один разряд вправо, а его порядок увеличить на единицу.
В общем виде ошибку 6 3 округления, имеющую место при операции деления, можно записать так:
84 = ?0рг‘- г»+В(|’1), |
(4.9) |
где v — частное; £ (jv )) — целая часть модуля частного. Для машин с фиксированной запятой справедливо
6з=£о,
поскольку выполняется соотношение
/i= /2= £ ( | v|)= 0 .
Выражения (4.6) — (4.9) позволяют оценить макси мальные значения ошибок округлений, возникающих в процессе выполнения элементарных операций:
для машин с плавающей запятой:
I max = |
(«.)„«£ “ “ 0 + 0 ) . |
|
|
2 max |
n g maxr “ |
|
|
|
: (Утj ' max, |
|
|
для машин с фиксированной запятой: |
|
||
бшах —О, |
|
|
|
бгтах = бзтах^3 (go)max- |
|
|
возмож |
Здесь /щах — максимальный порядок числа, |
|||
ный в машине, а |
|
|
|
(go) max— |
”/2. |
|
|
Выражения (4.6) — (4.9) |
показывают, что |
ошибки |
округлений элементарных операций являются функциями системы случайных величин, к которым относятся поряд
ки Л, I? чисел, участвующих в операции, их сумма d ly
169