§ 3.9  Изчисляване на елементарни функции

Calculating elementary functions

 

 

      Най-напред ще отбележим, че изясняването на проблема, произтичащ от наименованието на този параграф, е невъзможно в рамките на тази книга. Тук ще бъде направен само един опит той да бъде илюстриран. За задълбоченото му изучаване читателят следва да се обърне към специализираната литература, а така също и към научната периодика. Изчисляването на стойностите на елементарните функции не е елементарно, особено ако се направи опит това да се постигне въз основа на техните определения. По същество методите за изчисляване на стойностите на елементарни функции, алгоритмите синтезирани по тях и тяхната апаратна реализация представлява отделна научнотехническа област, която излиза извън рамките на поставените в тази книга цели.

      Илюстрацията на темата, която ще бъде направена тук, не може да бъде избягната. Тя се мотивира от това, че в съвременните компютърни структури са реализирани изчислителни устройства, които превръщат в изпълнима операция (според разбирането ни от §3.1) изчисляването на множество елементарни функции:

Z = F(X)                       (3.9.1)

      Функциите, чието изчисление програмистът може да срещне като изпълними операции, в общия случай се определят като елементарни. Елементарни функции са онези функции, които могат да се зададат аналитично във вид на единна формула и които могат да бъдат изчислени с помощта на някакви основни функции чрез краен брой алгебрически операции. При това самите операции, техният брой и ред на изпълнение, не зависят от стойността на аргумента. Тъй както вече споменахме, изчислението на стойността на една елементарна функция не е елементарно, тук ще поясним, че става дума за специален раздел от математиката, който разработва и изследва разлагането на тези функции в някакъв ред. Ценното в тези разложения е това, че изчисляването на елементи на съответния ред, се постига само чрез основните аритметически операции, които са единствените възможни за цифровия процесор.

      Всички останали функции се наричат не елементарни. Типичен пример за не елементарна функция е функцията факториел (Z=Х!), в която броят на операциите при нейното изчисляване зависи от стойността на аргумента Х.

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

·         Показателна функция             Z=ax ,   (a≥0) ;

·         Логаритмична функция           Z=logaX ;

·         Тригонометрически функции и техните обратни функции ;

·         Хиперболични функции и техните обратни функции ;

·         и др.

      Към алгебрическите функции се отнасят рационалните, дробно-рационалните и ирационалните функции.

      Най-простите елементарни функции са рационалните, чийто вид е многочлен от n-ти ред:

      Класът на рационалните функции се образува в резултат на изпълнение на краен брой операции събиране (изваждане) и умножение на две прости функции - константа (Z=a) и линейна (Z=X). Включването към тези операции и на операция деление поражда класът на дробно-рационалните функции:

      Когато към множеството операции се добави и операция намиране на обратна функция:

X = Ф(Z) ,    за      Z = F(X)                         (3.9.4)

се поражда класът на ирационалните функции. Типични представители на този клас са функциите:

·         Извличане на n-ти корен

·         Обратна на степенната функция ;

·         Степенна функция с рационален показател 

където m, n са взаимно прости числа.

      Изчисляването на елементарни функции обаче не се осъществява по единна методика. Ако стойностите на едни функции могат да се получат след точно определен брой аритметични операции, определени от техния аналитичен вид, то стойностите на други функции се получават чрез специално разработени за целта математически методи.

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

      Първата група алгоритми за изчисление се характеризират с това, че на всяка стъпка на итерационния изчислителен процес, се формира ново пълноразрядно приближение към крайния резултат. Пълноразрядното приближение, което се получава на последната стъпка, се приема за окончателен резултат от изчислението.

      Втората група алгоритми за изчисление формират на всяка стъпка на итерационния процес само една цифра (попълват само един разряд) от крайния резултат. Всички следващи стъпки на итерационния процес, колкото и да са те, не променят неговата стойност. Така при всяка стъпка от итерационния изчислителен процес се определя по една цифра от крайния резултат. Тази специфична особеност дава наименованието на тази група алгоритми - метод "цифра по цифра". Алгоритмите на този метод се характеризират с фиксиран (краен и предварително известен) брой стъпки за получаване на пълноразрядния резултат.

      Не аналитичните итерационни алгоритми, изпълнявани по метода "цифра по цифра" с помощта на операции събиране (изваждане) и изместване, се наричат още сходящи итерационни разлики. Те се основават на сходящи пълноразрядни знакопостоянни или знакопроменливи нараствания, чрез които се извършва корекция на приближеното решение на рекурентни уравнения, представящи разликите. Коригиране се извършва на всяка итерация чрез съответната цифрова обратна връзка. Механизмът на цифровата обратна връзка се изразява в това, че на всяка стъпка, итерационните изчисления започват с изместване на текущите "остатъци", а после чрез анализ на старшите няколко разряда на тези "остатъци" и на "делителя", се определя поредната цифра в резултата. Поредната цифра от резултата играе ролята на управляващ параметър за хода на следващата итерация.

      След направения кратък преглед ще изложим алгоритъма и синтезираното по него устройство за една избрана от нас функция, която в исторически план е измежду първите реализирани като изпълнима операция. Това е функцията корен втори – много често използвана в математическите изчисления. Така ще постигнем значително по-пълна илюстрация на темата, а от друга страна може би това ще бъде стимул за читателя да обогати своите познания.

 

 

Следващият раздел е:

3.9.1  Изчисляване на корен втори   ( Calculation of Root Second )