Principio dei motori a differenza
I motori a differenza sono così chiamati per il principio matematico su cui si basano, cioè il metodo delle differenze finite. In generale, calcolare il valore di un polinomio può richiedere qualsiasi o tutte le operazioni di addizione, sottrazione, moltiplicazione e divisione.
Un vantaggio del metodo delle differenze finite è che elimina la necessità di moltiplicazione e divisione, e permette di calcolare i valori di un polinomio usando solo la semplice addizione. L’addizione di due numeri usando le ruote dentate è più facile da implementare che la moltiplicazione o la divisione e quindi il metodo semplifica un meccanismo altrimenti complesso.
Se i primi valori di un polinomio sono noti, il resto può essere calcolato usando la semplice addizione ripetuta. Il metodo è illustrato nel diagramma sopra per la funzione F(x) = x2 + 4. I valori di x sono mostrati nella prima colonna incrementando di 1 ogni volta (x = 1, 2, 3, 4 . . .). I valori della funzione x2 + 4 sono mostrati nella seconda colonna con i primi quattro valori calcolati con l’aritmetica mentale o a mano (5, 8, 13, 20).
Il passo successivo è calcolare la prima e la seconda differenza. Le prime differenze sono mostrate nella terza colonna e sono calcolate sottraendo valori successivi dalla colonna precedente come mostrato dalle frecce solide che scorrono da sinistra a destra (8-5=3, 13-8=5 ecc.). Le seconde differenze sono calcolate sottraendo le prime coppie di differenze e sono mostrate nell’ultima colonna.
Con questi valori iniziali calcolati, il resto dei valori della funzione può essere calcolato invertendo il processo. I valori che vogliamo calcolare sono mostrati sotto la linea tratteggiata superiore. Per questo polinomio, la seconda differenza è una costante (2). Per calcolare il valore della funzione per x=5 la differenza costante (2) viene aggiunta alla prima differenza (7) per ottenere la prima differenza successiva (9) (freccia rossa), che può poi essere aggiunta all’ultimo valore della funzione (freccia blu) per ottenere F(5) = 29. Questo è il risultato desiderato, ottenuto senza eseguire la moltiplicazione.
Il processo può quindi essere ripetuto per ottenere la prossima prima differenza (11) che può essere aggiunta all’ultimo valore della funzione per ottenere F(6) = 40, ecc. Usando questo metodo, qualsiasi polinomio di secondo grado può essere calcolato in questo modo e, più in generale, qualsiasi polinomio di nono grado può essere calcolato, usando solo l’addizione, a partire dall’ennesima differenza.
Il motore a differenza n. 2 di Babbage ha “registri” per contenere un numero da ciascuna delle colonne della tabella (per esempio 20, 7, 2). Aggiungeva la seconda differenza alla prima, poi aggiungeva il risultato al valore della funzione per calcolare la prossima voce della tabella. C’erano abbastanza ‘registri’ per sette differenze, permettendo di calcolare valori di 31 cifre per polinomi con termini fino a x7.