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
[modifier | modifier le code]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[1],[2],[3].
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[4].
Le , 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)[5]. 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[6].
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é[7].
Principe
[modifier | modifier le code]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é :
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.
Dans la culture
[modifier | modifier le code]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.
Notes et références
[modifier | modifier le code]- Johann Helfrich von Müller, Beschreibung seiner neu erfundenen Rechenmachine, nach ihrer Gestalt, ihrem Gebrauch und Nutzen [Description de sa nouvelle machine à calculer, d'après sa forme, son utilisation et son bénéfice] (Frankfurt and Mainz, Germany: Varrentrapp Sohn & Wenner, 1786); pages 48-50. Le site web suivant (en allemand) contient des photos détaillées du calculateur de Müller, ainsi qu'une transcription de son livret, Beschreibung …: http://www.fbi.fh-darmstadt.de/fileadmin/vmi/darmstadt/objekte/rechenmaschinen/mueller/index.htm. Une simulation animée de la machine de Müller en fonctionnement est disponible sur le site (en Allemand): http://www.fbi.fh-darmstadt.de/fileadmin/vmi/darmstadt/objekte/rechenmaschinen/mueller/simulation/index.htm .
- Michael Lindgren (Craig G. McKay, trans.), Glory and Failure: The Difference Engines of Johann Müller, Charles Babbage, and Georg and Edvard Scheutz (Cambridge, Massachusetts: MIT Press, 1990), pages 64 ff.
- (en) Swedin, E.G. et Ferro, D.L., « Computers: The Life Story of a Technology », Greenwood Press, Westport, CT, (consulté le )
- 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 (No 107) pp74-86
- (en) O'Connor, John J. et Robertson, Edmund F., « Charles Babbage », MacTutor History of Mathematics archive, School of Mathematics and Statistics, University of St Andrews, Scotland, (consulté le )
- Martin Campbell-Kelly, Computer : A History of the Information Machine 2nd ed., Boulder, Co, Westview Press, , 325 p. (ISBN 978-0-8133-4264-1)
- The Difference Engines of Johann Müller, Charles Babbage and Georg and Edvard Scheutz by Michael Lindgren, MIT Press, 1990 - 414 pages