Научная статья на тему 'Вычисление элементарных функций с аргументами, представленными полями'

Вычисление элементарных функций с аргументами, представленными полями Текст научной статьи по специальности «Математика»

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

Текст научной работы на тему «Вычисление элементарных функций с аргументами, представленными полями»

• к созданию датчиков с расширенными возможностями архивации и обработки данных измерений, выполняющих функции обнаружения заданных событий и осуществления различных законов регулирования и логического управления [12];

• к созданию датчиков, определяющих и компенсирующих влияние электромагнитных наводок, а также плохих контактов в цепи путём применения проверки на достоверность;

• к созданию датчиков самостоятельно осуществляющих предварительную оценку состояния измеряемого параметра [13];

• к созданию датчиков, компенсирующих погрешность датирования.

С помощью математических и алгоритмических методов можно компенсировать:

• нелинейность, входящую в состав основной погрешности;

• увеличение нелинейности из-за изменения температуры;

• температурную погрешность из-за изменения свойств материала [7];

• погрешность датирования отсчета аналого-цифрового преобразователя или цифрового измерительного прибора.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. ФрайденДж. Современные датчики. Справочник. - М.: Техносфера, 2005. 592 с.

2. http://www.metran.ru/home/pr/pdf/1dd.pdf

3. http://kip.mdustry.su/honeywell/Field_Instruments/Transmiters/Pressure/ST3000_DIFFER ENTIAL/Rus/34-ST-03-60_R.pdf

4. http://www.tek-know.ru/1/102.html

5. www.emersonprocess.com/russia/files/4600_PDS_REV_AA_RUS.pdf

6. ГОСТ 8.009-84

7. http://www.metran.ru/home/pr/pdf/leaflets/ddrosemount.pdf

8. http://chipinfo.ru/literature/chipnews/200105/3.html

9. Васильев В.А. Методы уменьшения температурной погрешности датчиков давления.// Технология и конструирование в электронной аппаратуре. - 2002. - №4-5. - С. 50-54.

10. Мартынов Д.Б. Стучебников В.М. Температурная коррекция тензопреобразователей давления на основе КНС.// Датчики и Системы. - 2002. - №10. -С. 6-12.

11. http://www.honeywell.ru/products/page3_2_7.shtml.

12. Винник Т.Л. Современные технологии измерения температуры.// Мир измерений. -2005. - № 3. - С. 4-11.

13. Пьявченко О.Н. Проектирование локальных микрокомпьютерных систем - Таганрог: Изд-во ТРТУ, 2005. 238 с.

В.Е. Золотовский, Д.В.Золотовский

ВЫЧИСЛЕНИЕ ЭЛЕМЕНТАРНЫХ ФУНКЦИЙ С АРГУМЕНТАМИ, ПРЕДСТАВЛЕННЫМИ ПОЛЯМИ

Основные трудности численного определения элементарных функций с аргументом, представленных полями, является переменная точность вычислений, связанная с изменением формата данных в зависимости от задачи. Под полем данного понимается число, разрядность которого значительно превышает разрядность слова (32бита) или двойное слово (64 бита). Для представления поля принято формирование его в виде набора групп по m - бит, как правило, группа имеет 8 или 16 бит. Это позволяет упростить схемы ускоренного переноса в группах. Операции над группами ведутся независимо [1].

В вычислительных системах используются стандартные программы для фиксированных форматов данных (обычно п = 64 бита). В системах структурного моделирования программы вычисления функций ведутся с аргументами, заданными полями.

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

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

Итеративные процессы. Пусть задано выражение

У = I (х) (1)

и требуется найти значение у в некоторой известной точке х = а, где а - фиксированная величина, заданная полем L(N) с числом групп N. Так как вычисление

Щ№)) затруднительно, то будем искать значение у как корень уравнения F(y,

В соответствии с [2] получаем следующий итерационный процесс

V = V - ¥ (Х’Уп) ™

уп+1 Уп \ • (2)

РКХ,Уп )

Последовательность Уп+1 сходится к у, если выполняется условие Липшица с константой q

| F(x, Уп) - F(x, Уп+1) | < ф| Уп+1 - Уп |. (3)

Тогда начальное приближение следует выбирать из окрестности, где

F,(x, У0) | < q < 1.

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

Тогда вначале ищется приближение у для х = х1, где х1 - старшая группа.

Если \уп+1 - Уп| <£ , то условно можно считать, что уп+1 ~ уп . В этом случае переходим на следующий этап операции, увеличивая разрядность х = х1 + х2, где х2 -

следующая группа разрядов. Тогда имеем

у = у - Р((х1 + Х2),У2) ...

уп+2 Уп т^11 / \ \ . (4)

Откуда

Луп + 2 - Уп +1 -

Р' ((Х1 + Х2),У2 ) .

д Г Р {(Х1 + Х2),Уп ) дХ2 I Р' ((х1 + Х2),Уп )

Ах~

и

Уп+2 - Уп+1 +ЛУп+2 .

Далее процесс продолжается по схеме (2) и если выполняется условие (3), то входной аргумент увеличивается на следующую группу и так до окончания поля.

Вторым методом, позволяющим проводить вычисление функций с аргументом, представленным полем, является разложение в степенной ряд (ряд Тейлора или Маклорена) [3]. Ряд Маклорена имеет вид

Я(х) = т + Г(0)х + Л■ X2 +...+1^0

■ хР +... .

(5)

Как известно [4], ошибка вычисления функции 1(х) определяется как раз-

ность

Е0(х) = /(х){К)(в'Х ■ хК

к=0

к

(6)

которая может быть оценена по остаточному члену полинома, так как 0 < 9 < 1 и |х| < 1, то \Яп(х)\ <-—1 что позволяет получить предварительную оценку

(Р +1)!'

числа членов полинома

г п <

1

(р +1)!

где г - основание системы счисления.

Откуда — піп г = 1п

1

Р

(Р +1)!

= —У іп(к +1) и -— У іп(к + 1) > п іп г

К=1

К=1

Р

Для двоичной системы счисления п — 15 ^ 1п(к + 1) .

К—1

Например, если п = 128, то p » 43. Ясно, что данная оценка, как правило, является завышенной. Для организации вычислительного процесса используем метод Горнера. В этом случае имеем [5]

-1 \ „г-7 \

/(х) =

/оР

■ X +

ГР -/0

(Р — 1)!

х + -

/р—2 /0

( Р — 2 )!

х +...+ /0

■ х + /(0) .

Вычисление начинается со старшей скобки, тогда

1

(Р — 1)!

х +10

р—1

N

1

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

/(х) = И" ,

к=1( Р — к) I(р — к +1)

ак

+/0

Р—к

(7)

где а1 = ^, ак =

ак—1

(р — к +1)

х + /в

Р—к

Л

Для исключения деления представим Р в виде произведения простых чисел. В табл. 1 представлены простые числа и их обратная величина.

У

и

Таблица 1

к г=10 г=2

2 0,5 (0) 0.1(0)

3 0.(3) 0.(01)

5 0.2(0) 0.(0011)

7 0.(142957) 0.(001)

11 0.(09) 0.(000111)

13 0.(076923) 0.(000100111011)

17 0.(05882352941176470) 0.(00001111)

19 0.(052631578473684210) 0.(000011100101)

23 0.04347826086956521738(9) 0.(0000101001)

29 0.(0310) 0.(000010001101000111101111)

31 0.0322(5806451612) 0.(00001001)

37 0.(027) 0.(01101110101100111110010001010011)

41 0.(024390) 0.(00000110000110100111)

43 0.(023255813953488372093) 0.(000001011111)

47 0.(021276595744680851 ) 0.(00000110001)

53 0.(0188679245283) 0.(000001001101)

57 0.(017543859649122807) 0.()

Таким образом, для вычисления выражения (7) величина Р представляется

I

как произведение простых чисел р = ^рк , где рк - простое число. Тогда

К=1

1

X---

р

X .± і-1

Р1) Р2

(8)

Рп '

/

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

1

Пример. Пусть х = 01011011 и необходимо найти X---------------, где рі = _і. Для

этого умножаем на период X — = 0.0001011011.

Р

Затем сдвигаем результат на три разряда и складываем

Р1

00000001011011

00001011011000

00001100110011

Еще раз осуществляем сдвиг

00000000001011011

00001100110011000

00001100111110011 И так до получения необходимой точности. Затем полученный результат умножается на 1/р2 , 1/р3 и т.д. до получения искомой величины.

В качестве примера рассмотрим вычисление значений показательной функции.

Пусть задана функция у = ех, где х - аргумент, представленный полем, в полулогарифмической форме, т.е.

х = х • 2М • 2™ (9)

где N - порядок, определяющий количество сдвигов на число разрядов групп, а т - порядок сдвига на число незначащих разрядов внутри старшей группы.

Следует отметить, что если N - положительное число, то число групп результата экспоненциально возрастает. Действительно, при N = 1 число групп при п = 16 (число разрядов в группе) возрастает до 16. При N = 2 до 256 и т.д. В связи с этим введем ограничение. Если N достигает максимально-разрешённого значения Р, то это считается переполнением, и вычисления прекращаются. Величина Р устанавливается исходя из возможностей аппаратуры. Вторым фактором, устанавливающим ограничение на величину N, является необходимость представления величины е с требуемой точностью. Определим погрешность вычисления экспоненты. Для простоты изложения положим т = 0, тогда х представляется следующим образом:

XXX ... X.XXX ...X, XXX ... X..........X....XXX ... X

V— Ч______________________и Ч_____________________________^

X — 'V'-------------

N — группа (Ь — N — группа

Разобьем х на две части - целую и дробную, т.е. х — Ху + хур . Тогда

у — еХУ • вХДР .

Максимальная погрешность образуется при максимальном значении целой

ы /ТЫ) —2~(Ь-^т)

*№• N *—( I — N )т ~ 9 ~ 2

части поля Хмлх., тогда х

тах

= 2ш-М _ 2-(Ь-Ы)-т и у = . е-

2^ты 2

Величина Ут — в может быть найдена как произведение Ут — П в.

I—1

Таким образом, если е найдена с погрешностью е, то

X ( Л2Ш 2т -ьтЫ (2т —1))

У — \е + £) и в + 2 -е у£,

и

л,т л,х т (2т'м—1)с

еу — У — У — 2 -е у£ . (10)

Полагая, что е > 2-т(Ь-М), получим

= 22тМ —1+тЫ—т(Ь—N) = ^2тЫ —тЬ—1 У .

Откуда следует, что общая длина дробной части при условии, что погрешность не превзойдет значения младшего разряда поля, должна быть равна Ьдр

= (Ь-Ы)т +Ят, где Я - число дополнительных групп дробной части (Я= 2тN ).

Длина целой части равна Ьцел = Мт, а общая длина поля (Ь + Я) - групп.

В настоящее время величина е определена с приблизительно 310 десятичных знаков (п и 1023 двоичных разрядов или поле длиной Ь = 64 группы при т=16). Поле указанной длины можно считать предельным при построении

систем моделирования. Если N = 0, то для вычисления используется непосредст-

венно формула разложения

х х2 хК

в — 1 + х Ь------Ь ...Ь----------- (11)

2! к! ’ (11)

Для оценки количества членов разложения, обеспечивающих необходимую погрешность вычисления функции для заданного поля, воспользуемся формулой оценки погрешности [5]

дк+1

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

R <-

kl-k

Откуда

- ~16 f

q

k+1

kl-k

0 < x=1

где 0 < q < 1.

Путем несложных преобразований q всегда можно привести к интервалу q| < 1/2. Действительно, если х лежит в интервале % < 1, то, полагая (1 - x), получим ex = e - ey, где y = - (1 - x).

Таким образом, имеем

т(к+1)

2 = -Щ-. <12)

Прологарифмируем правую и левую части выражения (12), тогда

16N = (k + 1) + lnk! + ln k. <13)

Выражение (13) используется для итерационной оценки числа членов разложения. Для этого составляется таблица логарифмов факториала. Затем подбором

находят значение К, обеспечивающее требуемое число разрядов. Например, для стандартной разрядности L = 4 необходимо сохранять 15 членов ряда.

Таблица 2

n n! 1/n!

2 2 0.5

3 6 0.1(6)

4 24 0.041(6)

5 120 0.8(3) - 10-2

6 720 0.19889 - 10-2

7 5040 0.19841 - 10-3

8 40320 0.24802 - 10-4

9 362880 0.27557 - 10-5

10 3628800 0.27557 - 10-6

11 39916800 0.25052 - 10-7

12 479001600 0.20877 - 10-8

13 6227020800 0.16059 - 10-9

14 87178291200 0.11471 - 10-10

15 1307674368000 0.76472 - 10-12

16 20922789888000 0.47795 - 10-13

17 355687428096000 0.28115 - 10-14

18 6402373705728000 0.15619 - 10-15

19 121645100408832000 0.82206 - 10-17

20 2432902008176640000 0.41103 - 10-18

21 51090942171709440000 0.19572941 10-19

22 1124000727777607680000 0.8896791392 10-21

23 25852016738884976640000 0.3868170170630 10-22

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Золотовский В.Е. Арифметические и алгоритмические основы проблемноориентированных вычислительных систем. -Таганрог: Изд.ТРТУ. 2003.- 185с.

2. Люстерник Л.А., Абрамов А.А., Шестаков В.И., Шура-Бура М.Р.Решение математических задач на автоматических цифровых машинах Изд. АН СССР, 1952.

3. Смирнов В.И. Курс высшей математики. Т.1. -М. Изд-во Физматлит. 1961.

4. Благовещенский Ю. В., Теслер Г. С. Вычисления элементарных функций на ЭВМ -М.: Изд-во «Техника», 1977. -288с.

5. Демидович Б. П., Марон И. А. Основы вычислительной математики. -М.,1966. -664с.

В.Ф.Гузик, В.Е.Золотовский, П.В.Савельев

ВЫПОЛНЕНИЕ МАТЕМАТИЧЕСКИХ ОПЕРАЦИЙ В СИСТЕМЕ СИМВОЛЬНЫХ ВЫЧИСЛЕНИЙ

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

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

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

Для вычитания алгоритм несколько усложняется. Как известно, вычитание -это сложение с обратным знаком. Поэтому помимо объединения точек входа потребуется произвести действие над знаками первого ряда слагаемых вычитаемого. А именно, нужно изменить знаки на противоположные у тех слагаемых, которые соединены непосредственно с точкой входа вычитаемого.

Покажем на примере, как происходит склейка деревьев представления символьных выражений. Возьмём исходные выражения:

7А(2В + С)+5Е 4Е - 7А.

Внутри вычислительной системы они будут выглядеть следующим образом (рис.1).

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