Комп'ютер для операцій з функціями
Комп'ютер для операцій з математичними функціями (на відміну від звичайного комп'ютера) оперує з функціями на апаратному рівні (тобто без програмування цих операцій).[1][2][3]
Історія
Обчислювальна машина для операцій з функціями була запропонована і розроблена Карцевим в 1967 році[1]. У число операцій цієї обчислювальної машини входили додавання, віднімання і множення функцій, порівняння функцій, аналогічні операції над функцією і числом, відшукання максимуму функцій, обчислення невизначеного інтеграла, обчислення певного інтеграла від похідної двох функцій, зсув функції з абсциси і т. д. За архітектурою ця обчислювальна машина була (користуючись сучасною термінологією) векторним процесором. У ній використовувався той факт, що багато з цих операцій можуть бути витлумачені як відомі операції над векторами: додавання і віднімання функцій — як додавання і віднімання векторів, обчислення певного інтеграла від похідної двох функцій — як обчислення скалярного добутку двох векторів, зсув функцій з абсциси — як поворот вектора щодо осей координат і т. д.[1] У 1966 році Хмєльник запропонував метод кодування функцій[2] , тобто представлення функції єдиним (для функції в цілому) позиційним кодом. При цьому зазначені операції з функціями виконуються як унікальні машинні операції з такими кодами на єдиному арифметичному пристрої[3]
Позиційні коди функцій одного аргументу[2][3]
Основна ідея
Позиційний код цілого числа являє собою запис цифр цього числа в деякій позиційній системі числення, що має вигляд
Такий код можна назвати лінійним. На відміну від нього позиційний код функції одного аргументу має вигляд
тобто є плоским і трикутним, оскільки цифри в ньому утворюють трикутник.
Вказаному позиційному коду цілого числа відповідає сума виду
- ,.
де — підстава даної системи числення. Вказаному позиційному коду функції одного аргументу відповідає подвійна сума виду
- ,
де — ціле позитивне число, кількість значень цифри , — певна функція аргументу .
Додавання позиційних кодів чисел пов'язане з передачею перенесення в старший розряд за схемою
- .
Додавання позиційних кодів функцій одного аргументу також пов'язане з передачею перенесення за схемою
- .
При цьому одне і теж перенесення передається одночасно в два старших розряди.
R-ті трикутні коди
Трикутний код називається R-м (і позначається як ), якщо числа приймають значення з множини
- де и .
Наприклад, трикутний код є потрійним , якщо , і — четверичним , якщо .
Для R-х трикутних кодів справедливі наступні рівності:
- ,
де 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-х трикутних кодів. Похідна функції , визначеною вище
- .
Тому диференціювання трикутних кодів функції полягає у визначенні трикутного коду приватною похідною і множенні його на відомий трикутний код похідної . Визначення трикутного коду приватною похідною ґрунтовано на співвідношенні
- .
Спосіб диференціювання полягає в організації перенесень з 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 вузли відповідають цифрам , а в кухлях показані значення індексів відповідної цифри. Позиційний код функції двох аргументів називається пірамідальним. Позиційний код називається R-м(і позначається як ), якщо числа набувають значень з множини . При складанні кодів перенесення поширюється в чотири розряди і тому .
Позиційному коду функції декількох аргументів відповідає сума виду
- ,
де — ціле позитивне число, кількість значень цифри , а — певні функції аргументів . Позиційний код функції декількох аргументів називається гіперпірамідальним. На мал. 2 показаний для прикладу позиційний гіперпірамідальний код функції трьох аргументів. У нім вузли відповідають цифрам , а в кухлях показані значення індексів відповідної цифри. Позиційний гіперпірамідальний код називається R-м(і позначається як ), якщо числа набувають значень з множини . При складанні кодів перенесення поширюється в a-мерный куб, що містить розрядів і тому .
Примітки
- Малиновский Б. Н. История вычислительной техники в лицах. — Киев, Фирма "КИТ", ПТОО "АСК". — 1995. — ISBN 5-7707-6131-8.
- Хмельник С. И. Кодирование функций. — 1966. — Т. 4.
- Хмельник С. И. Компьютерная арифметика функций. Алгоритмы и аппаратура. — Mathematics in Computers. — Россия-Израиль, 2004. — ISBN 978-0-557-07520-1.
- Хмільник С. И. Декілька типів позиційних кодів функцій // Кібернетика, АН УРСР. — 1970. — Т. 5.