<<
>>

ОБЩИЕ СВЕДЕНИЯ

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

Существует много различных методов вычисления элементарных функций, использующих представления их в виде степенных рядов, цепных дробей, итерационных процессов, разложений по ортогональным многочленам, рациональных приближений, бесконечных произведений и др. [7, 9, 14, 27, 45, 48, 51,67, 70, 72]. Применение того или иного метода зависит от ряда условий, в том числе от требуемой точности, допустимых затрат памяти и времени выполнения программ. Мы ограничимся основными вопросами вычисления элементарных функций в рамках их наиболее простого и универсального представления в виде степенных рядов Тейлора (исключением будет являться итерационный процесс вычисления квадратного корня).

Рассмотрим классификацию элементарных функций. Самые простые элементарные функции принадлежат к классу целых рациональных функций, который в общем виде можно представить полиномом (многочленом) п-й степени:

функции. Перечисленные алгебраические и трансцендентные функции образуют множество основных элементарных функций — аналитически заданных в виде единых формул функций, которые получены из основных элементарных с помощью конечного числа алгебраических операций и операций образования сложных функций, причем сами операции, их число и порядок выполнения не зависят от значений аргумента. Все остальные функции называют неэлементарными. Если функция неэлементарна, то число операций над аргументом, либо сами операции, либо те и другие изменяются в зависимости от значения аргумента.

Примером неэлементарной функции является факториал: у = п\ = 1 • 2 - 3 •... - п. Здесь количество операций зависит от значения аргумента.

Вычисление рациональных и дробно-рациональных

алгебраических функций осуществляется на основе точных аналитических записей этих функций, определяющих количество, тип и последовательность выполнения арифметических операций. Для минимизации вычислительных ресурсов аналитическая запись функции может быть эквивалентно преобразована, но в любом случае она остается точной в том смысле, что если точно заданы значения аргумента, точно выполнены арифметические операции, то гарантированно получается точное значение функции в виде рационального числа. Аналогичный способ вычисления неприменим в случае трансцендентных функций, так как их аналитическая запись, например у = sinx, не позволяет непосредственно вычислять значение функции по значению аргумента с помощью арифметических операций. Трансцендентные функции определяются, как правило, приближенно на основе таблиц соответствующей точности [8, 58]. Программная реализация табличного вычисления этих функций очень громоздка, поэтому основной способ их вычисления заключается в замене (аппроксимации) исходной трансцендентной функции некоторой другой, алгебраической функцией, близкой к исходной по своим значениям в определенном диапазоне изменения аргумента и вычисляемой достаточно экономичным способом с помощью арифметических операций.

Элементарные функции принадлежат к классу функций, точно представимых степенными рядами:

Рис. 4.1. Графики показательной функции и ее многочленов Тейлора

этой точки, что требует для обеспечения заданной точности существенного увеличения числа членов полинома и соответственно затрат памяти и времени на его программное вычисление.

Поэтому данный метод аппроксимации элементарных функций применим при относительно невысоких требованиях к точности и диапазону аргументов вычисляемых функций. При более высоких требованиях необходимо использовать иные способы приближений функции, в частности наилучшие полиномиальные приближения (в смысле наименьшей нормы), обеспечивающие более быструю и равномерную сходимость на заданном интервале, чем полином Тейлора. Однако рассмотрение этих и других методов выходит за рамки книги.

Далее будут приведены конкретные алгоритмы и программы вычисления некоторых основных элементарных функций и факториала. Все входные, промежуточные и результирующие данные представлены в коротком формате двоичного числа с плавающей запятой (см. рис. 2.3, а). Программы используют подпрограммы арифметики с плавающей запятой, рассмотренные в гл. 2. Двоичные значения входных и десятичные значения выходных тестовых данных получены с помощью подпрограмм ПП310 и ПДП32, описанных в гл. 3.

4.2. ОБРАТНАЯ ПРОПОРЦИОНАЛЬНОСТЬ

Дробно-рациональная функция обратной пропор-

Рис. 4.2. График функции обратной пропорциональности

две ветви, расположенные в первом и третьем квадрантах декартовых координат, если а > 0, и во втором и четвертом квадрантах, если а С 0 (рис. 4.2). График функции представляет собой гиперболу, асимптотами которой являются оси координат хи ц.

Формирование единицы с плавающей запятой в заданной области памяти выполняет программа ЕДПЗ:

В случае переполнения или антипереполнения порядка результата, а также при попытке деления на нулевой аргумент в программе ОБРАТ устанавливается признак переноса CY= 1. Тестовые данные программы приведены в табл. 4.1.

<< | >>
Источник: Гуртовцев А. Л., Гудыменко С. В.. Программы для микропроцессоров: Справ, пособие.— Мн.: Выш. шк.,1989.— 352 с.: ил.. 1989

Еще по теме ОБЩИЕ СВЕДЕНИЯ: