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

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

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

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

Секция вычислительной техники

УДК 681.324

В.Ф. Гузик, В.Е. Золотовский

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

ПОЛЯМИ

Основные трудности численного определения элементарных функций с аргументами, представленными полями, является переменная точность вычислений, связанная с изменением формата данных в зависимости от задачи. Таким образом, в системах структурного моделирования используются как стандартные программы для фиксированных форматов данных (обычно п = 64 бита), так и программы вычисления функций с аргументом, заданных полями. Под полем понимаются данные, организованные в группы по т разрядов и содержащие неограниченное значение групп. Каждая группа снабжается дополнительным разрядом. Тогда число Х = 0.11.01.11.01.01 (п = 10, т = 4) представляется в виде Х = 0 . 1101 . 0 . 1101 . 0 . 0100.

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

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

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

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

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

и требуется найти значение у в некоторой известной точке х = а, где а - фиксированная величина, заданная полем Ь(Ы) с числом групп N. Так как вычисление затруднительно, то будем искать значение у как корень уравнения Г(у, Ь(^). Организуем следующий итерационный процесс:

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

у = / (х)

(1)

| Б(х, Уп) - Б(х, уп+1) | < q•| уп+1 - Уп |.

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

| ¥' (х, у о) | < q < 1. (2)

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

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

группа. Если Уп+1 Уп\ < Є , то условно

считать, что уп+1 » уп . Затем

переходим на следующий этап операции, увеличивая разрядность х = х1 + х2, где х2 - следующая группа разрядов. Тогда имеем

У п+2 = Уп

Откуда

ЛУп+2 = Уп+1

э

Эх0

Р ((+ Х2 )? У2 )

Р' ((Х1 + Х2 )? У2 ) '

Р ((Х1 + Х2 )? Уп ) Р’ (( Х1 + Х2 X Уп )

Ух0

У п+2 = Уп+1 +Ау

п+2

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

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

/" (0) 2 /(Р )(0)

/(х) = /(0) + /’(0) х + • х 2 + ... +

• хр +...

(3)

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

г Ґ л /у ч V / №• х) к

Е0(х) = /(х)— X------------------,------ х ’

к=0 к

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

(Р +1)!'

-п

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

1

(Р +1)!

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

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

( р+1)!

р і -Р

= —X 1п(к +1) и ]---------X1п(к + 1 -

1п г К=1

п.

1

К =1

Для двоичной системы счисления

п

= 1,5Х !п( к +1).

К=1

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

/ ( х):

р!

(Р — 1)!

х +

/р-2 І0 (Р — 2)!

х + ... + / '(0)

х + / (0).

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

1

(Р +1)!

/р (0) Р

\

• х + 1

(4)

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

Таблица 1

К 1/К в десятичном коде 1/К в двоичном коде

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.(0001001010)

17 0.(0583235294176470) 0.(000001111)

19 0.(052631578473684210) 0.(000011100101)

23 0.04347826086956521738(9) 0.(0000101001)

29 0.(0310) 0.(0000100011001011)

31 0.0322(5806451612) 0.(0001001)

37 0.(027) 0.(01101110101100111110010001010011)

41 0.(024390) 0.(00000110000110100111)

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

как произведение простых чисел

Р = П Рк

где рк - простое число. Тогда ум-

К=1

ножение выполняется следующим образом:

1

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

х---=

Р

х •

Рх

\_

Р 2

Рп

/

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

1

1

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

х = х -2м -2т, (5)

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

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

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

х = V---------- ----------; >•--------------------------'

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

Рис. 1

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

Максимальная погрешность образуется при Хмдх, тогда

гуП'N гу — (L-N )• П

max .

xy —2—(L—N0n Откуда y — e ' e .

x — 2n'N x

Величина ут — e может быть найдена как произведение yx — Kp,

где Ki — K—, Kо — e, i = 0, 1, ..., p - nN.

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

ух —(e + e)2nN » e2n'N + 2nN'e2

= ух- у; = 2 пм-е2п -1.

е = 2 2п ■м -1+пМ

Полагая, что е > 2, получим е у* = 2 , откуда следует, что общая

длина дробной части при условии, что погрешность не превзойдет значения младшего разряда поля, должна быть равна Ьдр = № +Яп, где Я - число групп дробной части.

Длина целой части равна Ьцел = Ып, а общая длина поля Ь = 2N + Я групп. Общая длина в разрядах равна Ь = (2N + Я) ■ п.

и

В настоящее время величина е определена с точностью приблизительно до 310 десятичных знаков (п » 1023 двоичных разрядов или поле длиной Ь = 64 группы). Указанную длину поля можно считать предельной при построении систем моделирования. Если N <0, то для вычисления используется непосредственно формула разложения

х л х2 ХК

е — 1 + х +-----------+... +-----

2! В!

16 ЫВ Яп —

1 ((2-16)— * )К — 2 -Яп, (2—16Ы ■ г)— 2

—Я ■ п

В!

В — Я В — Яп N ’ В! пЫ

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

чк+1

Я <

В! ■ В

Откуда

(2—16 Г

,В+1

В! ■ В

где 0 < q < 1.

Путем несложных преобразований q всегда можно привести к интервалу 0 < < 1/2. Действительно, если х лежит в интервале % < 1, то, полагая

х = 1 - (1 - х), получим ех = е ■ еу, где у = - (1 - х).

Т аким образом, имеем Окончательно имеем

2-^ —

2

-(К+1)

В! В

- 16N = - (к + 1) - 1од2 к! - 1од2 к.

1Ш 1ё2 = (к + 1) 1ё2 + !ёк! + 1§ к.

(6)

Выражение (6) используется для итерационной оценки числа членов разложения. Для этого составляется таблица логарифмов факториала (табл. 2). Затем подбором находят значение К, обеспечивающее заданное значение разрядов. Например, для N = 64 необходимо сохранять 8 членов ряда.

Таблица 2

п п! 1/п!

2 2 0.5

3 6 0.1(6)

4 24 0.25- 0.1(6) = 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

Окончание табл. 2

14 S717S291200 0.11471 • 10-10

15 130767436S000 0.76472 • 10-12

16 209227S9SSS000 0.47795 • 10-13

17 3556S742S096000 0.2S115 • 10-14

1S 640237370572S000 0.15619 • 10-15

19 12164510040SS32000 0.S2206 • 10-17

20 243290200S176640000 0.41103 • 10-1S

Для отыскания значения у подставим значения х в исходную формулу

Л

у = (Ы + т) 1п2 + 2

( t 2 t2n-1 ^

t +-------+... +------------

3 2n - І

v /

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

БИБЛИОГРАФИЧЕСКИМ СПИСОК Золотовский В.Е. Проблемно-ориентированные системы структурного моделирования. - Таганрог: Изд-во ТРТУ, 2006. - 187 с.

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

1

2

3

УДК 681.324

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

Ю.В. Чернухин, М.В. Крамарь

ПРОБЛЕМЫ ИСПОЛЬЗОВАНИЯ МНОГОЯЗЫКОВОЙ ТРАНСЛЯЦИИ В КОНТЕКСТНО-ЗАВИСИМЫХ ЯЗЫКОВЫХ СРЕДАХ

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

В 70-х годах ХХ в. Т. Виноград разработал систему «SHRDLU», понимающую естественный язык. В ней использовалась системная грамматика, реализованная в виде программ на различных специальных языках (PROGRAMMAR, Planner и др.). Суть системы «SHRDLU» - разбор с выделением признаков, таких как число, тип предложения и т.д., которые используются на лексическом и семантическом уровнях. При этом для каждого из языков требовался свой транслятор, что усложняло процесс трансляции.

На кафедре вычислительной техники ТТИ ЮФУ была разработана среда «Мультитранслятор» - гибкая и универсальная система продукционного типа. В число применений системы входит трансляция языков моделирования, языков описания аппаратуры и языков программирования высокого уровня.

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