Компьютер для операций с функциями

17-05-2023

Компьютер для операций с математическими функциями (в отличие от обычного компьютера) оперирует с функциями на аппаратном уровне (то есть без программирования этих операций). [1] [2] [3]

Содержание

История

Вычислительная машина для операций с функциями была предложена и разработана Карцевым в 1967 году [1]. В число операций этой вычислительной машины входили сложение, вычитание и умножение функций, сравнение функций, аналогичные операции над функцией и числом, отыскание максимума функций, вычисление неопределенного интеграла, вычисление определенного интеграла от производной двух функций, сдвиг функции по абсциссе и т. д. По архитектуре эта вычислительная машина являлась (пользуясь современной терминологией) векторным процессором. В ней использовался тот факт, что многие из этих операций могут быть истолкованы как известные операции над векторами: сложение и вычитание функций — как сложение и вычитание векторов, вычисление определенного интеграла от производной двух функций — как вычисление скалярного произведения двух векторов, сдвиг функций по абсциссе — как поворот вектора относительно осей координат и т. д.[1] В 1966 году Хмельник предложил метод кодирования функций [2] , то есть представления функции единым (для функции в целом) позиционным кодом. При этом указанные операции с функциями выполняются как уникальные машинные операции с такими кодами на единственном арифметическом устройстве [3]

Позиционные коды функций одного аргумента [2][3]

Основная идея

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

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

то есть является плоским и треугольным, поскольку цифры в нем образуют треугольник.
Указанному позиционному коду целого числа соответствует сумма вида

,.

где  — основание данной системы счисления. Указанному позиционному коду функции одного аргумента соответствует двойная сумма вида

,

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

.

Сложение позиционных кодов функций одного аргумента также связано с передачей переноса по схеме

.

При этом один и тот же перенос передается одновременно в два старших разряда.

R-ые треугольные коды

Треугольный код называется R-ым (и обозначается как ), если числа принимают значения из множества

где и .

Например, треугольный код является троичным , если , и — четверичным , если .
Для R-ых треугольных кодов справедливы следующие равенства:

\begin{pmatrix} \ \ & 0 \\ \ \nearrow  & \  \\ aR \longrightarrow & 0  \end{pmatrix}=\begin{pmatrix} \ \ & a \\ \ \nearrow  & \  \\ 0 \longrightarrow & a  \end{pmatrix}, 
\begin{pmatrix} \ \ & a \\ \ \nearrow  & \  \\ 0 \longrightarrow & 0  \end{pmatrix}=\begin{pmatrix} \ \ & 0 \\ \ \nearrow  & \  \\ aR \longrightarrow & -a  \end{pmatrix},
\begin{pmatrix} \ \ & 0 \\ \ \nearrow  & \  \\ 0 \longrightarrow & a  \end{pmatrix}=\begin{pmatrix} \ \ & -a \\ \ \nearrow  & \  \\ aR \longrightarrow & 0  \end{pmatrix},

где a — любое число. Существует любого целого действительного числа. В частности, . Также существует любой функции вида . В частности, .

Одноразрядное сложение

в R-ых треугольных кодах состоит в том, что

  • в данном -разряде определяется сумма слагаемых разрядов и двух переносов , поступивших в данный разряд слева, то есть
,
  • эта сумма представляется в виде , где ,
  • записывается в -разряд суммарного кода, а перенос из данного разряда передается в -разряд и -разряд.

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

Smk TK(Smk)
. . 0 . .
0 0 0 0 0
. . 0 . .
1 1 0 1 0
. . 0 . .
(-1) (-1) 0 (-1) 0
. . 1 . .
2 (-1) 1 (-1) 1
. . 1 . .
3 0 1 0 1
. . 1 . .
4 1 1 1 1
. . (-1) . .
(-2) 1 (-1) 1 (-1)
. . (-1) . .
(-3) 0 (-1) 0 (-1)
. . (-1) . .
(-4) (-1) (-1) (-1) (-1)

Одноразрядное вычитание

в R-ых треугольных кодах отличается от одноразрядного сложения только тем, что в данном -разряде величина определяется по формуле

.

Одноразрядное деление на параметр R

в R-ых треугольных кодах основано на использовании соотношения

,

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

  • в данном -разряде определяется сумма
,
  • эта сумма представляется в виде , где ,
  • записывается в -разряд результирующего кода, а перенос из данного разряда передается в -разряд и -разряд.

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

Smk TK(Smk)
. . 0 . .
0 0 0 0 0
. . 1 . .
1 0 0 1 0
. . (-1) . .
(-1) 0 0 (-1) 0
. . 0 . .
1/3 1 (-1/3) 0 1
. . 1 . .
2/3 (-1) 1/3 1 (-1)
. . 1 . .
4/3 1 (-1/3) 1 1
. . 2 . .
5/3 (-1) 1/3 2 (-1)
. . 0 . .
(-1/3) (-1) 1/3 0 (-1)
. . (-1) . .
(-2/3) 1 (-1/3) (-1) 1
. . (-1) . .
(-4/3) (-1) 1/3 (-1) (-1)
. . (-2) . .
(-5/3) 1 (-1/3) (-2) 1

Сложение и вычитание

R-ых треугольных кодов состоит (как и в позиционных кодах чисел) в последовательно выполняемых одноразрядных операциях. При этом одноразрядные операции во всех разрядах каждого столбца выполняются одновременно.

Умножение

R-ых треугольных кодов. Умножение некоторого кода на -разряд другого кода заключается в -сдвиге кода , то есть сдвиге его на k столбцов влево и на m строк вверх. Умножение кодов и заключается в последовательных -сдвигах кода и сложениях сдвинутого кода с частичным произведением (как и в позиционных кодах чисел).

Дифференцирование

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

.

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

.

Cпособ дифференцирования заключается в организации переносов из mk-разряда в (m+1,k)-разряд и в (m-1,k)-разряд, а их суммирование в данном разряде производится аналогично одноразрядному сложению.

Кодирование и декодирование

R-ых треугольных кодов. Функция, представленная рядом вида

,

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

Укорочение

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

Масштабный коэффициент

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

Позиционные коды функций многих аргументов [4]

Рис. 1. Пирамидальный код функции двух аргументов

Позиционный код функции двух аргументов изображен на рис. 1. Ему соответствует тройная сумма вида

,

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

Позиционному коду функции нескольких аргументов соответствует сумма вида

,
Рис. 2. Гиперпирамидальный код функции трех аргументов

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

Примечания

  1. ↑ История вычислительной техники в лицах. — Киев, Фирма "КИТ", ПТОО "АСК". — 1995. — ISBN 5-7707-6131-8
  2. ↑ Кодирование функций // Кибернетика, АН УССР. — 1966. — Т. 4.
  3. ↑ Компьютерная арифметика функций. Алгоритмы и аппаратура. — Mathematics in Computers. — Россия-Израиль, 2004. — ISBN 978-0-557-07520-1
  4. Несколько типов позиционных кодов функций // Кибернетика, АН УССР. — 1970. — Т. 5.

Компьютер для операций с функциями.

© 2011–2023 stamp-i-k.ru, Россия, Барнаул, ул. Анатолия 32, +7 (3852) 15-49-47