Macchina differenziale

Da Wikipedia, l'enciclopedia libera.

Parti della macchina differenziale di Charles Babbage conservata al London Science Museum.

La Macchina differenziale (in inglese Difference Engine) è un'apparecchiatura meccanica sviluppata per tabulare funzioni polinomiali. La sua utilità discende dal fatto che tanto i logaritmi che le funzioni trigonometriche possono essere approssimate con i polinomi: pertanto, la macchina differenziale apre la possibilità di accedere a una vasta gamma di calcoli matematici.

Indice

[modifica] Storia

Particolare di una replica della macchina esposta al London Science Museum.

L'ingegnere tedesco J.H. Müller aveva descritto l'idea di una macchina simile in un libro pubblicato nel 1786 ma, non riuscendo a trovare fondi, non poté realizzarla[1].

Nel 1822 Charles Babbage propose lo sviluppo della macchina in un articolo inviato alla Royal Astronomical Society il 14 giugno e dal titolo "Note on the application of machinery to the computation of very big mathematical tables"[2]. La macchina avrebbe utilizzato il sistema decimale e sarebbe stata alimentata in modo meccanico tramite il movimento di una maniglia che avrebbe fatto girare gli ingranaggi. Il governo Britannico inizialmente finanziò il progetto ma in seguito, nel 1842, quando ricevette da Babbage la richiesta di nuovi fondi nonostante lo sviluppo della macchina sembrasse a un punto morto, decise di abbandonarne lo sviluppo, dopo aver già speso comunque, una cifra pari a 17.470 sterline, quindi venti volte maggiore la spesa per la locomotiva a vapore; inoltre fu molto influente l'opinione negativa sull'utilità della macchina espressa dall'astronomo reale George Biddell Airy.[3] Il dispositivo era di una notevole complessità e di grandi dimensioni strutturali: basti pensare che richiedeva l'assemblaggio di 25.000 parti, e la macchina completa sarebbe stata alta circa due metri e mezzo, larga due metri e profonda uno, con un peso di varie tonnellate.

Babbage, durante la progettazione della macchina differenziale, aveva lavorato alla più generale macchina analitica. L'esperienza dello sviluppo di quest'ultima gli aveva permesso di migliorare il progetto della macchina differenziale e di svilupparne una seconda versione tra il 1847 e il 1849.
Ispirandosi al progetto di Babbage, Per Georg Scheutz costruì diverse macchine differenziali a partire dal 1855; una di queste venne venduta al governo Britannico nel 1859. Martin Wiberg migliorò le macchine di Scheutz e le utilizzò per produrre delle tavole logaritmiche che poi pubblicò.

Basandosi sui progetti originali di Babbage lo Science Museum di Londra costruì una versione funzionante della seconda versione della macchina differenziale. Questa venne realizzata sotto la supervisione di Doron Swade che seguì il progetto tra il 1989 e il 1991. Nel 2000 venne realizzata anche la stampante che, ricevuti i dati dalla macchina differenziale, ne permetteva la riproduzione su carta. La trascrizione dei disegni originali in disegni utilizzabili per la realizzazione dei componenti mostrò che Babbage aveva commesso alcuni errori minori di progettazione, ma nulla che potesse inficiare il funzionamento della macchina. La macchina differenziale e la stampante vennero costruite con i materiali e le tolleranze disponibili nel 19° secolo e questo permise di dimostrare che il progetto di Babbage, se fosse stato finanziato adeguatamente, avrebbe potuto realmente funzionare.

[modifica] Operazioni

La macchina è formata da un certo numero di colonne numerate da 1 a N. Ogni colonna è in grado di memorizzare un numero decimale. L'unica operazione che la macchina è in grado di fare è l'addizione del valore presente nella n + 1 alla colonna n immettendo il risultato nella colonna n. La colonna N poteva memorizzare solo delle costanti, la colonna 1 mostrava il risultato e se presente la stampante ne permetteva la stampa su carta.

La macchina era programmata mettendo i valor iniziali nelle colonne. La colonna 1 veniva regolata con il valore di partenza del polinomio. La colonna 2 con il valore della prima derivata del polinomio nel punto X. Le colonne successive contenevano i valori delle derivate successive sempre nello stesso punto.

[modifica] Sincronizzazione

Il progetto di Babbage prevedeva una somma completa con riporto ogni quattro rotazioni dei cilindri che formavano le colonne. Le colonne pari e dispari si alternavano ogni due rotazioni. Le operazioni seguivano la seguente sequenza:

  1. Addizione delle colonne n+1
  2. Propagazione dei riporti
  3. Addizione delle colonne n-1
  4. Resto

[modifica] Metodo delle differenze

Immagine della replica esposta al London Science Museum. Il progetto prevedeva la stessa precisione di calcolo per tutte le colonne ma per via della convergenza dei polinomi la precisione delle ultime colonne poteva essere minore.

Dato che la macchina non era in grado di eseguire le moltiplicazioni non poteva calcolare il valore dei polinomi. Tuttavia se era noto il valore di X e delle sue derivate la macchina poteva calcolare i valori vicini usando il metodo delle differenze finite.

Il metodo delle differenze finite si basa sul polinomio interpolatore di Newton. Il funzionamento verrà illustrato con un breve esempio. Considerando il seguente polinomio quadratico:

p(x) = 2x2 − 3x + 2

Supponendo di voler tabulato i valori p(0), p(0.1), p(0.2), p(0.3), p(0.4) etc. La tabella viene costruita nel seguente modo: la prima colonna contiene il valore del polinomio, la seconda colonna contiene la differenza dei valori contenuti nella prima colonna, la terza colonna contiene la differenza dei valori contenuti nella seconda colonna.

Polinomio differenza differenza
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

Si noti che il valore della terza colonna è costante. Questo non è un caso: per ogni polinomio di grado n la colonna n+1 contiene un valore che è costante; questo è cruciale per il funzionamento della macchina.

Si è mostrato come costruire la tabella partendo da sinistra verso destra, lavorando invece da destra verso sinistra si possono calcolare gli alti valori del polinomio.

Polinomio differenza differenza
p(0.3)=1.28 0.20−0.16=0.04
1.28−1.12=0.16
p(0.4)=1.12 0.160.12=0.04
1.121=0.12
p(0.5)=1 0.120.08=0.04
10.92=0.08
p(0.6)=0.92

Per calcolare p(0.5) basta usare i valori già presenti alla fine della tabella. Si inizia sapendo che la terza colonna dovrà contenere il valore 0.04. Si continua nella seconda colonna sapendo che il valore presente è 0.16 e che questo valore meno quello incognito deve dare come risultato 0.04. Segue quindi che il valore incognito è 0.12 (0.16-0.12=0.04). Adesso che ha il valore della seconda colonna si può passare alla prima colonna. Si sa che il p(0.4) vale 1.12, che p(0.4)-p(0.5) vale 0.12, ne segue che p(0.5) vale 1 (1.12-1=0.12). Per calcolare p(0.6) si procede alla stessa maniera. La terza colonna deve contenere 0.04, quindi la seconda deve valere 0.08 e di conseguenza la prima colonna vale 0.92. Quindi il valore di p(0.6) è 0.92.

Questo metodo può essere reiterato quante volte si vuole. I valori dei polinomi sono ottenuti per sottrazioni senza dover effettuare moltiplicazioni e quindi la macchina differenziale doveva essere in grado di eseguire solamente delle sottrazioni. Per eseguire le operazioni era necessario tenere traccia dei valori precedenti a quelli che si stavano calcolando. Così, se il polinomio aveva grado n, erano necessarie n+1 colonne.

Il progetto della seconda macchina differenziale di Babbage, costruita nel 1991, prevedeva la possibilità di contenere sette numeri da trentuno cifre; la macchina poteva quindi calcolare polinomi fino al 7° grado (si ricordi che l'ultimo valore è una costante). La migliore macchina di Scheutz era in grado di calcolare quattro numeri con quindici cifre.

[modifica] Note

  1. ^ Swedin, E.G. & Ferro, D.L.. Computers: The Life Story of a Technology. Greenwood Press, Westport, CT, 2005. URL consultato il 2007-11-17.
  2. ^ Charles Babbage in The MacTutor History of Mathematics archive. School of Mathematics and Statistics, University of St Andrews, Scotland, (1998). URL consultato il 2006-06-14.
  3. ^ "La ricostruzione della macchina da calcolo di Charles Babbage", di Doron D.Swade, pubbl.su "Le Scienze (Scientific American)", num. 297, maggio 1993, pagg. 40-46.

[modifica] Bibliografia

  • Doron Swade, The Difference Engine: Charles Babbage and the Quest to Build the First Computer, Penguin (reprint), 2002. ISBN 0-14-200144-9
  • Doron Swade, The cogwheel brain, Abacus, 2001. ISBN 0-349-11239-8

[modifica] Collegamenti esterni

[modifica] Altri progetti

Strumenti personali