# Machine à différences

Une machine à différences est une calculatrice mécanique conçue pour calculer des tables de fonctions polynomiales. Son nom dérive de la méthode des différences finies, une façon d'interpoler des fonctions en utilisant un petit nombre de coefficients polynomiaux. La plupart des fonctions mathématiques communément utilisées par les ingénieurs, scientifiques et navigateurs, incluant les fonctions logarithmiques et trigonométriques, peuvent être approximées par des fonctions polynomiales. Une machine différentielle peut donc calculer beaucoup de tables de nombres.
La difficulté à produire des tables sans erreurs par équipes de mathématiciens et de calculateurs humains incita Charles Babbage à réaliser un mécanisme pour automatiser le processus. Présentée en 1822, sa machine à différences est considérée comme étant le premier ordinateur primitif au monde.
La machine à différences n'est pas à confondre avec la machine analytique de Babbage.

## Historique

Johann H Müller, ingénieur dans l'armée des mercenaires allemands au Canada, conçut une idée pour une machine différentielle. Cela fut décrit dans un livre publié en 1786 mais Müller fut incapable de recevoir des fonds pour réaliser son idée$^,$$^,$.
Babbage admirait Prony qui avait calculé, pendant la Révolution française, des tables des fonctions trigonométriques des angles en cent millième de grade et des tables de logarithmes décimaux, le tout avec 14 décimales. Les calculs ont été faits selon les mêmes principes d'ajout des différences finies jusqu'au sixième ordre. Plusieurs dizaines de calculateurs humains ont réalisé ce travail qui a duré plusieurs années. Ces tables résultantes n'ont pas été publiées à cause de leur volume et des erreurs qu'elles contenaient.
Le 14 juin 1822, Charles Babbage propose l'emploi d'une telle machine dans un article adressé à la Royal Astronomical Society intitulé Note on the application of machinery to the computation of astronomical and mathematical tables (Note sur l'application d'une machine au calcul de tables astronomiques et mathématiques). Cette machine utilisait le système numérique décimal et était alimentée par un engrenage. Le gouvernement britannique était intéressé, car produire des tables était à la fois chronophage et cher, et ils espéraient que la machine différentielle permettrait d'économiser de l'argent.
Charles Babbage est le plus connu des inventeurs de machine à différences, bien qu'il n'ait fini aucune de ses deux machines, mais Georg Scheutz et son fils Edvard réalisèrent, en 1843, une machine fonctionnelle qui n'eut pas de succès commercial et Martin Wiberg, en 1875, imprima des tables de logarithme de trop mauvaise qualité.

## Principe

Le principe d'une machine à différences découle de la méthode de Newton des différences finies. Si la valeur initiale d'un polynôme et de ses différences finies ont été calculées, par quelque moyen que ce soit, pour une valeur de x, la machine à différences peut calculer autant de valeurs successives que l'on veut, en utilisant la méthode que l'on connaît sous le nom de méthode des différences finies.
Par exemple, considérons le polynôme du second degré :
    $p(x)=2x^{2}-3x+2\,$
et cherchons à établir les valeurs p(0), p(1), p(2), p(3), p(4), etc.
La table suivante est construite comme suit : la première colonne contient la valeur de x, la deuxième colonne contient la valeur du polynôme, la troisième contient la différence entre deux valeurs consécutives de la deuxième colonne, et la quatrième, la différence entre deux valeurs consécutives de la troisième colonne.
| x | p(x) = 2x$^2$ − 3x + 2 | diff1(x) = ( p(x + 1) − p(x) ) | diff2(x) = ( diff1(x + 1) − diff1(x) ) |
| 0 | 2 | −1 | 4 |
| 1 | 1 | 3 | 4 |
| 2 | 4 | 7 | 4 |
| 3 | 11 | 11 | |
| 4 | 22 | | |
Les nombres de la quatrième colonne sont constants. En fait, pour un polynôme de degré n, la colonne n+2 sera toujours constante. C'est ce qui fait l'intérêt de cette méthode.
Cette table a été construite de la gauche vers la droite. Il est possible de continuer son écriture en partant de la droite et en allant vers la gauche en descendant en diagonale.
Pour calculer la 7e valeur du polynôme (ligne 6), on part de la dernière valeur calculée de la colonne 4 (4) (ligne 3). On la recopie vers le bas (4). On ajoute cette dernière valeur (4) à sa voisine de gauche (11) ; on obtient 15 qu'on inscrit en dessous du (11) colonne 3. Puis on ajoute ce nombre (15) à son voisin de gauche (22). On obtient (37) qui est la valeur de p(5). Et ainsi de suite, pour obtenir p(6), on descend le (4), on l'ajoute à (15) ce qui donne (19) en troisième colonne puis 37+19 = 56 en colonne 2, qui est la valeur cherchée de p(6). On peut continuer à l'infini, sans jamais faire la moindre multiplication ni élévation au carré.
Une machine à différences doit seulement savoir additionner. D'une boucle à la suivante, dans cet exemple, elle n'a besoin de garder en mémoire que deux nombres (les derniers nombres calculés en colonne 3 et 2.) : le nombre 4 est une constante. Pour tabuler (mettre sous forme de table) une fonction de degré n, il ne faut que n mémoires.

## Dans la culture

Un roman appartenant au genre steampunk publié en 1990 par William Gibson et Bruce Sterling s'intitule La Machine à différences. Cette uchronie décrit une société dans laquelle le prototype de Charles Babbage occupe une place centrale dans la société industrielle anglaise.