Una computadora para operaciones con funciones (matemáticas) (a diferencia de la computadora habitual ) opera con funciones a nivel de hardware (es decir, sin programar estas 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 mismas operaciones entre una función y un número, encontrar la función máxima, calculando la integral indefinida , calculando 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 llamados vectores . En él se ha utilizado el hecho de que muchas de estas operaciones pueden interpretarse como la operación conocida sobre vectores: suma y resta de funciones - como suma y resta de vectores, calculando una integral definida de dos funciones derivadas - como cálculo del producto vectorial de dos vectores, desplazamiento de función a lo largo del eje X - como rotación de 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 "uniforme" (para una función como un código posicional completo. Y así, las operaciones mencionadas con funciones se realizan como operaciones informáticas únicas con dichos códigos en una unidad aritmética "única" . [3]
Códigos posicionales de funciones de una variable [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 cierto sistema numérico posicional de la forma
- .
Dicho código puede denominarse "lineal". A diferencia de él, un código posicional de una variable función tiene la forma:
y por lo tanto es plano y "triangular", ya que los dígitos en él comprenden un triángulo.
El valor del número posicional arriba es el de la suma
- ,
dónde es la base de dicho sistema numérico. El código posicional de una función de una variable corresponde a un código 'doble' de la forma
- ,
dónde es un número entero positivo, cantidad de valores que se tomaron , y es una cierta 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 más alto de acuerdo con el esquema.
- .
La adición de códigos de posición de funciones de una variable también está asociada con la transferencia de acarreo a dígitos más altos de acuerdo con el esquema:
- .
Aquí, la misma transferencia se lleva simultáneamente a dos dígitos superiores.
Código triangular R -nary
Un código triangular se llama R-nary (y se denota como), si los números tomar sus valores del conjunto
- , dónde y .
Por ejemplo, un código triangular es un código ternario , Si y cuaternario , Si .
Para los códigos triangulares R -nary son válidas las siguientes igualdades:
- ,
dónde es un número arbitrario. Existede un número real entero arbitrario. En particular,. Tambien existe de cualquier función de la forma . Por ejemplo,.
Suma de un solo dígito
en códigos triangulares R-narios consiste en lo siguiente:
- en el dado -dígito se determina la suma de los dígitos que se están agregando y dos lleva , transferido a este dígito desde la izquierda, es decir
- ,
- esta suma se presenta en la forma , dónde ,
- está escrito en el -dígito de código de resumen, y el acarreo del 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 debe estar presente y todos los valores de acarreos que aparecen en la descomposición de la suma . Tal tabla se puede sintetizar para
A continuación hemos escrito la tabla de suma de un dígito para :
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) |
Resta de un dígito
en R-nary triangular códigos difiere de la suma de un dígito sólo por el hecho de que en el dado -digitar el valor está determinada por la fórmula
- .
División de un dígito por el parámetro R
en los códigos triangulares R-nary se basa en usar la correlación:
- ,
de esto se sigue que la división de cada dígito provoca que se lleve a los dos dígitos más bajos. Por lo tanto, el resultado de los dígitos en esta operación es la 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 dado -dígito se determina la siguiente suma
- ,
- esta suma se presenta como , dónde ,
- está escrito en —Dígito del código resultante y llevar del dígito dado se transfiere al -dígito y -dígito.
Este procedimiento se describe en la tabla de división de un dígito por el parámetro R, donde todos los valores de términos y todos los valores de acarreos, que aparecen en la descomposición de la suma , debe estar presente. Dicha tabla se puede sintetizar para
Debajo de la tabla se proporcionará la división de un dígito por el parámetro R para :
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 |
Adición y sustracción
Los códigos triangulares R-narios consisten (como en los códigos posicionales de 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. Multiplicación de un código por -dígito de otro código consiste en -desplazamiento del código , es decir, desplaza k columnas a la izquierda y m filas hacia arriba. Multiplicación de códigos y consiste en subsecuente -Cambios del código y adición del código cambiado con el producto parcial (como en los códigos posicionales de números).
Derivación
de códigos triangulares R-narios. La derivada de la función, definido anteriormente, es
- .
Entonces, la derivación de 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 acarreos desde mk-dígito en (m + 1, k) -digit y en (m-1, k) -digit, y su suma en el dígito dado se realiza de la misma manera que en uno- suma de dígitos.
Codificación y decodificación
de códigos triangulares R-narios. Una función representada por series de la forma
- ,
con coeficientes enteros , puede estar representado por códigos triangulares R-nary, para estos coeficientes y funciones tienen códigos triangulares R-nary (que se mencionó al principio de la sección). Por otro lado, el código triangular R-nario puede ser representado por dicha serie, como cualquier término en la expansión posicional de la función (correspondiente a este código) se puede representar mediante una serie similar.
Truncamiento
de códigos triangulares R-narios. Este es el nombre de una operación de reducción del número de columnas "distintas de cero". La necesidad de truncamiento aparece con la aparición de acarreos más allá de la red de dígitos. El truncamiento consiste en la división 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 operaciones de división de un dígito realizadas posteriormente por el parámetro R. Las operaciones de un dígito en todos los dígitos de una fila se realizan simultáneamente, y los acarreos de la fila inferior se descartan.
Factor de escala
El código triangular R-nario va acompañado de un factor de escala M, similar al exponente del número de punto 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 que los factores de suma M estén alineados, para hacerlo, 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 muchas variables [4]
El código posicional para la 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 - ciertas funciones de los argumentos correspondientemente. En la Figura 1 los nodos corresponden a dígitos, y en los círculos los valores de los índices del dígito correspondiente se muestran. El código posicional de la función de dos variables se llama "piramidal". El código posicional se llama R-nary (y se denota como), si los números asumir los valores del conjunto . En la adición de 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
- ,
dónde es un número entero positivo, número de valores del dígito , y ciertas funciones de los argumentos . Un código posicional de una función de varias variables se denomina "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-nary (y se denota como), si los números asumir los valores del conjunto . En la adición de códigosel acarreo se extiende en un cubo dimensional, que contiene dígitos, y por lo tanto .
Ver también
Referencias
- ^ a b c Malinovsky, BN (1995 ( ver también aquí http://www.sigcis.org/files/SIGCISMC2010_001.pdf y la versión en inglés aquí )). La historia de la tecnología informática en sus caras (en ruso) . Kiew: "KIT" firme. ISBN 5-7707-6131-8. Verifique los valores de fecha en:
|year=
( ayuda ) - ^ a b c Khmelnik, SI (1966 ( http://lib.izdatelstwo.com/Papers2/s7.pdf ver también aquí en ruso)). "Codificación de funciones". 4 . Cibernética, Academia de Ciencias de la URSS. Cite journal requiere
|journal=
( ayuda );Verifique los valores de fecha en:|year=
( ayuda ) - ^ a b c Khmelnik, SI (2004 ( http://lib.izdatelstwo.com/Papers2/s7.pdf ver también aquí en ruso)). Aritmética informática de funciones. Diseño de algoritmos y hardware . Israel: "Matemáticas en Computadoras". ISBN 978-0-557-07520-1. Verifique los valores de fecha en:
|year=
( ayuda ) - ^ Khmelnik, SI (1970 ( http://lib.izdatelstwo.com/Papers2/s17.pdf ver también aquí en ruso)). "Varios tipos de códigos de funciones posicionales". 5 . Cibernética, Academia de Ciencias de la URSS. Cite journal requiere
|journal=
( ayuda );Verifique los valores de fecha en:|year=
( ayuda )