Dator för operationer med funktioner
Inom datateknik och datavetenskap arbetar en dator för operationer med (matematiska) funktioner (till skillnad från den vanliga datorn ) med funktioner på hårdvarunivå (dvs utan att programmera dessa operationer).
Historia
En beräkningsmaskin för operationer med funktioner presenterades och utvecklades av Mikhail Kartsev 1967. Bland funktionerna för denna dator var funktionerna addition, subtraktion och multiplikation, funktionsjämförelse, samma operationer mellan en funktion och ett tal, att hitta funktionen maximum , beräkna obestämd integral , beräkna bestämd integral av derivata av två funktioner, derivata av två funktioner, förskjutning av en funktion längs X-axeln etc. Genom sin arkitektur var denna datormaskin (med modern terminologi) en vektorprocessor eller arrayprocessor , en central processing unit (CPU) som implementerar en instruktionsuppsättning som innehåller instruktioner som arbetar på endimensionella datamatriser som kallas vektorer . I den har det använts det faktum att många av dessa operationer kan tolkas som den kända operationen på vektorer: addition och subtraktion av funktioner - som addition och subtraktion av vektorer, beräkning av en bestämd integral av två funktionsderivator - som att beräkna vektorprodukten av två vektorer, funktionsförskjutning längs X-axeln – som vektorrotation kring axlar, etc. 1966 hade Khmelnik föreslagit en funktionskodningsmetod, dvs funktionsrepresentationen med en "enhetlig" (för en funktion som helhet) positionskod. Och så utförs de nämnda operationerna med funktioner som unika datoroperationer med sådana koder på en "enkel" aritmetisk enhet .
Positionskoder för funktioner med en variabel
Huvudidén
Positionskoden för ett heltal är en numerisk notation av siffrorna i ett visst positionstalssystem av formen
- .
Sådan kod kan kallas "linjär". Till skillnad från den har en positionskod för en variabel funktion formen:
och så är den platt och "triangulär", eftersom siffrorna i den utgör en triangel.
Värdet på positionstalet ovan är värdet för summan
- ,
där är radixen för nämnda talsystem. Positionskoden för en funktion med en variabel motsvarar en "dubbel" kod i formuläret
- ,
där är ett positivt heltal, kvantiteten av värden som tog , och är en viss funktion av argumentet .
Tillägg av positionskoder för nummer är associerat med överföringen till en högre siffra enligt schemat
- .
Tillägg av positionskoder för funktioner med en variabel är också associerat med överföringen till högre siffror enligt schemat:
- .
Här överförs samma överföring samtidigt till två högre siffror.
R -när triangulär kod
En triangulär kod kallas R-nary (och betecknas som ), om talen tar sina värden från mängden
- , där och .
Till exempel är en triangulär kod en ternär kod , om , och kvartär , om . För R -nary triangulära koder är följande likheter giltiga:
- ,
där är ett godtyckligt tal. Det finns av ett godtyckligt heltal. Speciellt . Det finns också av vilken funktion som helst av formen . Till exempel, .
Ensiffrig tillägg
i R-nary består triangulära koder av följande:
- i den givna -siffran bestäms summan av siffrorna som läggs till och två bär , överförd till denna siffra från vänster, dvs
- ,
- denna summa presenteras i formen där ,
- skrivs i -siffran i sammanfattningskoden, och bär från given siffra överförs till -siffra och -siffra .
Denna procedur beskrivs (som även för ensiffrig addition av siffror) av en tabell med ensiffrig addition, där alla värden för termerna α m och måste vara närvarande och alla värden för bär som uppträder vid nedbrytning av summan . En sådan tabell kan syntetiseras för Nedan har vi skrivit tabellen med ensiffrig addition fö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) |
Ensiffrig subtraktion
i R-nary skiljer sig triangulära koder från ensiffrig addition endast genom att i den givna ( -siffran värdet bestäms av formeln
- .
Ensiffrig division med parametern R
i R-nary triangulära koder är baserad på att använda korrelationen:
- ,
av detta följer att uppdelningen av varje siffra orsakar bärs i två lägsta siffror. Följaktligen är siffrornas resultat i denna operation summan av kvoten från divisionen av denna siffra med R och två bär från de två högsta siffrorna. Således, när dividerat med parameter R
- i den givna -siffran bestäms följande summa
- ,
- denna summa presenteras som där ,
- skrivs in i —siffra i den resulterande koden, och bär från den givna siffran överförs till -siffran och -siffran .
Denna procedur beskrivs av tabellen med ensiffrig division med parameter R, där alla värden på termer och alla värden på bär, som visas vid sönderdelningen av summan S måste finnas. En sådan tabell kan syntetiseras för Nedan kommer tabellen att ges för ensiffrig division med parametern R fö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 |
Addition och subtraktion
av R-nära triangulära koder består (som i positionskoder av siffror) i efterföljande utförda ensiffriga operationer. Tänk på att ensiffriga operationer i alla siffror i varje kolumn utförs samtidigt.
Multiplikation
av R-nary triangulära koder. Multiplikation av en kod med -siffra i en annan kod består av -förskjutning av koden , dvs dess förskjutning av k kolumner åt vänster och m rader uppåt. Multiplikation av koder och består av efterföljande -förskjutningar av koden och tillägg av den skiftade koden med delprodukten ( som i positionskoderna för siffror).
Härledning
av R-nary triangulära koder. Derivatan av funktionen definierad ovan, är
- .
Så härledningen av triangulära koder för en funktion består i att bestämma den triangulära koden för den partiella derivatan och dess multiplikation med den kända triangulära koden för derivatan . Bestämningen av den triangulära koden för den partiella derivatan baseras på korrelationen
- .
Härledningsmetoden består av att organisera bär från mk-siffra till (m+1,k)-siffra och till (m-1,k)-siffra, och deras summering i den givna siffran utförs på samma sätt som i en- siffertillägg.
Kodning och avkodning
av R-nary triangulära koder. En funktion representerad av serier av formen
- ,
med heltalskoefficienter , kan representeras av R-nära triangulära koder, för dessa koefficienter och funktioner har R-nary triangulära koder (som nämndes i början av avsnittet). Å andra sidan kan R-när triangulär kod representeras av nämnda serie, som vilken term som helst i positionsexpansionen av funktionen (motsvarande denna kod) kan representeras av en liknande serie.
Avkortning
av R-nary triangulära koder. Detta är namnet på en operation för att minska antalet "icke"-noll kolumner. Nödvändigheten av trunkering uppträder vid uppkomsten av bär bortom siffernätet. Trunkeringen består av division med parameter R. Alla koefficienter i serien som representeras av koden reduceras R gånger, och bråkdelen av dessa koefficienter kasseras. Den första termen i serien förkastas också. Sådan reduktion är acceptabel om det är känt att serien av funktioner konvergerar. Trunkering består av efterföljande utförda ensiffriga operationer av division med parameter R. Ensiffriga operationer i alla siffror i en rad utförs samtidigt och överföringarna från den nedre raden kasseras.
Skalfaktor
R-när triangulär kod åtföljs av en skalfaktor M, liknande exponent för flyttal. Faktor M tillåter att visa alla koefficienter i den kodade serien som heltal. Faktor M multipliceras med R vid kodavkortningen. För att additionsfaktorerna M ska vara justerade måste en av de tillagda koderna trunkeras. För multiplikation multipliceras även faktorerna M.
Positionskod för funktioner för många variabler
Positionskod för funktion av två variabler visas i figur 1. Den motsvarar en "trippel" summa av formen: R { är ett heltal positivt tal, antalet värden i figuren och — vissa funktioner av argumenten på motsvarande sätt. I figur 1 motsvarar noderna siffrorna , och i cirklarna är värdena för index för motsvarande siffra visas. Positionskoden för funktionen av två variabler kallas "pyramidal". Positionskoden kallas R-nary (och betecknas som ), om talen anta värdena från mängden . Vid tillägg av koderna sträcker sig överföringen till fyra siffror och därmed .
En positionskod för funktionen från flera variabler motsvarar summan av formen
- ,
där är ett positivt heltal, antalet värden för siffran och vissa funktioner av argument . En positionskod för en funktion av flera variabler kallas "hyperpyramidal". I figur 2 visas till exempel en positionell hyperpyramidkod av en funktion av tre variabler. På den motsvarar noderna siffrorna och cirklarna innehåller värdena för index av motsvarande siffra. En positionell hyperpyramidal kod kallas R-nary (och betecknas som ), om talen antar värdena från mängden . Vid kodadditionen sträcker sig bäraren på en dimensionell kub, som innehåller siffror, och därmed .