Page 42 - ЭВМ
P. 42
Таким образом, по алгоритму деления с восстановлением остатка:
– если а ≥ 0, то новое значение остатка равно (2а – у);
– если а < 0, то новое значение остатка равно (2а + у).
В соответствии с результатами получаем следующее правило
деления без восстановления остатка: если остаток а ≥ 0, то происхо-
дит сдвиг остатка влево на один разряд и вычитание делителя; если
а < 0, то происходит сдвиг остатка влево на один разряд и прибавле-
ние делителя.
Итерационный метод выполнения операции деления. В некото-
рых случаях операцию деления z = x/y реализуют опосредованно, ис-
пользуя операцию умножения: z = (1/y)·х.
В этом случае необходимо найти обратную величину делителя:
–1
у = 1/у. Это достигается за счёт использования итерационной фор-
мулы, в которой применяются только операции сложения (вычита-
ния) и умножения.
Для делителя у из соответствующей таблицы берётся некоторое
приближение t 1, которое дает некоторую начальную относительную
погрешность:
1/у – t 1,
δ 1 = 1/у = 1 – уt 1.
Откуда имеем следующее: 1/у = t 1/(1 – δ 1).
2
3
Запишем 1/(1 – δ 1) в виде ряда: 1/(1 – δ 1) = 1 + δ 1 + δ 1 + δ 1 + …
Ограничиваясь двумя слагаемыми, находим 1/у ≈ t 1 (1 + δ 1).
Заменяя δ 1 в последнем выражении, имеем t 1 (1 + δ 1) = t 1 (1 + 1 – yt 1) =
= t 1 (2 – yt 1), что дает уточненное значение t 2 для 1/у:
t 2 = t 1 (2 – yt 1).
По аналогии получаем итерационную формулу для 1/у:
t i+1 = t i (2 – yt i). (1.2)
Найдем оценку погрешности определения 1/у. По определению
t 1 = (1/y) (1 – δ 1).
Из итерационной формулы
t 2 = (1/y)(1 – δ 1)(2 – y · (1/y)(1 – δ 1)) =
2
= (1/y)(1 – δ 1)(2 – 1 + δ 1) = (1/y)(1 – δ 1 ),
2i
и при любом i t i = (1/y) (1 – δ 1 ).
Отсюда следует, что если t 1 задано с точностью четыре разряда,
а надо получить 1/у с точностью 32 разряда, необходимо сделать три
шага, так как на каждом из них число верных разрядов удваивается.
42