Ordinateur pour opérations avec fonctions - Computer for operations with functions


Un ordinateur pour les opérations avec des fonctions (mathématiques) (contrairement à l' ordinateur habituel ) fonctionne avec des fonctions au niveau matériel (c'est-à-dire sans programmer ces opérations).

Histoire

Une machine de calcul pour les opérations avec fonctions a été présentée et développée par Mikhail Kartsev en 1967. Parmi les opérations de cette machine de calcul figuraient les fonctions addition, soustraction et multiplication, comparaison de fonctions, les mêmes opérations entre une fonction et un nombre, trouver le maximum de fonction , le calcul d' intégrale indéfinie , le calcul de l' intégrale définie de dérivé de deux fonctions, d'un dérivé de deux fonctions, changement de fonction selon l'axe X-etc. Par son architecture de cette machine de calcul est (selon la terminologie moderne) un processeur vectoriel ou processeur à réseau , une unité centrale de traitement (CPU) qui implémente un jeu d'instructions contenant des instructions qui fonctionnent sur des tableaux unidimensionnels de données appelés vecteurs . On y a utilisé le fait que beaucoup de ces opérations peuvent être interprétées comme l'opération connue sur des vecteurs: addition et soustraction de fonctions - comme addition et soustraction de vecteurs, calcul d'une intégrale définie de deux fonctions dérivées - comme calcul du produit vectoriel de deux vecteurs, décalage de fonction le long de l'axe X - comme rotation vectorielle autour des axes, etc. En 1966, Khmelnik avait proposé une méthode de codage des fonctions, c'est-à-dire la représentation des fonctions par un code positionnel "uniforme" (pour une fonction dans son ensemble). Ainsi, les opérations mentionnées avec des fonctions sont effectuées comme des opérations informatiques uniques avec de tels codes sur une unité arithmétique "unique" .

Codes de position des fonctions à une variable

L'idée principale

Le code de position d'un nombre entier est une notation numérique de chiffres dans un certain système de nombre de position de la forme

.

Un tel code peut être appelé "linéaire". Contrairement à lui, un code de position d'une fonction à une variable a la forme:

et ainsi il est plat et "triangulaire", car les chiffres qu'il contient comprennent un triangle.

La valeur du numéro de position ci-dessus est celle de la somme

,

où est la base dudit système numérique. Le code positionnel d'une fonction à une variable correspond à un code 'double' de la forme

,

où est un nombre entier positif, la quantité de valeurs prises et est une certaine fonction de l'argument .

L' addition de codes de position de numérotation est associé au report transfert à un chiffre plus élevé selon le schéma

.

L'ajout de codes de position de fonctions à une variable est également associé au transfert de report aux chiffres supérieurs selon le schéma:

.

Ici, le même transfert est effectué simultanément à deux chiffres supérieurs.

Code triangulaire R -naire

Un code triangulaire est appelé R-nary (et est noté comme ), si les nombres prennent leurs valeurs de l'ensemble

, où et .

Par exemple, un code triangulaire est un code ternaire , si , et quaternaire , si . Pour les codes triangulaires R -naires, les égalités suivantes sont valides:

,

où est un nombre arbitraire. Il existe un nombre réel entier arbitraire. En particulier ,. Il existe aussi n'importe quelle fonction de la forme . Par exemple, .

Addition à un chiffre

dans les codes triangulaires R-naires se compose de ce qui suit:

  • dans le -digit donné, il est déterminé la somme des chiffres qui sont ajoutés et deux porte , transférés dans ce chiffre de la gauche, c'est-à-dire
,
  • cette somme se présente sous la forme , où ,
  • est écrit dans le -digit du code récapitulatif, et le report du chiffre donné est effectué dans -digit et -digit.

Cette procédure est décrite (comme pour l'addition à un chiffre des nombres) par un tableau d'addition à un chiffre, où toutes les valeurs des termes et doivent être présentes et toutes les valeurs de porte apparaissant à la décomposition de la somme . Un tel tableau peut être synthétisé pour Ci-dessous, nous avons écrit le tableau d'addition à un chiffre pour :

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)

Soustraction à un chiffre

dans les codes triangulaires R-naires ne diffère de l'addition à un chiffre que par le fait que dans le chiffre donné, la valeur est déterminée par la formule

.

Division à un chiffre par le paramètre R

dans les codes triangulaires R-naires est basé sur l'utilisation de la corrélation:

,

de ceci il s'ensuit que la division de chaque chiffre provoque porte en deux chiffres les plus bas. Par conséquent, le résultat des chiffres dans cette opération est la somme du quotient de la division de ce chiffre par R et deux porte à partir des deux chiffres les plus élevés. Ainsi, lorsqu'il est divisé par le paramètre R

  • dans le chiffre donné, la somme suivante est déterminée
,
  • cette somme est présentée comme , où ,
  • est écrit dans —digit du code résultant, et le report du chiffre donné est transféré dans -digit et -digit.

Cette procédure est décrite par le tableau de division à un chiffre par le paramètre R, où toutes les valeurs de termes et toutes les valeurs de carry, apparaissant à la décomposition de la somme , doivent être présentes. Un tel tableau peut être synthétisé pour Ci-dessous le tableau sera donné pour la division à un chiffre par le paramètre R pour :

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 et soustraction

des codes triangulaires R-naires consiste (comme dans les codes de position des nombres) en opérations à un chiffre effectuées ultérieurement. N'oubliez pas que les opérations à un chiffre dans tous les chiffres de chaque colonne sont effectuées simultanément.

Multiplication

de codes triangulaires R-naires. La multiplication d'un code par -digit d'un autre code consiste en -shift du code , c'est-à-dire son décalage de k colonnes vers la gauche et de m lignes vers le haut. Multiplication des codes et consiste en des décalages ultérieurs du code et en ajoutant le code décalé avec le produit pièce (comme dans les codes positionnels des nombres).

Dérivation

de codes triangulaires R-naires. La dérivée de la fonction , définie ci-dessus, est

.

Ainsi la dérivation de codes triangulaires d'une fonction consiste à déterminer le code triangulaire de la dérivée partielle et sa multiplication par le code triangulaire connu de la dérivée . La détermination du code triangulaire de la dérivée partielle est basée sur la corrélation

.

La méthode de dérivation consiste à organiser les transferts de mk-digit en (m + 1, k) -digit et en (m-1, k) -digit, et leur sommation dans le chiffre donné est effectuée de la même manière que dans un- addition de chiffres.

Codage et décodage

de codes triangulaires R-naires. Une fonction représentée par une série de la forme

,

à coefficients entiers , peuvent être représentés par des codes triangulaires R-naires, car ces coefficients et fonctions ont des codes triangulaires R-naires (qui a été mentionné au début de la section). D'autre part, le code triangulaire R-naire peut être représenté par ladite série, comme tout terme dans l'expansion positionnelle de la fonction (correspondant à ce code) peut être représenté par une série similaire.

Troncature

des codes triangulaires R-naires. C'est le nom d'une opération de réduction du nombre de colonnes "non" -zéro. La nécessité de la troncature apparaît à l'émergence des portées au-delà du filet des chiffres. La troncature consiste en une division par le paramètre R. Tous les coefficients de la série représentée par le code sont réduits R fois, et les parties fractionnaires de ces coefficients sont écartées. Le premier terme de la série est également écarté. Une telle réduction est acceptable si l'on sait que les séries de fonctions convergent. La troncature consiste à effectuer ultérieurement des opérations de division à un chiffre par le paramètre R. Les opérations à un chiffre dans tous les chiffres d'une ligne sont effectuées simultanément et les retenues de la ligne inférieure sont rejetées.

Facteur d'échelle

Le code triangulaire R-naire est accompagné d'un facteur d'échelle M, similaire à l'exposant pour un nombre à virgule flottante. Le facteur M permet d'afficher tous les coefficients de la série codée sous forme de nombres entiers. Le facteur M est multiplié par R à la troncature du code. Pour que les facteurs d'addition M soient alignés, pour ce faire, l'un des codes ajoutés doit être tronqué. Pour la multiplication, les facteurs M sont également multipliés.

Code de position pour les fonctions de nombreuses variables

Le code de position pour la fonction de deux variables est représenté sur la figure 1. Il correspond à une somme "triple" de la forme :: , où est un nombre entier positif, le nombre de valeurs de la figure , et - certaines fonctions d'arguments en conséquence. Sur la figure 1, les nœuds correspondent à des chiffres , et dans les cercles les valeurs des index du chiffre correspondant sont indiquées. Le code positionnel de la fonction de deux variables est appelé "pyramidal". Le code positionnel est appelé R-nary (et est noté ), si les nombres prennent les valeurs de l'ensemble . Lors de l'ajout des codes, la retenue s'étend à quatre chiffres et donc .

Un code positionnel de la fonction à partir de plusieurs variables correspond à une somme de la forme

,

où est un nombre entier positif, le nombre de valeurs du chiffre et certaines fonctions d'arguments . Un code positionnel d'une fonction de plusieurs variables est appelé "hyperpyramidal". De la figure 2 est représenté par exemple un code hyperpyramidal positionnel d'une fonction à trois variables. Sur celui-ci, les nœuds correspondent aux chiffres et les cercles contiennent les valeurs des index du chiffre correspondant. Un code hyperpyramidal positionnel est appelé R-nary (et est désigné par ), si les nombres prennent les valeurs de l'ensemble . Lors de l'addition de codes, la retenue s'étend sur un cube -dimensionnel, contenant des chiffres, et donc .

Voir également

Les références