Dentro de la ingeniería informática y la ciencia de la computación , un ordenador para operaciones con funciones (matemáticas) (a diferencia del ordenador habitual ) opera con funciones a nivel de hardware (es decir, sin programar dichas operaciones). [1] [2] [3]
Historia
Una máquina de computación para operaciones con funciones fue presentada y desarrollada por Mikhail Kartsev en 1967. [1] Entre las operaciones de esta máquina de computación estaban las funciones de suma, resta y multiplicación, comparación de funciones, las operaciones mismas entre una función y un número, encontrar el máximo de una función, calcular la integral indefinida , calcular la integral definida de la derivada de dos funciones, la derivada de dos funciones, el desplazamiento de una función a lo largo del eje X, etc. Por su arquitectura, esta máquina de computación era (usando la terminología moderna) un procesador vectorial o procesador de matriz , una unidad central de procesamiento (CPU) que implementa un conjunto de instrucciones que contiene instrucciones que operan en matrices unidimensionales de datos llamadas vectores . En él se ha utilizado el hecho de que muchas de estas operaciones pueden interpretarse como las conocidas operaciones con vectores: suma y resta de funciones - como suma y resta de vectores, cálculo de la integral definida de la derivada de dos funciones - como cálculo del producto vectorial de dos vectores, desplazamiento de una función a lo largo del eje X - como rotación de un vector sobre ejes, etc. [1] En 1966 Khmelnik había propuesto un método de codificación de funciones, [2] es decir, la representación de funciones mediante un código posicional "uniforme" (para una función en su conjunto). Y así, las operaciones mencionadas con funciones se realizan como operaciones informáticas únicas con tales códigos en una unidad aritmética "única" . [3]
Códigos posicionales de funciones de una variable
Fuente: [2] [3]
La idea principal
El código posicional de un número entero es una notación numérica de dígitos en un determinado sistema numérico posicional de la forma
- .
Este código puede denominarse "lineal". A diferencia de él, un código posicional de una función de una variable tiene la forma:
y por eso es plano y "triangular", ya que los dígitos que lo componen forman un triángulo.
El valor del número posicional anterior es el de la suma
- ,
donde es el radio del sistema numérico mencionado. El código posicional de una función de una variable corresponde a un código "doble" de la forma
- ,
donde es un número entero positivo, cantidad de valores que se toman , y es una determinada función del argumento .
La adición de códigos posicionales de números está asociada con la transferencia de acarreo a un dígito superior según el esquema
- .
La adición de códigos posicionales de funciones de una variable también está asociada con la transferencia de acarreo a dígitos superiores según el esquema:
- .
Aquí se realiza la misma transferencia simultáneamente a dos dígitos superiores.
R-código triangular nario
Un código triangular se llama R-nario (y se denota como ), si los números toman sus valores del conjunto
- , donde y .
Por ejemplo, un código triangular es un código ternario , si , y cuaternario , si .
Para los códigos triangulares R -narios son válidas las siguientes igualdades:
- ,
donde es un número arbitrario. Existe de un número real entero arbitrario. En particular, . También existe de cualquier función de la forma . Por ejemplo, .
Suma de un solo dígito
En los códigos triangulares R-narios consta de lo siguiente:
- en el dígito dado se determina la suma de los dígitos que se suman y dos acarreos , transferidos a este dígito desde la izquierda, es decir
- ,
- Esta suma se presenta en la forma , donde ,
- se escribe en el dígito del código de resumen, y el acarreo desde el dígito dado se lleva a -dígito y —dígito.
Este procedimiento se describe (como también para la suma de números de un dígito) mediante una tabla de suma de un dígito, donde todos los valores de los términos y deben estar presentes y todos los valores de los acarreos aparecen en la descomposición de la suma . Dicha tabla se puede sintetizar para
A continuación hemos escrito la tabla de suma de un dígito para :
Resta de un dígito
En los códigos triangulares R-narios, la diferencia con la suma de un dígito es que en el dígito dado el valor está determinado por la fórmula
- .
División de un dígito por el parámetro R
En los códigos triangulares R-narios se utiliza la correlación:
- ,
De esto se deduce que la división de cada dígito produce acarreos en los dos dígitos más bajos. Por lo tanto, los dígitos resultantes de esta operación son una suma del cociente de la división de este dígito por R y dos acarreos de los dos dígitos más altos. Por lo tanto, cuando se divide por el parámetro R
- En el dígito dado se determina la siguiente suma
- ,
- Esta suma se presenta como , donde ,
- se escribe en el dígito —del código resultante, y el acarreo del dígito dado se transfiere al dígito -y al dígito -.
Este procedimiento se describe en la tabla de división de un dígito por el parámetro R, donde deben estar presentes todos los valores de los términos y todos los valores de los acarreos que aparecen en la descomposición de la suma. Dicha tabla se puede sintetizar de la siguiente manera:
A continuación se presenta la tabla para la división de un dígito por el parámetro R para :
Suma y resta
Los códigos triangulares R-narios consisten (como en los códigos posicionales de los números) en operaciones de un dígito realizadas posteriormente. Tenga en cuenta que las operaciones de un dígito en todos los dígitos de cada columna se realizan simultáneamente.
Multiplicación
de códigos triangulares R-narios. La multiplicación de un código por un dígito de otro código consiste en un desplazamiento del código , es decir, su desplazamiento k columnas a la izquierda y m filas hacia arriba. La multiplicación de códigos y consiste en desplazamientos subsiguientes del código y la adición del código desplazado con el producto parcial (como en los códigos posicionales de los números).
Derivación
de códigos triangulares R-narios. La derivada de la función , definida anteriormente, es
- .
Así, la derivación de los códigos triangulares de una función consiste en determinar el código triangular de la derivada parcial y su multiplicación por el código triangular conocido de la derivada . La determinación del código triangular de la derivada parcial se basa en la correlación
- .
El método de derivación consiste en organizar los acarreos de mk dígitos en (m+1,k) dígitos y en (m-1,k) dígitos, y su suma en el dígito dado se realiza de la misma manera que en la suma de un dígito.
Codificación y decodificación
de códigos triangulares R-narios. Una función representada por series de la forma
- ,
con coeficientes enteros , pueden representarse mediante códigos triangulares R-narios, ya que estos coeficientes y funciones tienen códigos triangulares R-narios (lo que se mencionó al principio de la sección). Por otra parte, el código triangular R-nario puede representarse mediante la serie mencionada, ya que cualquier término en la expansión posicional de la función (correspondiente a este código) puede representarse mediante una serie similar.
Truncamiento
Códigos triangulares R-narios. Se denomina así a una operación de reducción del número de columnas "no" nulas. La necesidad de truncamiento aparece cuando aparecen acarreos más allá de la red de dígitos. El truncamiento consiste en dividir por el parámetro R. Todos los coeficientes de la serie representada por el código se reducen R veces y las partes fraccionarias de estos coeficientes se descartan. También se descarta el primer término de la serie. Tal reducción es aceptable si se sabe que la serie de funciones converge. El truncamiento consiste en realizar operaciones de división de un dígito por el parámetro R a continuación. Las operaciones de un dígito en todos los dígitos de una fila se realizan simultáneamente y se descartan los acarreos de la fila inferior.
Factor de escala
El código triangular R-nario va acompañado de un factor de escala M, similar al exponente de un número de coma flotante. El factor M permite mostrar todos los coeficientes de la serie codificada como números enteros. El factor M se multiplica por R en el truncamiento del código. Para la adición, los factores M se alinean; para ello, se debe truncar uno de los códigos agregados. Para la multiplicación, los factores M también se multiplican.
Código posicional para funciones de múltiples variables
Fuente: [4]
El código posicional de una función de dos variables se muestra en la Figura 1. Corresponde a una suma "triple" de la forma: ,
donde es un número entero positivo, número de valores de la figura , y — determinadas funciones de argumentos correspondientemente. En la Figura 1 los nodos corresponden a dígitos , y en los círculos se muestran los valores de los índices del dígito correspondiente. El código posicional de la función de dos variables se llama "piramidal". El código posicional se llama R-nario (y se denota como ), si los números toman los valores del conjunto . Al sumar los códigos, el acarreo se extiende a cuatro dígitos y, por lo tanto , .
Un código posicional para la función de varias variables corresponde a una suma de la forma
- ,
donde es un número entero positivo, número de valores del dígito , y ciertas funciones de argumentos . Un código posicional de una función de varias variables se llama "hiperpiramidal". En la Figura 2 se representa, por ejemplo, un código hiperpiramidal posicional de una función de tres variables. En él, los nodos corresponden a los dígitos , y los círculos contienen los valores de los índices del dígito correspondiente. Un código hiperpiramidal posicional se llama R-nario (y se denota como ), si los números asumen los valores del conjunto . En la adición de códigos, el acarreo se extiende sobre un cubo de dimensión , que contiene dígitos, y por lo tanto .
Véase también
Referencias
- ^ abc Malinovsky, BN (1995). La historia de la tecnología informática en sus caras (en ruso) . Kiev: Firma "KIT". ISBN 5-7707-6131-8.(ver también aquí http://www.sigcis.org/files/SIGCISMC2010_001.pdf y la versión en inglés aquí)
- ^ abc Khmelnik, SI (1966). "Codificación de funciones". 4 . Cibernética, Academia de Ciencias de la URSS.
{{cite journal}}: Para citar una revista se necesita|journal=( ayuda ) (ver también aquí en ruso) - ^ abc Khmelnik, SI (2004). Aritmética informática de funciones. Algoritmos y diseño de hardware . Israel. ISBN 978-0-557-07520-1.
{{cite book}}:|work=ignorado ( ayuda ) (ver también aquí en ruso)CS1 maint: location missing publisher (link) - ^ Khmelnik, SI (1970). "Varios tipos de códigos de funciones posicionales". 5 . Cibernética, Academia de Ciencias de la URSS.
{{cite journal}}: Para citar una revista se necesita|journal=( ayuda ) (ver también aquí en ruso)