Una máquina diferencial es una calculadora mecánica automática diseñada para tabular funciones polinómicas . Fue diseñada en la década de 1820 y fue creada por primera vez por Charles Babbage . El nombre de máquina diferencial se deriva del método de diferencias divididas , una forma de interpolar o tabular funciones mediante el uso de un pequeño conjunto de coeficientes polinómicos. Algunas de las funciones matemáticas más comunes utilizadas en ingeniería, ciencia y navegación se construyen a partir de funciones logarítmicas y trigonométricas , que pueden aproximarse mediante polinomios, por lo que una máquina diferencial puede calcular muchas tablas útiles .
La noción de una calculadora mecánica para funciones matemáticas se remonta al mecanismo de Antikythera del siglo II a. C., mientras que los primeros ejemplos modernos se atribuyen a Pascal y Leibniz en el siglo XVII.
En 1784, JH Müller , un ingeniero del ejército de Hesse , ideó y construyó una máquina sumadora y describió los principios básicos de una máquina diferencial en un libro publicado en 1786 (la primera referencia escrita a una máquina diferencial data de 1784), pero no pudo obtener financiación para avanzar con la idea. [1] [2] [3]
Charles Babbage comenzó a construir una pequeña máquina diferencial en 1819 [4] y la terminó en 1822 (Máquina diferencial 0). [5] Anunció su invención el 14 de junio de 1822 en un artículo para la Royal Astronomical Society titulado "Nota sobre la aplicación de maquinaria al cálculo de tablas astronómicas y matemáticas". [6] Esta máquina utilizaba el sistema numérico decimal y se accionaba haciendo girar una manivela. El gobierno británico estaba interesado, ya que producir tablas era una tarea costosa y que requería mucho tiempo, y esperaban que la máquina diferencial hiciera que la tarea fuera más económica. [7]
En 1823, el gobierno británico le dio a Babbage £1700 para comenzar a trabajar en el proyecto. Aunque el diseño de Babbage era factible, las técnicas de metalistería de la época no permitían fabricar económicamente piezas con la precisión y la cantidad requeridas. Por lo tanto, la implementación resultó ser mucho más costosa y de dudoso éxito que la estimación inicial del gobierno. Según el diseño de 1830 para la máquina diferencial n.º 1, tendría alrededor de 25 000 piezas, pesaría 4 toneladas [ 8] y funcionaría con números de 20 dígitos por diferencias de sexto orden. En 1832, Babbage y Joseph Clement produjeron un pequeño modelo funcional (una séptima parte del plan), [5] que funcionaba con números de 6 dígitos por diferencias de segundo orden. [9] [10] Lady Byron describió haber visto el prototipo en funcionamiento en 1833: "Ambas fuimos a ver la máquina pensante (o eso parece) el lunes pasado. Elevó varios números a la 2.ª y 3.ª potencia, y extrajo la raíz de una ecuación cuadrática". [11] El trabajo en el motor más grande se suspendió en 1833.
Cuando el gobierno abandonó el proyecto en 1842, [10] [12] Babbage había recibido y gastado más de 17.000 libras en el desarrollo, que aún no eran suficientes para lograr una máquina que funcionara. El gobierno solo valoraba el resultado de la máquina (tablas producidas económicamente), no el desarrollo (a un costo impredecible) de la máquina en sí. Babbage se negó a reconocer ese predicamento. [7] Mientras tanto, la atención de Babbage se había trasladado al desarrollo de una máquina analítica , lo que socavó aún más la confianza del gobierno en el éxito final de la máquina diferencial. Al mejorar el concepto como una máquina analítica, Babbage había dejado obsoleto el concepto de la máquina diferencial y el proyecto para implementarlo un completo fracaso a ojos del gobierno. [7]
La máquina diferencial nº 1, incompleta, se exhibió al público en la Exposición Internacional de 1862 en South Kensington , Londres. [13] [14]
Babbage diseñó posteriormente su máquina analítica, mucho más general, pero más tarde diseñó un diseño mejorado, la "Máquina diferencial nº 2" (números de 31 dígitos y diferencias de séptimo orden), [9] entre 1846 y 1849. Babbage pudo aprovechar las ideas desarrolladas para la máquina analítica para hacer que la nueva máquina diferencial calculara más rápidamente y al mismo tiempo utilizara menos piezas. [15] [16]
Inspirado por la máquina diferencial de Babbage, en 1834 Per Georg Scheutz construyó varios modelos experimentales. En 1837 su hijo Edward propuso construir un modelo funcional en metal y en 1840 terminó la parte de cálculo, capaz de calcular series con números de 5 dígitos y diferencias de primer orden, que luego se amplió al tercer orden (1842). En 1843, después de añadir la parte de impresión, el modelo quedó terminado.
En 1851, con fondos del gobierno, se inició la construcción de una máquina más grande y mejorada (con números de 15 dígitos y diferencias de cuarto orden), que se terminó en 1853. La máquina se presentó en la Feria Mundial de París de 1855 y luego se vendió en 1856 al Observatorio Dudley en Albany, Nueva York . Entregada en 1857, fue la primera calculadora con impresora vendida. [17] [18] [19] En 1857, el gobierno británico ordenó la siguiente máquina diferencial de Scheutz , que se construyó en 1859. [20] [21] Tenía la misma construcción básica que la anterior, con un peso de aproximadamente 10 cwt (1100 lb ; 510 kg ). [19]
Martin Wiberg mejoró la construcción de Scheutz ( c. 1859 , su máquina tiene la misma capacidad que la de Scheutz: 15 dígitos y cuarto orden) pero utilizó su dispositivo sólo para producir y publicar tablas impresas (tablas de interés en 1860 y tablas logarítmicas en 1875). [22]
Alfred Deacon de Londres produjo en 1862 una pequeña máquina diferencial (números de 20 dígitos y diferencias de tercer orden). [17] [23]
El estadounidense George B. Grant comenzó a trabajar en su máquina calculadora en 1869, sin conocer los trabajos de Babbage y Scheutz (Schentz). Un año después (1870) aprendió sobre las máquinas diferenciales y procedió a diseñar una él mismo, describiendo su construcción en 1871. En 1874, el Boston Thursday Club recaudó una suscripción para la construcción de un modelo a gran escala, que se construyó en 1876. Podía ampliarse para mejorar la precisión y pesaba alrededor de 2000 libras (910 kg). [23] [24] [25]
Christel Hamann construyó una máquina (números de 16 dígitos y diferencias de segundo orden) en 1909 para las "Tablas de Bauschinger y Peters" ("Tablas logarítmico-trigonométricas con ocho decimales"), que se publicó por primera vez en Leipzig en 1910. Pesaba unos 40 kilogramos (88 libras). [23] [26] [27]
Burroughs Corporation construyó alrededor de 1912 una máquina para la Oficina del Almanaque Náutico que se utilizó como máquina diferencial de segundo orden. [28] : 451 [29] Más tarde fue reemplazada en 1929 por una Burroughs Clase 11 (números de 13 dígitos y diferencias de segundo orden, o números de 11 dígitos y [al menos hasta] diferencias de quinto orden). [30]
Alexander John Thompson construyó alrededor de 1927 una máquina integradora y diferenciadora (números de 13 dígitos y diferencias de quinto orden) para su tabla de logaritmos "Logarithmetica britannica". Esta máquina estaba compuesta por cuatro calculadoras Triumphator modificadas. [31] [32] [33]
En 1928, Leslie Comrie describió cómo utilizar la máquina de calcular Brunsviga -Dupla como una máquina diferencial de segundo orden (números de 15 dígitos). [28] También señaló en 1931 que la Máquina de Contabilidad Nacional Clase 3000 podía utilizarse como una máquina diferencial de sexto orden. [23] : 137–138
Durante la década de 1980, Allan G. Bromley , profesor asociado de la Universidad de Sydney , Australia , estudió los dibujos originales de Babbage para las máquinas diferenciales y analíticas en la biblioteca del Museo de Ciencias de Londres. [34] Este trabajo llevó al Museo de Ciencias a construir una sección de cálculo funcional de la máquina diferencial n.º 2 entre 1985 y 1991, bajo la dirección de Doron Swade , el entonces curador de informática. Esto fue para celebrar el 200 aniversario del nacimiento de Babbage en 1991. En 2002, también se completó la impresora que Babbage diseñó originalmente para la máquina diferencial. [35] La conversión de los dibujos de diseño originales en dibujos adecuados para el uso de los fabricantes de ingeniería reveló algunos errores menores en el diseño de Babbage (posiblemente introducidos como protección en caso de que los planos fueran robados), [36] que tuvieron que ser corregidos. La máquina diferencial y la impresora se construyeron con tolerancias alcanzables con la tecnología del siglo XIX, lo que resolvió un debate de larga data sobre si el diseño de Babbage podría haber funcionado utilizando métodos de ingeniería de la era georgiana. La máquina contiene 8.000 piezas y pesa alrededor de 5 toneladas. [37]
El objetivo principal de la impresora es producir placas estereotipadas para su uso en imprentas, lo que hace presionando los tipos sobre yeso blando para crear una placa flong . Babbage pretendía que los resultados de la máquina se transmitieran directamente a la impresión en masa, tras reconocer que muchos errores en las tablas anteriores no eran el resultado de errores de cálculo humanos, sino de deslices en el proceso de composición tipográfica manual . [7] La salida de papel de la impresora es principalmente un medio para verificar el rendimiento de la máquina.
Además de financiar la construcción del mecanismo de salida para el motor diferencial del Museo de Ciencias, Nathan Myhrvold encargó la construcción de un segundo motor diferencial completo, el N.º 2, que estuvo en exhibición en el Museo de Historia de la Computación en Mountain View, California , desde mayo de 2008 hasta enero de 2016. [37] [38] [39] [40] Desde entonces, se ha transferido a Intellectual Ventures en Seattle , donde se exhibe justo afuera del vestíbulo principal. [41] [42] [43]
La máquina diferencial consta de varias columnas numeradas del 1 al N. La máquina puede almacenar un número decimal en cada columna. La máquina solo puede sumar el valor de una columna n + 1 a la columna n para producir el nuevo valor de n . La columna N solo puede almacenar una constante, la columna 1 muestra (y posiblemente imprime ) el valor del cálculo en la iteración actual .
El motor se programa estableciendo valores iniciales en las columnas. La columna 1 se establece en el valor del polinomio al inicio del cálculo. La columna 2 se establece en un valor derivado de la primera y las derivadas superiores del polinomio con el mismo valor de X. Cada una de las columnas de 3 a N se establece en un valor derivado de la primera y las derivadas superiores del polinomio. [44]
En el diseño de Babbage, se realiza una iteración (es decir, un conjunto completo de operaciones de adición y acarreo ) por cada rotación del eje principal. Las columnas pares e impares realizan una adición alternativamente en un ciclo. La secuencia de operaciones para la columna es, por lo tanto: [44]
Los pasos 1, 2, 3, 4 ocurren para cada columna impar, mientras que los pasos 3, 4, 1, 2 ocurren para cada columna par.
Si bien el diseño original de Babbage colocaba la manivela directamente sobre el eje principal, más tarde se descubrió que la fuerza necesaria para hacer girar la máquina sería demasiado grande para que un ser humano pudiera manejarla cómodamente. Por lo tanto, los dos modelos que se construyeron incorporan un engranaje reductor de 4:1 en la manivela y se requieren cuatro revoluciones de la manivela para realizar un ciclo completo.
Cada iteración crea un nuevo resultado y se lleva a cabo en cuatro pasos que corresponden a cuatro vueltas completas de la manija que se muestra en el extremo derecho de la imagen siguiente. Los cuatro pasos son:
El motor representa los números negativos como complementos de diez . La resta equivale a la suma de un número negativo. Esto funciona de la misma manera que las computadoras modernas realizan la resta, conocida como complemento a dos .
El principio de un motor diferencial es el método de diferencias divididas de Newton . Si el valor inicial de un polinomio (y de sus diferencias finitas ) se calcula por algún medio para algún valor de X , el motor diferencial puede calcular cualquier número de valores cercanos, utilizando el método generalmente conocido como el método de diferencias finitas . Por ejemplo, considere el polinomio cuadrático
con el objetivo de tabular los valores p (0), p (1), p (2), p (3), p (4), etc. La tabla que se muestra a continuación se construye de la siguiente manera: la segunda columna contiene los valores del polinomio, la tercera columna contiene las diferencias de los dos vecinos de la izquierda en la segunda columna y la cuarta columna contiene las diferencias de los dos vecinos de la tercera columna:
Los números de la tercera columna de valores son constantes. De hecho, al comenzar con cualquier polinomio de grado n , el número de columna n + 1 siempre será constante. Este es el hecho crucial que sustenta el éxito del método.
Esta tabla se construyó de izquierda a derecha, pero es posible continuar construyéndola de derecha a izquierda hacia abajo en diagonal para calcular más valores. Para calcular p (5) use los valores de la diagonal más baja. Comience con el valor constante de la cuarta columna de 4 y cópielo hacia abajo en la columna. Luego continúe con la tercera columna sumando 4 a 11 para obtener 15. Luego continúe con la segunda columna tomando su valor anterior, 22 y sumando el 15 de la tercera columna. Por lo tanto, p (5) es 22 + 15 = 37. Para calcular p (6), iteramos el mismo algoritmo en los valores de p (5): tomamos 4 de la cuarta columna, lo sumamos al valor 15 de la tercera columna para obtener 19, luego lo sumamos al valor 37 de la segunda columna para obtener 56, que es p (6). Este proceso puede continuar hasta el infinito . Los valores del polinomio se producen sin tener que multiplicar nunca. Un motor diferencial solo necesita poder sumar. De un bucle al siguiente, se deben almacenar 2 números; en este ejemplo, los últimos elementos de la primera y la segunda columna. Para tabular polinomios de grado n , se necesita suficiente almacenamiento para albergar n números.
La máquina diferencial nº 2 de Babbage, construida finalmente en 1991, puede almacenar 8 números de 31 dígitos decimales cada uno y, por lo tanto, puede tabular polinomios de séptimo grado con esa precisión. Las mejores máquinas de Scheutz podían almacenar 4 números de 15 dígitos cada uno. [45]
Los valores iniciales de las columnas se pueden calcular calculando primero manualmente N valores consecutivos de la función y retrocediendo (es decir, calculando las diferencias requeridas).
Col obtiene el valor de la función al inicio del cálculo . Col es la diferencia entre y ... [46]
Si la función a calcular es una función polinómica , expresada como
Los valores iniciales se pueden calcular directamente a partir de los coeficientes constantes a 0 , a 1 , a 2 , ..., a n sin calcular ningún punto de datos. Los valores iniciales son, por tanto:
Muchas funciones de uso común son funciones analíticas , que pueden expresarse como series de potencias , por ejemplo, como una serie de Taylor . Los valores iniciales pueden calcularse con cualquier grado de precisión; si se hace correctamente, el motor proporcionará resultados exactos para los primeros N pasos. Después de eso, el motor solo proporcionará una aproximación de la función.
La serie de Taylor expresa la función como una suma obtenida a partir de sus derivadas en un punto. Para muchas funciones, las derivadas superiores son fáciles de obtener; por ejemplo, la función seno en 0 tiene valores de 0 o para todas las derivadas. Si fijamos 0 como el inicio del cálculo, obtenemos la serie simplificada de Maclaurin.
Se puede utilizar el mismo método para calcular los valores iniciales a partir de los coeficientes que para las funciones polinómicas. Los coeficientes constantes polinómicos tendrán ahora el valor
El problema con los métodos descritos anteriormente es que los errores se acumularán y la serie tenderá a divergir de la función verdadera. Una solución que garantiza un error máximo constante es utilizar el ajuste de curvas . Se calcula un mínimo de N valores espaciados uniformemente a lo largo del rango de los cálculos deseados. Utilizando una técnica de ajuste de curvas como la reducción gaussiana, se encuentra una interpolación polinómica de grado N -1 de la función. [46] Con el polinomio optimizado, los valores iniciales se pueden calcular como se indicó anteriormente.
En WikiSource y también reimpreso en
The works of Charles Babbage,
vol. 2, p. 119ff