# Màquina diferencial

La màquina diferencial és una calculadora mecànica realitzada per Charles Babbage, la primera versió al 1822 i la segona i més coneguda entre el 1847-1849. Va ser dissenyada per a calcular funcions polinòmiques i calcular i imprimir taules de funcions. Més concretament, calcula el valor numèric d'una funció polinòmica sobre una progressió aritmètica obtenint una taula de valors que s'aproxima a la funció real (basat en el fet que qualsevol funció pot ser aproximada per polinomis).
La màquina va ser una reconstrucció de la idea del militar, arquitecte i inventor alemany, Johann Helfrich von Müller. Una reconstrucció de la seva “Màquina Diferencial No.2” está operativa del 1991 al Museu de la Ciència de Londres.

## Història

El primer d'aquests dispositius va ser concebut en 1786 per Johann Helfrich von Müller però mai va ser construït.
La màquina diferencial va ser oblidada i redescoberta el 1822, per Charles Babbage, qui la va proposar en una comunicació a la Royal Astronomical Society el 14 de juny (associació fundada per propi Babbage a principis del segle xix, com una iniciació a canvi del sistema universitari, que seguía impartint les matemàtiques de Newton i no hi acceptava els mètodes continentals en càlcul).
Un dels projectes d'iniciació era la construcció de la màquina diferencial.
Volia intentar trobar un mètode pel qual es poguessin fer càlculs automàticament per una màquina, eliminant errors deguts a la fatiga o l'avorriment que van sofrir les persones encarregades de compilar les taules matemàtiques de l'època.
El govern britànic va finançar inicialment el projecte, però va retirar la subvenció quan Babbage repetidament sol·licitava més diners però no feia cap progrés visible en la construcció de la màquina.
Babbage va fracassar en el seu intent de construir una màquina completa. La raó més àmpliament acceptada per a aquest fracàs és que l'enginyeria mecànica victoriana no estava prou desenvolupada com per a produir peces amb suficient precisió.
Babbage, realitza la seva “Màquina Diferencial No.2”, una nova versió de la seva primera màquina, entre 1847-1849. Però es va quedar només en esbossos. Durant aquelles dates també va crear la máquina analítica
Al 1855, Per Georg Scheutz va construir diverses màquines diferencials; una va ser venuda al govern britànic en 1859. Martin Wiberg va millorar la construcció de Scheutz però va utilitzar el seu dispositiu solament per a produir, publicar i imprimir taules logarítmiques.
Basant-se en els plans originals de Babbage, i per a commemorar el 200 aniversari del seu naixement, al Museu de la Ciència de Londres va construir entre 1989 i 1991 una Màquina Diferencial núm. 2 funcional, sota la direcció de Doron Swade, el llavors conservador de Computació. El 2000 va ser acabada també la impressora que Babbage va dissenyar originalment per a la màquina diferencial. La conversió dels dibuixos de disseny originals en dibuixos convenients per a l'ús dels fabricants d'enginyeria va revelar alguns errors de menor importància en el disseny de Babbage, que van haver de ser corregits.
Una vegada que van estar acabades, tant la màquina com la seva impressora van funcionar sense errors, i encara ho continuen fent. La màquina diferencial i la impressora van ser construïdes segons les toleràncies realitzables amb la tecnologia del segle xix, resolent un debat de molts anys sobre si el disseny de Babbage hagués funcionat realment.

## Operació

La màquina diferencial consisteix en un nombre de columnes, numerades d'1 a N. Cada columna pot emmagatzemar un número decimal. L'única operació que la màquina pot fer és sumar el valor de la columna n + 1 a la columna n per a produir el nou valor de n. La columna N només pot emmagatzemar una constant, la columna 1 exhibeix (i possiblement imprimeix) el valor del càlcul en la iteració actual.
La màquina es programa en ajustar els valors inicials de les columnes. La columna 1 es fixa al valor del polinomi al començament del còmput. La columna 2 es fixa a un valor derivat de la primera i més alta derivades del polinomi en el mateix valor de X. Cadascuna de les columnes entre 3 i N es fixa a un valor derivat de (n- 1) i les derivades més alts del polinomi.

#### Temps d'execució

En el disseny de Babbage, una iteració, és a dir un conjunt complet d'addició i operacions de ròssec succeeix una vegada per cada quatre rotacions dels eixos de la columna. Les columnes imparelles i parells executen alternativament l'addició cada dues rotacions. La seqüència de les operacions per a la columna n és així:
* Addició des de la columna n + 1
* Propagació del ròssec
* Addició a la columna n - 1
* Resta

## Mètode de diferències

Pel fet que la màquina diferencial no pot fer multiplicacions, no pot calcular el valor d'un polinomi. No obstant això, si el valor inicial del polinomi (i les seves derivades) és calculat per alguns mitjans per a un cert valor de X, la màquina diferencial pot calcular qualsevol nombre de valors pròxims, usant el mètode conegut generalment com el mètode de les diferències finites.
El principi d'una màquina diferencial és el métode de Newton de diferències dividides. El qual pot ser il·lustrat amb un petit exemple. Consideri el polinomi quadràtic:
p(x) = 2x² - 3x + 2
suposi que desitgem tabular els valors p(0); p(0,1); p(0,2); p(0,3); p(0,4) etc. La taula de baix es construeix com segueix:
* la primera columna conté els valors del polinomi
* la segona columna conté les diferències dels dos veïns esquerres en la primera columna,
* la tercera columna conté les diferències dels dos veïns en la segona columna:
| Polinomi | Diferències | Diferències |
| p(0)=2,0 | | |
| | 2,0−1,72=0,28 | |
| p(0,1)=1,72 | | 0,28−0,24=0,04 |
| | 1,72−1,48=0,24 | |
| p(0,2)=1,48 | | 0,24−0,20=0,04 |
| | 1,48−1,28=0,20 | |
| p(0,3)=1,28 | | 0,20−0,16=0,04 |
| | 1,28−1,12=0,16 | |
| p(0,4)=1,12 | | |
Noti com els valors en la tercera columna són constants. Aquesta no és una mera coincidència. De fet, si vostè comença amb qualsevol polinomi de grau n, la columna número n + 1 sempre serà constant. Aquest crucial fet fa que el mètode funcioni, com veurem a continuació.
Construïm aquesta taula d'esquerra a dreta, però ara podem continuar-la de dreta a esquerra per a poder computar més valors del nostre polinomi.
Per a calcular p(0,5) usem els valors de la diagonal més baixa. Comencem amb el valor 0,04 de columna de la dreta. Llavors continuem a la segona columna, restant 0,04 de 0,16 per a obtenir 0,12. Després continuem amb la primera columna prenent el seu valor anterior, 1,12 i restant-li el 0,12 de la segona columna.
Així que p(0,5) és 1,12-0,12 = 1,0.
Per a computar p(0,6),iterem el mateix algorisme sobre els valors de p(0,5): prengui el 0,04 de la tercera columna, resti aquest valor 0,12 de la segona columna per a obtenir 0,08, Després resti això del valor 1,0 de la primera columna per a obtenir 0,92, que és el resultat de p(0,6).
Aquest procés pot ser continuat ad infinitum. Els valors del polinomi són produïts sense si més no haver de multiplicar. una màquina diferencial solament necessita poder restar. A partir d'un llaç al següent, en el nostre cas, necessita emmagatzemar 2 números (els passats elements en les primera i segona columnes); si desitgéssim tabular polinomis de grau n, necessitaríem suficient emmagatzematge per a tenir n números.
La màquina diferencial núm. 2 de Babbage, finalment construïda en 1991, podia tenir 7 números de 31 dígits decimals cadascun i, per tant, podia tabular polinomis de 7è grau amb aquesta precisió. Les millors màquines de Scheutz podien emmagatzemar 4 números amb 15 dígits cadascun.

## Valors inicials

Els valors inicials de les columnes poden ser calculats de la següent manera: Primer calculant manualment N valors consecutius de la funció, i per marxa enrere (backtracking), és a dir, calculant les diferències requerides.
La columna 1o aconsegueix el valor de la funció al començament del còmput. La columna 2o és la diferència entre f(1) i f(0).

#### Ús de derivades

Un mètode més general i en molts casos més útil, és el de calcular els valors inicials dels valors de les derivades de la funció a l'inici del còmput. Així, cada valor és representat com a sèrie de potències de diferents derivades. Les constants de les sèries poden ser calculades en expressar primer una funció com una sèrie de Taylor, és a dir, una suma de les seves derivades. Fixant 0 com l'inici del còmput obtenim les sèries de Maclaurin.
Calculant els valors numèricament, aconseguim les següents representacions serials per als valors inicials de les columnes:
Siguin F, F’,F’’,F’’’,F’’’’...els valors de la funció i les seves derivades a l'inici del còmput.

## Efectes culturals

Aquesta màquina va inspirar als escriptors William Gibson i Bruce Sterling la novel·la La màquina diferencial.4 És una obra de steampunk (vaporpunk), gènere que no havia existit mai abans d'aquest llibre. William Gibson és conegut pel seu llibres de ciberpunk, que exploren històries fictícies o els futurs especulatius que s'involucren en les possibilitats dels ordinadors, la xarxa, etc. La premissa de “La màquina diferencial” és "què hagués passat si el Regne Unit hagués desenvolupat les màquines de Charles Babbage per a vendre en el mercat lliure en la meitat del segle XIX?". Per això, va triar el nom steampunk (la potència de la màquina diferencial s'obtenia d'una màquina de vapor) per a un gènere nou.
Encara que màquina diferencial és el nom que va en el llibre, les hipotètiques màquines que descriu són més semblants a la posterior màquina analítica de Babbage, i menys limitades que la seva predecessora màquina diferencial.

## Vegeu també

* Charles Babbage
* Màquina analítica
* Ada Lovelace
* Per Georg Scheutz
* Martin Wiberg