Русский | English   поискrss RSS-лента

Главная  → История отечественной вычислительной техники  → Универсальные ЭВМ  → Сетунь и Сетунь 70  → Интерпретирующая система для действий с комплексными числами (ИП-4) - часть 3

Интерпретирующая система для действий с комплексными числами (ИП-4) - часть 3

§6. Подпрограмма извлечения квадратного корня и нормализация.

Квадратный корень из комплексного числа u = (X1 + iX2)·3Px вычисляется по следующим формулам:

где

Так как величина r не меньше компонент X1 и X2, то (r± X1)/2 ≥ 0. Однако за счет неточного представления чисел в машине и неточности выполнения операций для малой величины Х выражение (r± X1)/2 может быть равно -ε11>0), тогда программа приравнивает значение √((r± X1)/2) к нулю.

Алгоритмы извлечения квадратного корня из действительного числа l = L•3Pl следующие:

a) При l = r2•32Px:

N — число сдвигов при нормализации r2,

b) При l = (r± X1)/2 •3Px

Pl = N + Px,

N — число сдвигов при нормализации (r± X1)/2, Pl = [1/2 Pl – 1/3]бл, L= t•t,

При L=0 полагается L=0 , порядок не вычисляется.

При X22=0 полагается r=|X1|.

При X12=0 полагается r=|X2|.

При X1=0 и X2=0 полагается W1=0 и W2=0.

Величина t в подпрограмме не нормализуется и поэтому удовлетворяет неравенствам:

Величина t вычисляется с помощью трех последовательных приближений t0, t1, t2, причем, нулевое и первое приближения вычисляются в качестве коротких слов. Для вычисления нулевого приближения используется два первых члена разложения:

так как L≠0 и 0,5<|L|<1,5. Таким образом,

Второе и третье приближения используют преобразованную итерационную формулу (см. [3]), которая из-за погрешности выполнения операции умножения и представления коэффициентов в машине записывается следующим образом:

где

Отсюда

где δn+1 = 35/8 • tn-3εn4 – погрешность итерационной формулы, |∆умн|<1/2 • 3-16 – погрешность последнего умножения, Hn ≈ 2•εnt-1, δ(Hn) — погрешность, включающая все погрешности, содержащие в качестве множителя Hn в какой-либо целой положительной |δ(H0)|<1/2 • 3-16.

Для первого приближения:

Отсюда

Для второго приближения погрешность δ(Hn) практически равна нулю (|δ(H1)|<0,01 • 3-16, δ2<1010.

Следовательно,

Величина L вычисляется фактически по формуле:

где ε = ε2•L+∆умн, т.е. |ε| < 2,18•3-16. Однако, в суммарную погрешность εL вычисления L будет выходить еще погрешность σ, вносимая погрешность ∆L вычисления величины L:

Так как в случае а) |∆L| < 3−16, то σ в этом случае будет удовлетворять неравенству:

и, следовательно

Тогда в случае б) |∆L| < 1,59•3−16

Отсюда

т.е. абсолютная погрешность мантисс W1 и W2 не превосходит 4•3−16. Данная подпрограмма размещается в двух зонах МБ: 11 и 12. Вычисление величины L расположено в зоне 12. Анализ аргумента и переход к Вх.VIII ИП-4 находятся в зоне II. В зоне II расположено также начало подпрограммы, реализующей псевдооперацию нормализации комплексного числа и переход в Вх.VIII ИП-4 для завершения нормализации (точнее: в зоне II производится отдельно нормализация и действительной части, а в подпрограмме «нормализация» эти части приводятся к одному порядку).

Подпрограмма извлечения квадратного корня и нормализации описывается логической схемой:

Подпрограмма извлечения квадратного корня и нормализации

Подпрограмма извлечения квадратного корня и нормализации

В этой схеме γ1 —рабочая ячейка для sign X2 , γ2 —рабочая ячейка для X22 и r2, причем эти величины отстоят в памяти от величины X на 12lA , т.е. запись X1θ, при (F) = −12lA означает (γ2). Содержимое ячейки γ3 используется при вычислении tn+1 . В качестве величины D используется одна из команд программы, причем, первоначально D>0. Величина Px2 хранится в старших разрядах Y1, т.е. состоит в памяти от величины Px на 3lA. Величина t помещается на место λ основной зоны ИП-4.

Два оператора (S) – X1 ⇒ (S), следующие за стрелкой ↴, реализуются в программе одной командой за счет того, что управление по этой стрелке передается длинной ячейке. Последние два оператора относятся к подпрограмме, реализующей псевдооперацию нормализации комплексного числа.

Подпрограмма извлечения квадратного корня и нормализации, I.

Подпрограмма извлечения квадратного корня и нормализации, I.

Подпрограмма извлечения квадратного корня и нормализации, I.

Подпрограмма извлечения квадратного корня, II.

Подпрограмма извлечения квадратного корня и нормализации, II.

Подпрограмма извлечения квадратного корня и нормализации, II.

§7. Подпрограмма для вычисления функций sin u, cos u, shu, ch u, eu.

Данная подпрограмма занимает 4 зоны на МБ.

Функции вычисляются по следующим формулам:

(*)

Алгоритмы для вычисления sin x, cos x, ex (x — действительное число) взяты из работы [3]. Абсолютная погрешность вычисляется каждой из величин 3sinX, 3cosX, мантиссы ex не превосходит 5/2•316 при |X|<3/2. Так как

то абсолютная погрешность εshx можно оценить сверху следующим образом:

где M (ex ex) — мантисса (ex − e−x),

Отсюда получаем (при |x|<3/2):

Аналогично:

Абсолютные погрешности вычисления мантисс действительной и мнимой частей в каждой формуле (*) состоят из погрешности, которая получается в результате перемножения указанных там величин, и погрешности выполнения умножения, которая не превосходит ½ • 316. Эти погрешности не превосходят: 10 • 316, а абсолютная погрешность вычисления мантисс действительной и мнимой частей ex1 + iX2 не превосходит: 4 • 316.

Подпрограмма вычисления функций sinu, cosu, shu, chu, eu, описывается следующей схемой:

Подпрограмма вычисления функций sin u, cos u, sh u, ch u, e u

Подпрограмма вычисления функций sin u, cos u, sh u, ch u, eu

Здесь Аi — арифметические операторы, Bi — обобщенные операторы, имеющие нижеследующее содержание:

А2 и А3 — арифметические операторы, вычисляющие ex.

B2 — обобщенный оператор, вычисляющий shx2 chx2.

Подпрограмма вычисления функций sin u, cos u, sh u, ch u, eu. I.

Подпрограмма вычисления функций sin u, cos u, sh u, ch u, e u

Подпрограмма вычисления функций sin u, cos u, sh u, ch u, eu I

Подпрограмма вычисления функций sin u, cos u, sh u, ch u, eu. II.

Подпрограмма вычисления функций sin u, cos u, sh u, ch u, e u

Подпрограмма вычисления функций sin u, cos u, sh u, ch u, eu II

Подпрограмма вычисления функций sin u, cos u, sh u, ch u, eu. III.

Подпрограмма вычисления функций sin u, cos u, sh u, ch u, e u

Подпрограмма вычисления функций sin u, cos u, sh u, ch u, eu III

Подпрограмма вычисления функций sin u, cos u, sh u, ch u, eu. IV.

Подпрограмма вычисления функций sin u, cos u, sh u, ch u, e u

Подпрограмма вычисления функций sin u, cos u, sh u, ch u, eu, IV

§8.Подпрограмма для вычисления функций ln u, |u|, 1/|u|.

Подпрограмма занимает 4 зоны на магнитном барабане. Функции вычисляются по формулам:

где φ = arctg(X1/X2)+2kπ, но в подпрограмме вычисляется главное значение аргумента φ = arctg(X1/X2)+2kπ (k=0). Кроме того, полученные значения нормализуются. Для извлечения квадратного корня из X12+X22

используется алгоритм из [3], но в связи с тем, что аргумент Т вычисляется с погрешностью εT , εT < 316 , то погрешность вычислений будет больше, чем в [3].

Величина g = 1/√T при точном аргументе Т вычисляется с погрешностью εg, |εg| < 316. Следовательно, абсолютная погрешность ε1/|u| вычисления мантиссы действительной части величины 1/|u| удовлетворяет неравенству:

Так как величина r вычисляется по формуле:

то погрешность εr ее вычисления удовлетворяет соотношению:

Отсюда

Функции ln x при точном аргументе X вычисляются в [3] с погрешностью εln,

Поэтому абсолютная погрешность εln r вычисления мантиссы действительной части величины ln u удовлетворяет соотношению:

Величина φ = arctg(X1/X2)+2kπ вычисляется согласно следующим соотношениям:

для вычисления отношений t = X1/X2 или t = X2/X1 используется алгоритм деления из [3]. Это отношение вычисляется с погрешностью εt , |εt| < 2 •316.

Значение arctg t вычисляется с помощью полинома 15-ой степени:

Этот полином получен из разложения arctg t по полиномам Чебышева,

в котором взято восемь членов, что вносит в вычисления погрешность ε,

Коэффициенты B2i1 полинома имеют следующие значения:

Полная абсолютная погрешность εφ вычисления arctg t с учетом погрешности аргумента t удовлетворяет неравенству:

Логическая схема данной подпрограммы имеет следующий вид:

Подпрограмма вычисления функций sin u, cos u, sh u, ch u, e u

Здесь λ используется в качестве признака того, какую из трех функций нужно вычислять. Первоначально ИП-4 всегда формирует λ<0 (это соответствует тому, что нужно вычислять 1/|u|) . Остальные операторы имеют следующий смысл.

В2 — обобщенный оператор, вычисляющий логарифмы и запоминающий знаки X2 и X1.

Подпрограмма вычисления функций ln u, |u|, 1/|u|, I.

Подпрограмма вычисления функций ln u, |u|, 1/|u|

Подпрограмма вычисления функций ln u, |u|, 1/|u|, I.

Подпрограмма вычисления функций ln u, |u|, 1/|u|, II.

Подпрограмма вычисления функций ln u, |u|, 1/|u|

Подпрограмма вычисления функций ln u, |u|, 1/|u|, II.

Подпрограмма вычисления функций ln u, |u|, 1/|u|, III.

Подпрограмма вычисления функций ln u, |u|, 1/|u|

Подпрограмма вычисления функций ln u, |u|, 1/|u|, III.

Подпрограмма вычисления функций ln u, |u|, 1/|u|, IV.

Подпрограмма вычисления функций ln u, |u|, 1/|u|

Подпрограмма вычисления функций ln u, |u|, 1/|u|, IV.

Приложения.

Ввод системы ИП-4.

Ввод системы ИП-4

Ввод системы ИП-4

Контрольные суммы.

Контрольные суммы.

Контрольные суммы.

Предыдущая часть: Интерпретирующая система для действий с комплексными числами (ИП-4) - часть 2

Литература.

  1. Е.А. Жоголев. Система команд и интерпретирующая система для машины «Сетунь». Ж. вычисл. матем. и матем. физ., 1961, I, No3, 499-512.
  2. Е.А. Жоголев, О логических структурах и математическом обслуживании малых цифровых автоматических машин. Диссертация на соискание ученой степени кандидата физико-математических наук, МГУ, 1963 г.
  3. Е.А.Жоголев. Математическое обслуживание машины «Сетунь». Отчет ВЦ МГУ, 1961 г.

16 Ноября 2014

Проект Эдуарда Пройдакова
© Совет Виртуального компьютерного музея, 1997 — 2017