Machine à différences

Un article de Wikipédia, l'encyclopédie libre.
Sauter à la navigation Sauter à la recherche

Une machine à différence 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. La plupart des fonctions utilisées par les ingénieurs, les scientifiques et les navigateurs, y compris les fonctions trigonométriques et logarithmiques peuvent être approximées par des polynômes, ce qui permet aux machines à différence de calculer des tables très utiles.

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. [1]

La machine à différence n'est pas à confondre avec la machine analytique de Babbage.

C'est ce désir de publier des tables ne contenant aucune erreur qui a poussé un certain nombre d'inventeurs à automatiser ces calculs. Charles Babbage est le plus connu, bien qu'il n'ait fini aucune de ses deux machines, mais Johann H Müller en avait eu l'idée en 1786, 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é[2].

Principe[modifier | modifier le code]

Le principe d'une machine à différence 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érence peut calculer autant de valeurs successives que l'on veut, en utilisant la méthode que l'on connait sous le nom de méthode des différences finies.

Machine à différence complètement fonctionnelle Computer_History_Museum in Mountain_View,_California

Par exemple, considérons le polynôme du second degré :

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) = 2x2 − 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.

Notes et références[modifier | modifier le code]

  1. Jean-Louis Peaucelle, Un « éléphant blanc » en pleine Révolution Française : les grandes tables de logarithmes de Prony comme substitut au cadastre ! » Gérer et comprendre 2012/1 (N° 107) pp74-86
  2. The Difference Engines of Johann Müller, Charles Babbage and Georg and Edvard Scheutz by Michael Lindgren, MIT Press, 1990 - 414 pages