Комп'ютер для операцій з функціями

Матеріал з testwiki
Версія від 05:53, 26 вересня 2024, створена imported>InternetArchiveBot (Виправлено джерел: 1; позначено як недійсні: 0.) #IABot (v2.0.9.5)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

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

Історія

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

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

Основна ідея

Позиційний код цілого числа A являє собою запис цифр α цього числа в деякій позиційній системі числення, що має вигляд

A=α0α1αkαn

Такий код можна назвати лінійним. На відміну від нього позиційний код функції F(x) одного аргументу x має вигляд

F(x)=(    α22α2k α11α12α1kα00α01α02α0k)

тобто є плоским і трикутним, оскільки цифри в ньому утворюють трикутник.

Вказаному позиційному коду цілого числа відповідає сума виду

A=k=0nαkρk,.

де ρ — підстава даної системи числення. Вказаному позиційному коду функції одного аргументу відповідає подвійна сума виду

F(x)=k=0nm=0kαmkRkykm(1y)m,

де R — ціле позитивне число, кількість значень цифри α, y — певна функція аргументу x.

Додавання позиційних кодів чисел пов'язане з передачею перенесення в старший розряд за схемою

αkαk+1.

Додавання позиційних кодів функцій одного аргументу також пов'язане з передачею перенесення за схемою

(  αk+1,m+1  αk,mαk+1,m).

При цьому одне і теж перенесення передається одночасно в два старших розряди.

R-ті трикутні коди

Трикутний код називається R-м (і позначається як TKR), якщо числа αmk приймають значення з множини

DR={r1,r1+1,,1,0,1,,r21,r2}, де r1,r20 и R=r1+r2+1.

Наприклад, трикутний код є потрійним TK3, якщо αmk(1,0,1), і — четверичним TK4, якщо αmk(2,1,0,1).

Для R-х трикутних кодів справедливі наступні рівності:

(  0  aR0)=(  a  0a),(  a  00)=(  0  aRa),(  0  0a)=(  a  aR0),

де a — будь-яке число. існує TKR будь-якого цілого дійсного числа. Зокрема, TKR(α)=α. Також існує TKR любої функції виду yk. Зокрема, TKR(y2)=(0 0 1).

Однорозрядне складання

У R-х трикутних кодах полягає в тому, що

  • у даному (mk)-розряді визначається сума Smk складових розрядів αmk, βmk і двох перенесень pm,k1, pm1,k1, що поступили в цей розряд ліворуч, тобто
Smk=αmkβmkpm,k1pm1,k1,
  • ця сума представляється у вигляді Smk=σmkRpmk, де σmkDR,
  • σmk записується в (mk)-розряд сумарного коду, а перенесення pmk з цього розряду передається в (m,k1)-разряд і (m1,k1)-розряд.

Ця процедура описується(як і при однорозрядному складанні чисел) таблицею однорозрядного складання, де мають бути присутніми усі значення доданків αmkDR і βmkDR і усі значення перенесень, що виникають при розкладанні суми Smk=σmkRpmk. Така таблиця може бути синтезована при R>2.

Нижче приведена таблиця однорозрядного складання при R=3:

Smk TK(Smk) σmk pmk
. . 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-х трикутних кодах відрізняється від однорозрядного складання тільки тим, що в даному (mk)-розряді величина Smk визначається по формулі

Smk=αmkβmkpm,k1pm1,k1.

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

у R-х трикутних кодах ґрунтовано на використанні співвідношення

(  a  00)=(  0  aRa),

звідки витікає, що ділення кожного розряду викликає перенесення в два нижні розряди. Отже, розрядний результат в цій операції є сумою частки від ділення цього розряду на R і перенесень з двох верхніх розрядів. Таким чином, при діленні на параметр R

  • у даному (mk)-розряді визначається сума
Smk=αmk/Rpm1,k/Rpm1,k1,
  • ця сума представляється у вигляді Smk=σmkpmk/R, де σmkDR,
  • σmk записується в (mk)-розряд результуючого коду, а перенесення pmk з цього розряду передається в (m1,k1)-разряд і (m1,k)-розряд.

Ця процедура описується таблицею однорозрядного ділення на параметр R, де мають бути присутніми усі значення доданків і усі значення перенесень, що виникають при розкладанні суми Smk=σmk+pmk. Така таблиця може бути синтезована при R>2.

Ниже приведена таблица одноразрядного ділення на параметр R при R=3:

Smk TK(Smk) σmk pmk
. . 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-х трикутних кодів. Множення деякого коду TKR' на (mk)-розряд іншого коду TKR' полягає в (mk)-зміщенні коду TKR', тобто зрушенні його на k стовпців вліво і на m рядків вгору. Множення кодів TKR' і TKR' полягає в послідовних (mk)-зміщеннях коду TKR' і складаннях зрушеного коду TKR' з частковим твором(як і в позиційних кодах чисел).

Диференціювання

R-х трикутних кодів. Похідна функції F(x), визначеною вище

F(x)x=yxF(x)y.

Тому диференціювання трикутних кодів функції F(x) полягає у визначенні трикутного коду приватною похідною F(x)y і множенні його на відомий трикутний код похідної yx. Визначення трикутного коду приватною похідною F(x)y ґрунтовано на співвідношенні

x(  0 0αmk000)=(  (km)αmk 0(k2m)αmk00(m)αmk).

Спосіб диференціювання полягає в організації перенесень з mk- розряду в(m 1, k) -розряд і в(m — 1, k) -розряд, а їх підсумовування в цьому розряді робиться аналогічно однорозрядному складанню.

Кодування і декодування

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

F(x)=k=0nAkyk,

з цілими коефіцієнтами Ak, може бути представлена R-м трикутним кодом, оскільки ці коефіцієнти і функції yk мають R-ті трикутні коди(про що сказано на початку розділу). З іншого боку, R-й трикутний код може бути представлений вказаним рядом, оскільки будь-який доданок αmkRkyk(1y)m у позиційному розкладанні функції(що відповідає цьому коду) може бути представлено таким же рядом.

Укорочення

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

Масштабний коефіцієнт

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

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

Мал. 2 Пірамідальний код функції двох аргументів

Позиційний код функції двох аргументів зображений на мал. 1. Йому відповідає потрійна сума виду

F(x,v)=k=0nm1=0km2=0kαm1,m2,kRkykm1(1y)m1zkm2(1z)m2,

де R — ціле позитивне число, кількість значень цифри αm1,m2,k, а y(x),z(v) — певні функції аргументів x,v відповідно. На мал. 1 вузли відповідають цифрам αm1,m2,k, а в кухлях показані значення індексів m1,m2,k відповідної цифри. Позиційний код функції двох аргументів називається пірамідальним. Позиційний код називається R-м(і позначається як PKR), якщо числа αm1,m2,k набувають значень з множини DR. При складанні кодів PKR перенесення поширюється в чотири розряди і тому R7.

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

F(x1,xi,xa)=k=0nm1=0kma=0k(αm1,ma,kRki=1a(yikmi(1yi)mi)),
Файл:GipPirKod.jpg
Мал. 1 Гіперпірамідальний код функції трьох аргументів

де R — ціле позитивне число, кількість значень цифри αm1,ma,k, а yi(xi) — певні функції аргументів xi. Позиційний код функції декількох аргументів називається гіперпірамідальним. На мал. 2 показаний для прикладу позиційний гіперпірамідальний код функції трьох аргументів. У нім вузли відповідають цифрам αm1,m2,m3,k, а в кухлях показані значення індексів m1,m2,m3,k відповідної цифри. Позиційний гіперпірамідальний код називається R-м(і позначається як GPKR), якщо числа αm1,ma,k набувають значень з множини DR. При складанні кодів GPKR перенесення поширюється в a-мерный куб, що містить 2a розрядів і тому R(2a11).

Примітки

Шаблон:Reflist