Научная статья на тему 'ПРОГРАММА ВЫЧИСЛЕНИЯ sin X И cos X В РЕЖИМЕ ПЛАВАЮЩЕЙ ЗАПЯТОЙ НА ЦВМ «МИНСК-1»'

ПРОГРАММА ВЫЧИСЛЕНИЯ sin X И cos X В РЕЖИМЕ ПЛАВАЮЩЕЙ ЗАПЯТОЙ НА ЦВМ «МИНСК-1» Текст научной статьи по специальности «Математика»

CC BY
222
13
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ПРОГРАММА ВЫЧИСЛЕНИЯ sin X И cos X В РЕЖИМЕ ПЛАВАЮЩЕЙ ЗАПЯТОЙ НА ЦВМ «МИНСК-1»»

ИЗВЕСТИЯ

ТОМСКОГО ОРДЕНА ОКТЯБРЬСКОЙ РЕВОЛЮЦИИ И ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ ПОЛИТЕХНИЧЕСКОГО ИНСТИТУТА имени С. М. КИРОВА

Том 203 1974

ПРОГРАММА ВЫЧИСЛЕНИЯ sin х и cos х В РЕЖИМЕ ПЛАВАЮЩЕЙ ЗАПЯТОЙ НА ЦВМ «МИНСК-1»

В. к. КИВРАН

(Представлена лаучным семинаром УВД ТПИ)

На цифровых вычислительных машинах с фиксированной запятой вычисления тригонометрических функций sin л; и cos л; в режиме плавающей запятой обычно проводятся по следующей схеме.

Аргумент представляется в масштабе 1:2л, и дробная часть его в денормализованном виде приводится к интервалу (—1; 1) известным преобразованием

z =

для вычисления sin х и

X 1 1

2и 4 2

X 1

1 2т: 2

---4

(1)

(2)

для вычисления cos х. Целая часть аргумента отбрасывается.

Затем для приведенного аргумента вычисляется интерполяционный полином Чебышева по схеме Горнера

(3)

Результат нормализуется.

По этой схеме построена стандартная подпрограмма и на ЦВМ «Минск-1».

Эта СП имеет ряд недостатков.

Во-первых, полином Чебышева вычисляется в режиме фиксированной запятой, что приводит при отрицательном порядке аргумента к простому отбрасыванию младших разрядов мантиссы и, следовательно, к увеличению погрешности вычислений.

Во-вторых, ввиду некоторых особенностей операций сдвига на ЦВМ «Минск-1» вычисленное значение функции может оказаться неверным, если порядок аргумента превышает по модулю 31.

И, кроме того, при х——0 вычисленное значение sin х равно 2~29, а не нулю, что может быть неудобным при решении некоторых типов задач.

В настоящей работе предлагается модернизированная СП функций sin л; и cos х, в которой устранены вышеперечисленные недостатки.

Во-первых, в предложенной СП полином Чебышева для sin* с отрицательным порядком вычисляется не с денормализованным аргументом, а с использованием всей его мантиссы. Для этого умножение скобок Горнера в выражении (3) производится на квадрат мантиссы аргумента с последующим сдвигом результата на двойной порядок. Вычисления же полинома для sin л: с положительным порядком аргумента и для cos л: проводятся по-прежнему в режиме фиксированной запятой, что в этом случае равносильно плавающей.

Таким образом, погрешность вычисления полинома вместе с приведением аргумента, по формулам (1) и (2) за счет приемов программирования по предложенной подпрограмме ограничивается лишь дву-мя-тремя младшими разрядами, что значительно меньше средней погрешности интерполяции функции полиномом.

Во-вторых, вычисленное значение функции верно для любого порядка аргумента, так как при вычислении s'mx с положительным порядком и cos х аргумент полагается нулю, если порядок превышает по модулю 31.

В-третьих, в предложенной подпрограмме значение функции s'mx полагается нулю, если аргумент равен нулю или кратный 2 я с любым знаком.

В заключение следует отметить, что применение более тщательных приемов программирования значительно повысило точность вычисления sin я, особенно ггри очень малых аргументах. Точность же вычисления cos х повысить не удается, так как данный алгоритм вычисления cos х не позволяет это сделать.

В приложении приведена программа с краткими пояснениями.

Приложение. Программа вычисления sin .г и cos х с плавающей запятой на ЦВМ «Минск-1».

Порядок аргумента помещается по адресу 0020, мантисса—0021, значение функции соответственно — 0022 и 0023.

Для вычисления sin л: вход с СП производится по адресу 2000, для

вычисления cos х - - 2002.

2000 11 0004 0012 вход для вычисления sin х,

1 24 2003 0023

2 05 0000 0023 вход для вычисления cos х,

3 03 2050 0021 аргумент в частях круга,

4 16 0023 0020 с 2006 вычисляется sin х с р>0

5 54 2006 2017 и cos х, а с 2017- - sin х с р < 0,

6 — 17 2033 0020

7 54 2012 2012 снятие ограничения

2010 05 0000 0021 порядка аргумента,

1 24 2016 0000

2 — 07 0020 0021 денормализация аргумента и

3 54 2016 2015 приведение его к интервалу (0;

4 24 2016 0000 1),

5 20 0001 0021

6 05 0000 0020

7 — 27 0012 0022 удвоение порядка

2020 10 0023 0021

1 71 0002 0000 вычисление qj2,

2 71 2057 0000

3 — 27 0012 0021

4 — 27 0012 0024

5 23 0024 0024

6 — 17 2033 0022

7 54 0000 2042

2030 05 2046 2034

1 05 2051 0023

2 13 0024 0023

3 — 37 0022 0005

4 20 2052 0023

5 00 ООП 2034

6 — 71 2047 0000

7 54 2032 0000

2040 13 0021 0023

1 20 0021 0021

2 15 0021 0022

3 10 0020 0022

4 20 0012 0022

5 24 0027 0000

6 20 2052 0023

7 20 2057 0023

2050 12 1371 4067

1 — 00 0000 7130

2 00 0052 0011

3 — 00 2313 2060

4 05 0632 7370

5 — 51 2567 4711

6 44 4176 6520

7 20 0000 0001

йш х = 0, если \р2\ > 31,

вычисление полинома с <0,

нормализация результата,

псевдокоманды,

1 /2л,

Сь>

с А,

Сг, С2> С Ь

1/4 _ 2-зо.

ЛИТЕРАТУРА

1. Библиотека стандартных подпрограмм для ЭЦВМ «Минск-1», часть II, Минск,

1961.

i Надоели баннеры? Вы всегда можете отключить рекламу.