Princípio dos Motores de Diferença
Motores de Diferença são assim chamados devido ao princípio matemático em que se baseiam, nomeadamente, o método das diferenças finitas. Em geral, o cálculo do valor de um polinómio pode exigir qualquer ou toda e qualquer adição, subtracção, multiplicação e divisão.
Uma vantagem do método das diferenças finitas é que elimina a necessidade de multiplicação e divisão, e permite que os valores de um polinómio sejam calculados utilizando apenas a simples adição. A adição de dois números usando rodas dentadas é mais fácil de implementar do que a multiplicação ou divisão, pelo que o método simplifica um mecanismo de outro modo complexo.
Se os primeiros valores de um polinómio forem conhecidos, o resto pode ser calculado usando a simples adição repetida. O método é ilustrado no diagrama acima para a função F(x) = x2 + 4. Os valores de x são mostrados na primeira coluna, aumentando 1 de cada vez (x = 1, 2, 3, 4 . . .). Os valores da função x2 + 4 são mostrados na segunda coluna com os primeiros quatro valores calculados por aritmética mental ou manualmente (5, 8, 13, 20).
O passo seguinte é calcular a primeira e segunda diferenças. As primeiras diferenças são mostradas na terceira coluna e são calculadas subtraindo valores sucessivos da coluna anterior, como mostram as setas sólidas que fluem da esquerda para a direita (8-5=3, 13-8=5, etc.). As segundas diferenças são calculadas subtraindo os primeiros pares de diferenças e estas são mostradas na última coluna.
Com estes valores iniciais calculados, o resto dos valores da função pode ser calculado invertendo o processo. Os valores que desejamos calcular são mostrados abaixo da linha tracejada superior. Para este polinómio, a segunda diferença é uma constante (2). Para calcular o valor da função para x=5, a diferença constante (2) é adicionada à primeira diferença (7) para obter a primeira diferença seguinte (9) (seta vermelha), que pode então ser adicionada ao último valor da função (seta azul) para render F(5) = 29. Este é o resultado desejado, alcançado sem realizar multiplicação.
O processo pode então ser repetido para obter a primeira diferença seguinte (11), que pode então ser adicionada ao último valor da função para obter F(6) = 40, etc. Usando este método, qualquer polinómio de segundo grau pode ser computado desta forma e, mais geralmente, qualquer polinómio de n-ésimo grau pode ser computado, usando apenas adição, começando com a n-ésima diferença.
Babbage’s Difference Engine No. 2 tem ‘registos’ para guardar um número de cada uma das colunas da tabela (por exemplo 20, 7, 2). Acrescentaria a segunda diferença à primeira, depois adicionaria esse resultado ao valor da função para calcular a próxima entrada na tabela. Havia ‘registos’ suficientes para sete diferenças, permitindo-lhe calcular valores de 31 dígitos para polinómios com termos até x7,