logo
AOM / Мельник А

6.5. Операції обчислення елементарних функцій

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

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

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

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

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

AM = (N/Aі + Aі)/2,

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

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

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

Протягом останніх десятиліть багато робіт було присвячено ефективному ітерацій-ному алгоритму обчислення елементарних функцій, який найчастіше називають мето­дом "цифра за цифрою". Обчислення елементарних функцій методом "цифра за цифрою" зводиться до виконання двох етапів. На першому етапі аргумент представляється або у вигляді суми п доданків ln(l+fі а-i ), або fі arctg а-i, або fі arth а-i, або в вигляді добутку п співмножників (1- fі а-i). Тут і - номер ітерації. На цьому етапі визначаються значення fі,

227

які можуть бути рівні 0,1 або +1, -1. У першому випадку говорять про ітераційний про­цес із знакопостійними приростами, в другому - із знакозмінними. На другому етапі, на підставі знайдених на першому етапі значень, визначається величина елементарної функції шляхом додавання або множення констант. Одночасне виконання двох описа­них етапів методу "цифра за цифрою" називають методом Волдера, а послідовне - ме­тодом Меджіта. Відміна методів Волдера і Меджіта, що полягає у величинах ітераційних кроків, значеннях констант і послідовності виконання етапів, істотним чином впливає на точність, швидкодію і структуру операційного пристрою. Детальний аналіз показав, що метод Меджіта має вищу точність, ніж метод Волдера, проте швидкодія його реалі­зації нижча.

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

Тут ]h[- ціла частина від h; [p]- модуль р; fi- двійкові оператори, що приймають значення +1 або -1 залежно від знаку Yiабо Zi,і - номер ітерації, причому, ітерації 3, 12,... к, ..., 3(к-1),... повторюються двічі. Параметр р визначає тип обчислюваних функ­цій: р = 0 - лінійні, р = 1 - тригонометричні, р= -1 - гіперболічні; R - параметр, що ви­значає від чого залежить значення fi: якщо R = 0, то f = sign Zi., якщо R= 1, то fi = signYi; C. - константи. В табл. 6.10 представлені функціональні можливості розглянутого алго­ритму при різних значеннях параметрів р, Rі різних початкових умовах Х0, Y0,Z0.Тут Кт і Кг - коефіцієнти деформації відповідно тригонометричного і гіперболічного векторів, рівні: Кт= (П (1+2-2(і+1)))1/2 ; Кг = (П (1-2 -2(і-1)!))1/2, де знаком П позначено добуток чисел, взятих в дужки, при і = 0, 1, 2 .., n-1.

Таблиця 6.10

228

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

6.5.3. Табличний метод обчислення елементарних функцій

Ідея цього методу доволі проста: формується таблиця з наперед обчисленими зна­ченнями функції для всіх значень аргументу. Тоді, коли виникає необхідність обчислен­ня якоїсь функції, відбувається звертання до таблиці і зчитування з неї результату. Та­блиця може мати, наприклад, наступний вигляд (табл. 6.11):

Таблиця 6.11

Аргумент

Значення

0000 0001

1001 0111

0000 0010

0011 0100

1111 1111

0011 1011

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

6.5.4. Таблично-алгоритмічний метод обчислення елементарних функцій

Застосування табличного методу вимагає великої за розміром таблиці при обробці аргументів з великою розрядністю, що ускладнює зберігання значень функції та їх по­шук в таблиці. Тому бажано стиснути інформацію, а потім відновити її з мінімальними втратами точності. Вирішення цієї задачі можливе шляхом застосування таблично-ал­горитмічного методу обчислення елементарних функцій. Для таблично-алгоритмічно­го методу характерна наявність арифметичних операцій, необхідних для обчислення поправки, яка додається до знайденого по таблиці значення, що залежить від старшої частини аргументу. Чим вищі вимоги до точності, тим більше арифметичних операцій необхідно виконати. При обчисленні поправки використовуються як загальний, так і частковий підходи. Загальний підхід застосовується для широкого класу функцій, а принципи використання часткового підходу ґрунтуються на застосуванні відомих то­тожностей для кожної конкретної елементарної функції. При загальному підході вико­ристовується співвідношення:

f(X) = f(Xs + Xn-s) = f(Xs) + Ф( Xn-s, Xs),

де Xs- число, утворене sстаршими розрядами аргументу X,Xn-s- число, утворене (n-s)молодшими розрядами аргументу X,Ф(Xn-s,Xs)- поправка.

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

Це, зокрема, метод, що ґрунтується на представленні функції у виді суперпозиції двох підфункцій, де поправка задається у вигляді усередненого значення шуканої функції на кінцях підінтервалів, на які розбивається область визначення функції. Однак застосуван-

229

ня цього методу доцільне лише в комп'ютерах, де вимоги до точності невисокі. Можли­вості варіювання обчислювальною складністю та об'ємом таблиць надають методи ку-сочно-лінійної і кусочно-поліноміальної апроксимації, а також методи, що ґрунтуються на розбивці аргументу X на складові X і X , утворені відповідно його старшими та молод­шими розрядами, і розкладанні функції в ряд Тейлора та використанні схеми Горнера.