Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
@Мельник_А.О._-_Архітектура_компютера.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
13.82 Mб
Скачать
    1. Операції обчислення елементарних функцій

Значна частина задач обробки даних розв’язується з використанням операцій обчис­лення тригонометричних і гіперболічних функцій, функцій типу ехр X, ІП X, X2 й інших, операцій повороту вектора і перетворення координат з однієї системи в іншу, напри­клад, з декартової в полярну. При цьому в деяких областях, наприклад, в радіонавігації, сейсморозвідці, гідроакустиці, вказані операції займають основну частина обчислень. Вирішення таких задач вимагає значних витрат часу Тому спочатку в спеціалізованих, а останнім часом і в універсальних комп’ютерах, до складу системи команд вводять опе­рації обчислення елементарних функцій

В процесі розробки комп’ютерів та математичних методів обчислень було створено велику кількість методів обчислення елементарних функцій. Найчастіше в універсаль­них комп’ютерах використовується обчислення елементарних функцій за допомогою різного виду апроксимуючих виразів та аналітичних ітераційних методів

      1. Розклад функції в ряд та використання ітеративних обчислень

Для обчислення елементарних функцій часто використовується їх розклад в нескін­ченний ряд, який містить лише елементарні арифметичні та логічні операції, або вико­ристовуються ітеративні співвідношення. Кількість членів ряду чи ітерацій вибирається залежно від необхідної точності, яка до того ж обмежується розрядною сіткою.

Для прикладу можна навести обчислення квадратного кореня за допомогою ітера­тивної формули Ньютона

А, = №, + А)/2,

де: А - i-те наближення. А0 можна вибрати довільним, N - число, з якого треба до­бути корінь.

Щоб перевірити правильність попробуємо добути корінь з 36:

Ац — 1 (приймаємо випадкове число)

А, =(3^]/+і)/2 = 18.5 А2 = (ЗУп 5+18.5у2 = 10.2229 А3 = (3Vq 2229+10.2229)/2 = 6.8722 А4 = (3% g722 + 6.8722І/2 = 6.0553

А5 = (36/ + 6.055з)/2 = 6.0002

А6 = Ш + б.0002)/2 = 6.0000

      1. Обчислення елементарних функцій методом "цифра за цифрою"

Протягом останніх десятиліть багато робіт було присвячено ефективному ітерацій- ному алгоритму обчислення елементарних функцій, який найчастіше називають мето­дом "цифра за цифрою". Обчислення елементарних функцій методом "цифра за цифрою" зводиться до виконання двох етапів. На першому етапі аргумент представляється або у вигляді суми п доданків 1п(1+£ а’: ), або f. аг ctg а, або f arth а, або в вигляді добутку п співмножників (1- £ а ). Тут і - номер ітерації. На цьому етапі визначаються значення £, які можуть бути рівні 0,1 або +1, -1. У першому випадку говорять про ітераційний про­цес із знакопостійними приростами, в другому - із знакозмінними. На другому етапі, на підставі знайдених на першому етапі значень, визначається величина елементарної функції шляхом додавання або множення констант. Одночасне виконання двох описа­них етапів методу “цифра за цифрою” називають методом Волдера, а послідовне - ме­тодом Меджіта. Відміна методів Волдера і Меджіта, що полягає у величинах ітераційних кроків, значеннях констант і послідовності виконання етапів, істотним чином впливає на точність, швидкодію і структуру операційного пристрою. Детальний аналіз показав, що метод Меджіта має вищу точність, ніж метод Волдера, проте швидкодія його реалі­зації нижча.

З урахуванням отриманих Вальтером результатів по уніфікації методу і шляхом об’єднання одержаних для різних функцій алгоритмів, єдиний обчислювальний алго­ритм “цифра за цифрою” в двійковій позиційній системі числення можна представити в наступному вигляді:

X. = X.- р f.Y.2'M

і+і і а і і

Y. , = Y. + £Х.2

1+1 ill

Z , = Z-f.C.

1+1 11

£ = - R SignY. + (l-R)SignZ

G = ](l+p)/2[arctg2'M + (l+|p|)arth2 i_1 +](l-p) /2[ 2лЛ\

і - 0,1, 2, З, 3, 4,..., п-1.

Тут ]h[ - ціла частина від h; |р - модуль р; f - двійкові оператори, що приймають значення +1 або -1 залежно від знаку Y. або Z., і - номер ітерації, причому, ітерації З, 12,... к, ..., 3(к-1),... повторюються двічі. Параметр р визначає тип обчислюваних функ­цій: р - 0 - лінійні, р = 1 - тригонометричні, р= -1 - гіперболічні; R - параметр, що ви­значає від чого залежить значення f: якщо R = 0, то £= sign Z., якщо R - 1, то f. = signY.; С- константи. В табл. 6.10 представлені функціональні можливості розглянутого алго­ритму при різних значеннях параметрів р, R і різних початкових умовах XQ, Y0, ZQ. Тут К.

і Кг - коефіцієнти деформації відповідно тригонометричного і гіперболічного векторів, рівні: Кт = (П (1+2‘2(і+1)))ш ; Кг - (П (1-2'2(і+1)))1/2> де знаком П позначено добуток чисел, взятих в дужки, при і = 0, 1, 2 .., п-1.

Таблиця 6.10

Хп

Хп

Z.

р

R

X

. п ...

Y

n

Z

n

X

Y

Z

1

0

K(XCosZ - YSinZ)

K(YCosZ + XSinZ)

0

X

Y

Z

-1

0

К (XChZ - YShZ)

K(YChZ + XSZ)

0

1/К

г

1/К

г

Z

-1

0

ExpZ

ExpZ

0

X

Y

Z

0

0

X

X+YZ

0

1/К

г

0

Z

1

0

CosZ

SinZ

• 0

1/К

г

0

Z

-1

0

ChZ

ShZ

0

1/К

г

-1/К

V

Z

-1

0

ExpZ

-Exp(-Z)

0

X

Y

Z

0

1

X

0

Y/X+Z

X

Y

0

1

1

K(X2+Y2)1/2

0

ArctgY/X

X

Y

Z

-1

1

K(X2+Y2)I/2

0

ArthY/X+Z

Х-1

Х-1

0

-1

1

2Kr(X)1/2

0

V4 lgX

Алгоритми обчислення окремих елементарних функцій методом 'цифра за цифрою" мають меншу обчислювальну складність порівняно з уніфікованим алгоритмом, тому часто їх використання є доцільнішим.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]