Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Difference engine
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Automatic mechanical calculator}} {{For|the novel by William Gibson and Bruce Sterling|The Difference Engine}} [[File:Babbage Difference Engine.jpg|thumb|The London [[Science Museum (London)|Science Museum]]'s difference engine, the first one built from Babbage's design. It has the same precision on all columns, except in calculating polynomials, the precision on the higher-order columns could be lower.]] A '''difference engine''' is an automatic [[mechanical calculator]] designed to tabulate [[polynomial]] functions. It was designed in the 1820s, and was created by [[Charles Babbage]]. The name ''difference engine'' is derived from the method of [[finite differences]], a way to interpolate or tabulate functions by using a small set of polynomial co-efficients. Some of the most common [[mathematical function]]s used in engineering, science and navigation are built from [[logarithm]]ic and [[trigonometric functions]], which can be [[Taylor series|approximated]] by polynomials, so a difference engine can compute many useful [[Mathematical table|tables]]. == History == {{Wikisource|Astronomische Nachrichten/Volume 46/On Mr. Babbage's new machine for calculating and printing mathematical and astronomical tables}} [[File:LondonScienceMuseumsReplicaDifferenceEngine.jpg|thumb|Close-up of the London Science Museum's difference engine showing some of the number wheels and the sector gears between columns. The sector gears on the left show the double-high teeth very clearly. The sector gears on the middle-right are facing the back side of the engine, but the single-high teeth are clearly visible. Notice how the wheels are mirrored, with counting up from left-to-right, or counting down from left-to-right. Also notice the metal tab between "6" and "7". That tab trips the carry lever in the back when "9" passes to "0" in the front during the add steps (Step 1 and Step 3).]] The notion of a [[mechanical calculator]] for mathematical functions can be traced back to the [[Antikythera mechanism]] of the 2nd century BC, while early modern examples are attributed to [[Blaise Pascal|Pascal]] and [[Gottfried Leibniz|Leibniz]] in the 17th century. In 1784 [[J. H. Müller]], an engineer in the [[Hessian (soldier)|Hessian]] army, devised and built an [[adding machine]] and described the basic principles of a difference machine in a book published in 1786 (the first written reference to a difference machine is dated to 1784), but he was unable to obtain funding to progress with the idea.<ref>Johann Helfrich von Müller, ''Beschreibung seiner neu erfundenen Rechenmachine, nach ihrer Gestalt, ihrem Gebrauch und Nutzen'' [Description of his newly invented calculating machine, according to its form, its use and benefit] (Frankfurt and Mainz, Germany: Varrentrapp Sohn & Wenner, 1786); pages 48–50. The following Web site (in German) contains detailed photos of Müller's calculator as well as a transcription of Müller's booklet, ''Beschreibung …'': https://www.fbi.h-da.de/fileadmin/vmi/darmstadt/objekte/rechenmaschinen/mueller/index.htm {{Webarchive|url=https://web.archive.org/web/20160305045701/https://www.fbi.h-da.de/fileadmin/vmi/darmstadt/objekte/rechenmaschinen/mueller/index.htm |date=2016-03-05 }} . An animated simulation of Müller's machine in operation is available on this Web site (in German): https://www.fbi.h-da.de/fileadmin/vmi/darmstadt/objekte/rechenmaschinen/mueller/simulation/index.htm {{Webarchive|url=https://web.archive.org/web/20160306174013/https://www.fbi.h-da.de/fileadmin/vmi/darmstadt/objekte/rechenmaschinen/mueller/simulation/index.htm |date=2016-03-06 }} .</ref><ref>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), [https://books.google.com/books?id=plgMl2yfVkwC&pg=PA64 pages 64 ff].</ref><ref>{{cite book |url=https://archive.org/details/computerslifesto0000swed |url-access=registration |title=Computers: The Life Story of a Technology |author1=Swedin, E.G. |author2=Ferro, D.L. |publisher=Greenwood Press, Westport, Connecticut |date=2005 |isbn=978-0-313-33149-7 |page=[https://archive.org/details/computerslifesto0000swed/page/14 14] }}</ref> ===Charles Babbage's difference engines=== Charles Babbage began to construct a small difference engine in {{circa|1819}}<ref>{{Cite book |url=https://books.google.com/books?id=tXBVAgAAQBAJ&pg=PT22 |title=It Began with Babbage: The Genesis of Computer Science |last=Dasgupta |first=Subrata |date=2014 |publisher=Oxford University Press |isbn=978-0-19-930943-6|page=22}}</ref> and had completed it by 1822 (Difference Engine 0).<ref name=":0">{{Cite book |title=The Turing Guide |author-link1=Jack Copeland |last1=Copeland |first1=B. Jack |author-link2=Jonathan Bowen |last2=Bowen |first2=Jonathan P. |author-link3=Robin Wilson (mathematician) |last3=Wilson |first3=Robin |last4=Sprevak |first4=Mark |date=2017 |publisher=[[Oxford University Press]] |isbn=9780191065002 |page=251 |title-link=The Turing Guide }}</ref> He announced his invention on 14 June 1822, in a paper to the [[Royal Astronomical Society]], entitled "Note on the application of machinery to the computation of astronomical and mathematical tables".<ref>{{cite web |last1=O'Connor |first1=John J. |last2=Robertson |first2=Edmund F. |author-link2=Edmund F. Robertson |date=1998 |url=http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Babbage.html |title=Charles Babbage |work=MacTutor History of Mathematics archive |publisher=School of Mathematics and Statistics, University of St Andrews, Scotland |access-date=2006-06-14 |archive-url=https://web.archive.org/web/20060616002258/http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Babbage.html |archive-date=2006-06-16 }}</ref> This machine used the decimal number system and was powered by cranking a handle. The [[British government]] was interested, since producing tables was time-consuming and expensive and they hoped the difference engine would make the task more economical.<ref name="Campbell-Kelly 2004">{{cite book |title=Computer: A History of the Information Machine 2nd ed. |last=Campbell-Kelly |first=Martin |publisher=Westview Press |date=2004 |isbn=978-0-8133-4264-1 |location=Boulder, Colorado |author-link=Martin Campbell-Kelly |url-access=registration |url=https://archive.org/details/computerhistoryo02edcamp }}</ref> In 1823, the British government gave Babbage £1700 to start work on the project. Although Babbage's design was feasible, the metalworking techniques of the era could not economically make parts in the precision and quantity required. Thus the implementation proved to be much more expensive and doubtful of success than the government's initial estimate. According to the 1830 design for Difference Engine No. 1, it would have about 25,000 parts, weigh 4 [[ton]]s,<ref>{{Cite web |title=The Engines {{!}} Babbage Engine |url=https://www.computerhistory.org/babbage/engines/ |publisher=Computer History Museum |access-date=2022-07-10 }}</ref> and operate on 20-digit numbers by sixth-order differences. In 1832, Babbage and [[Joseph Clement]] produced a small working model (one-seventh of the plan),<ref name=":0" /> which operated on 6-digit numbers by second-order differences.<ref name=":1">{{Cite book |url=https://books.google.com/books?id=QqrItgm351EC&pg=PA204 |title=A Brief History of Computing |last=O'Regan |first=Gerard |date=2012 |publisher=Springer Science & Business Media |isbn=978-1-4471-2359-0|page=204}}</ref><ref name=":2">{{Cite book |url=https://books.google.com/books?id=JckCvpOQDOoC&pg=PP1 |title=The Philosophical Breakfast Club: Four Remarkable Friends Who Transformed Science and Changed the World |last=Snyder |first=Laura J. |date=2011 |publisher=Crown/Archetype|isbn=978-0-307-71617-0 |pages=192, 210, 217 }}</ref> [[Lady Byron]] described seeing the working prototype in 1833: "We both went to see the thinking machine (or so it seems) last Monday. It raised several Nos. to the 2nd and 3rd powers, and extracted the root of a Quadratic equation."<ref>{{Cite book |title=Ada, the Enchantress of Numbers |last1=Toole |first1=Betty Alexandra |last2=Lovelace |first2=Ada |date=1998 |publisher=Strawberry Press |isbn=978-0912647180 |location=Mill Valley, California |oclc=40943907 |page=[https://archive.org/details/adaenchantressof00tool/page/38 38] |url=https://archive.org/details/adaenchantressof00tool/page/38 }}</ref> Lady Byron's daughter [[Ada Lovelace]] would later become fascinated with and work on creating the first computer program intended to solve Bernoulli's equation utilizing the difference engine. Work on the larger engine was suspended in 1833. By the time the government abandoned the project in 1842,<ref name=":2" /><ref>{{Cite book |url=https://books.google.com/books?id=UmNJAAAAYAAJ&pg=PA387 |title=A History of the Royal Society: With Memoirs of the Presidents |last=Weld |first=Charles Richard |date=1848 |publisher=J. W. Parker |pages=387–390 }}</ref> Babbage had received and spent over £17,000 on development, which still fell short of achieving a working engine. The government valued only the machine's output (economically produced tables), not the development (at unpredictable cost) of the machine itself. Babbage refused to recognize that predicament.<ref name="Campbell-Kelly 2004" /> Meanwhile, Babbage's attention had moved on to developing an [[analytical engine]], further undermining the government's confidence in the eventual success of the difference engine. By improving the concept as an analytical engine, Babbage had made the difference engine concept obsolete, and the project to implement it an utter failure in the view of the government.<ref name="Campbell-Kelly 2004" /> The incomplete Difference Engine No. 1 was put on display to the public at the [[1862 International Exhibition]] in [[South Kensington]], London.<ref>{{Cite book |url=https://books.google.com/books?id=aDJRAAAAYAAJ |title=Cyclopaedia of useful arts, mechanical and chemical, manufactures, mining and engineering: in three volumes, illustrated by 63 steel engravings and 3063 wood engravings |last=Tomlinson |first=Charles |date=1868 |publisher=Virtue & Co. |page=136 }}</ref><ref>{{Cite book |url=https://archive.org/details/bub_gb_z7MpAAAAYAAJ|title=Official catalogue of the industrial department |date=1862 |page=[https://archive.org/details/bub_gb_z7MpAAAAYAAJ/page/n70 49] }}</ref> Babbage went on to design his much more general analytical engine, but later designed an improved "Difference Engine No. 2" design (31-digit numbers and seventh-order differences),<ref name=":1" /> between 1846 and 1849. Babbage was able to take advantage of ideas developed for the analytical engine to make the new difference engine calculate more quickly while using fewer parts.<ref>{{cite book |title=The Philosophical Breakfast Club |last=Snyder |first=Laura J. |publisher=Broadway Brooks |date=2011 |isbn=978-0-7679-3048-2 |location=New York |url-access=registration |url=https://archive.org/details/philosophicalbre0000snyd}}</ref><ref>{{Cite book |title=The Dawn of Innovation: The First American Industrial Revolution |last=Morris |first=Charles R. |url=https://books.google.com/books?id=hRQBAwAAQBAJ&pg=PA63 |date=October 23, 2012 |publisher=PublicAffairs |isbn=9781610393577 |page=63 }}</ref> === Scheutzian calculation engine === [[File:Difference engine Scheutz.jpg|thumb|upright=1.8|Per Georg Scheutz's third difference engine, in the [[Science Museum, London|Science Museum]], London]] Inspired by Babbage's difference engine in 1834, the Swedish inventor [[Per Georg Scheutz]] built several experimental models. In 1837 his son Edward proposed to construct a working model in metal, and in 1840 finished the calculating part, capable of calculating series with 5-digit numbers and first-order differences, which was later extended to third-order (1842). In 1843, after adding the printing part, the model was completed. In 1851, funded by the government, construction of the larger and improved (15-digit numbers and fourth-order differences) machine began, and finished in 1853. The machine was demonstrated at the [[Exposition Universelle (1855)|World's Fair in Paris, 1855]] and then sold in 1856 to the [[Dudley Observatory]] in [[Albany, New York]]. Delivered in 1857, it was the first printing calculator sold.<ref name=":3">{{Cite book|url=https://archive.org/details/bub_gb_Ut1wgt6kSBEC|title=Specimens of Tables, Calculated, Stereomoulded, and Printed by Machinery|last1=Scheutz|first1=George|last2=Scheutz|first2=Edward|date=1857 |publisher=Whitnig |pages=VIII–XII, XIV–XV, 3}}</ref><ref name="SI">{{cite web |title=Scheutz Difference Engine |url=https://americanhistory.si.edu/collections/search/object/nmah_997042 |website=Smithsonian National Museum of American History |access-date=June 14, 2019}}</ref><ref name=":6" /> In 1857 the British government ordered the next [[Per Georg Scheutz|Scheutz's]] difference machine, which was built in 1859.<ref>{{Cite book |url=https://archive.org/details/differenceengine00doro|url-access=registration|title=The Difference Engine: Charles Babbage and the Quest to Build the First Computer|last=Swade|first=Doron|date=2002-10-29 |publisher=Penguin Books |isbn=9780142001448 |pages=[https://archive.org/details/differenceengine00doro/page/4 4], 207 }}</ref><ref>{{Cite book|url=https://books.google.com/books?id=jlmVKZ1psCkC&pg=PA37|title=The Universal Machine: From the Dawn of Computing to Digital Consciousness|last=Watson|first=Ian|date=2012|publisher=Springer Science & Business Media|isbn=978-3-642-28102-0|pages=37–38}}</ref> It had the same basic construction as the previous one, weighing about {{Convert|10|-Lcwt|lb kg|lk=on|abbr=on}}.<ref name=":6">{{Cite book |title=First Printing Calculator |last1=Merzbach |first1=Uta C. |author-link=Uta Merzbach |last2=Ripley |first2=S. Dillon |last3=Merzbach |first3=Uta C. |pages=8–9, 13, 25–26, 29–30 |citeseerx=10.1.1.639.3286 }}</ref> === Others === [[Martin Wiberg]] improved Scheutz's construction ({{circa|1859}}, his machine has the same capacity as Scheutz's: 30-digit and sixth-order) but used his device only for producing and publishing printed tables (interest tables in 1860, and [[logarithm]]ic tables in 1875).<ref>{{cite journal |first=Raymond Clare |last=Archibald |title=Martin Wiberg, His Table and Difference Engine |journal=Mathematical Tables and Other Aids to Computation |date=1947 |volume=2 |issue=20 |pages=371–374 |url=https://www.ams.org/journals/mcom/1947-02-020/S0025-5718-47-99566-5/S0025-5718-47-99566-5.pdf }}</ref> Alfred Deacon of London in {{circa|1862}} produced a small difference engine (20-digit numbers and third-order differences).<ref name=":3" /><ref name=":4">{{Cite book|at=[https://books.google.com/books?id=O170gWPZ7M8C&pg=PA136 pp. 132–136]|title=The History of Mathematical Tables: From Sumer to Spreadsheets|last=Campbell-Kelly|first=Martin|date=2003|publisher=OUP Oxford|isbn=978-0-19-850841-0|title-link= The History of Mathematical Tables}}</ref> American [[George B. Grant]] started working on his calculating machine in 1869, unaware of the works of Babbage and Scheutz (Schentz). One year later (1870) he learned about difference engines and proceeded to design one himself, describing his construction in 1871. In 1874 the Boston Thursday Club raised a subscription for the construction of a large-scale model, which was built in 1876. It could be expanded to enhance precision and weighed about {{convert|2000|lb|kg}}.<ref name=":4" /><ref>{{Cite web|archive-url=https://web.archive.org/web/20120225033434/http://history-computer.com/Babbage/NextDifferentialEngines/Hamann.html|access-date=2017-09-14| archive-date=2012-02-25|url=http://history-computer.com/Babbage/NextDifferentialEngines/Hamann.html | title=History of Computers and Computing, Babbage, Next differential engines, Hamann|website=history-computer.com}}</ref><ref>{{Cite book|url=https://archive.org/details/greatcentenniale00sandrich|title=The Great Centennial Exhibition Critically Described and Illustrated|last=Sandhurst|first=Phillip T.|date=1876|publisher=P. W. Ziegler & Company|pages=[https://archive.org/details/greatcentenniale00sandrich/page/423 423], 427}}</ref> [[Christel Hamann]] built one machine (16-digit numbers and second-order differences) in 1909 for the "Tables of [[Julius Bauschinger|Bauschinger]] and Peters" ("Logarithmic-Trigonometrical Tables with eight decimal places"), which was first published in Leipzig in 1910. It weighed about {{convert|40|kg|lb}}.<ref name=":4" /><ref>{{Cite book|url=https://books.google.com/books?id=vD7PAAAAMAAJ|title=Logarithmisch-trigonometrische Tafeln mit acht Dezimalstellen, enthaltend die Logarithmen aller Zahlen von 1 bis 200000 und die Logarithmen der trigonometrischen Funktionen f"ur jede Sexagesimalsekunde des Quadranten: Bd. Tafel der achtstelligen Logarithmen aller Zahlen von 1 bis 200000|last1=Bauschinger|first1=Julius|last2=Peters|first2=Jean|date=1958|publisher=H. R. Engelmann|pages=Preface V–VI}}</ref><ref>{{Cite book|url=https://archive.org/details/logarithmischtri01bausuoft|title=Logarithmisch-trigonometrische Tafeln, mit acht Dezimalstellen, enthaltend die Logarithmen aller Zahlen von 1 bis 200000 und die Logarithmen der trigonometrischen Funktionen für jede Sexagesimalsekunde des Quadranten. Neu berechnet und hrsg. von J. Bauschinger und J. Peters. Stereotypausg|last1=Bauschinger|first1=Julius|last2=Peters|first2=J. (Jean)|date=1910|publisher=Leipzig W. Englemann|others=Gerstein - University of Toronto|pages=Einleitung VI|language=de}}</ref> [[Burroughs Corporation]] in about 1912 built a machine for the [[HM Nautical Almanac Office|Nautical Almanac Office]] which was used as a difference engine of second-order.<ref name=":5">{{Cite journal|last=Comrie|first=L. J.|date=1928-03-01|title=On the application of the BrunsvigaDupla calculating machine to double summation with finite differences|bibcode=1928MNRAS..88..447C|journal=Monthly Notices of the Royal Astronomical Society|volume=88|issue=5|pages=451, 453–454, 458–459|doi=10.1093/mnras/88.5.447|issn=0035-8711|via=[[Astrophysics Data System]]|doi-access=free}}</ref>{{Rp|451}}<ref>{{Cite book|url=https://archive.org/stream/moderninstrument00horsuoft#page/127/mode/1up/search/hudson|title=Modern instruments and methods of calculation : a handbook of the Napier Tercentenary Exhibition|last1=Horsburg|first1=E. M.|date=1914|location=London|publisher=G. Bell|pages=127–131}}</ref> It was later replaced in 1929 by a Burroughs Class 11 (13-digit numbers and second-order differences, or 11-digit numbers and <nowiki>[at least up to]</nowiki> fifth-order differences).<ref>{{Cite journal|last=Comrie|first=L. J.|date=1932-04-01|title=The Nautical Almanac Office Burroughs machine|bibcode=1932MNRAS..92..523C|journal=Monthly Notices of the Royal Astronomical Society|volume=92|issue=6|pages=523–524, 537–538|doi=10.1093/mnras/92.6.523|issn=0035-8711|via=[[Astrophysics Data System]]|doi-access=free}}</ref> [[Alexander John Thompson]] about 1927 built ''integrating and differencing machine'' (13-digit numbers and fifth-order differences) for his table of logarithms "Logarithmetica britannica". This machine was composed of four modified Triumphator calculators.<ref>{{Cite book |url=https://books.google.com/books?id=fH48AAAAIAAJ|title=Logarithmetica Britannica: Being a Standard Table of Logarithms to Twenty Decimal Places |last=Thompson |first=Alexander John |date=1924 |publisher=CUP Archive |isbn=9781001406893 |pages=V/VI, XXIX, LIV–LVI, LXV (archive: pp. 7, 30, 55–59, 68) }} [https://archive.org/stream/in.ernet.dli.2015.285845/2015.285845.Logarithmetica-Britannica#page/n29/mode/1up/search/Integrating+and+Differencing+machine Alt URL]</ref><ref>{{Cite web|url=https://history-computer.com/Babbage/NextDifferentialEngines/Thompson.html|title=History of Computers and Computing, Babbage, Next differential engines, Alexander John Thompson|website=history-computer.com|access-date=2017-09-22}}</ref><ref>{{Cite web|url=http://mechrech.info/publikat/publikat.html#pub70|title=Publikationen|last=Weiss|first=Stephan|website=mechrech.info|pages=160–163|others=''Difference Engines in the 20th Century''. First published in Proceedings 16th International Meeting of Collectors of Historical Calculating Instruments, Sep. 2010, Leiden|access-date=2017-09-22}}</ref> [[Leslie Comrie]] in 1928 described how to use the [[Odhner Arithmometer|Brunsviga]]-Dupla calculating machine as a difference engine of second-order (15-digit numbers).<ref name=":5" /> He also noted in 1931 that National Accounting Machine Class 3000 could be used as a difference engine of sixth-order.<ref name=":4" />{{Rp|137–138}} ===Construction of two working No. 2 difference engines=== During the 1980s, [[Allan G. Bromley]], an associate professor at the [[University of Sydney]], [[Australia]], studied Babbage's original drawings for the Difference and Analytical Engines at the [[Science Museum (London)|Science Museum]] library in London.<ref>[http://csdl2.computer.org/persagen/DLAbsToc.jsp?resourcePath=/dl/mags/an/&toc=comp/mags/an/2000/04/a4toc.xml ''IEEE Annals of the History of Computing'', 22(4), October–December 2000].</ref> This work led the Science Museum to construct a working calculating section of difference engine No. 2 from 1985 to 1991, under [[Doron Swade]], the then Curator of Computing. This was to celebrate the 200th anniversary of Babbage's birth in 1991. In 2002, the [[Printer (computing)|printer]] which Babbage originally designed for the difference engine was also completed.<ref>{{cite web |title=A Modern Sequel {{!}} Babbage Engine |url=http://www.computerhistory.org/babbage/modernsequel/ |publisher=Computer History Museum }}</ref> The conversion of the original design drawings into drawings suitable for engineering manufacturers' use revealed some minor errors in Babbage's design (possibly introduced as a protection in case the plans were stolen),<ref>[http://news.bbc.co.uk/1/hi/sci/tech/710950.stm Babbage printer finally runs, BBC news quoting Reg Crick] Accessed May 17, 2012</ref> which had to be corrected. The difference engine and printer were constructed to tolerances achievable with 19th-century technology, resolving a long-standing debate as to whether Babbage's design could have worked using Georgian-era engineering methods. The machine contains 8,000 parts and weighs about 5 tons.<ref name="CHM Press Releases">Press Releases {{!}} Computer History * {{Cite press release |date=2008-05-05 |title=The Computer History Museum Debuts Charles Babbage's Difference Engine No. 2, On Display for the First Time in North America |url=http://www.computerhistory.org/press/babbage-engine-exhibit.html |publisher=Computer History Museum |access-date=2018-10-27 }} * {{cite press release |date=March 31, 2009 |title=The Computer History Museum Extends Its Exhibition of Babbage's Difference Engine No. 2 |url=http://www.computerhistory.org/press/babbage-engine-extension.html |archive-url=https://web.archive.org/web/20160103015136/http://www.computerhistory.org/press/babbage-engine-extension.html |publisher=Computer History Museum |archive-date=2016-01-03 |access-date=2009-11-06 }}</ref> The printer's primary purpose is to produce [[Stereotype (printing)|stereotype]] plates for use in printing presses, which it does by pressing type into soft plaster to create a [[flong]]. Babbage intended that the Engine's results be conveyed directly to mass printing, having recognized that many errors in previous tables were not the result of human calculating mistakes but from slips in the manual [[typesetting]] process.<ref name="Campbell-Kelly 2004" /> The printer's paper output is mainly a means of checking the engine's performance. In addition to funding the construction of the output mechanism for the Science Museum's difference engine, [[Nathan Myhrvold]] commissioned the construction of a second complete Difference Engine No. 2, which was on exhibit at the [[Computer History Museum]] in [[Mountain View, California]], from May 2008 to January 2016.<ref name="CHM Press Releases" /><ref>{{Cite web |url=http://www.computerhistory.org/exhibits/babbage/ |title=The Babbage Difference Engine No. 2 |publisher=Computer History Museum |access-date=2018-10-26 }}</ref><ref name="chm2">{{cite web |author-link=Daniel Terdiman |last=Terdiman |first=Daniel |date=April 10, 2008 |title=Charles Babbage's masterpiece difference engine comes to Silicon Valley |url=https://www.cnet.com/culture/charles-babbages-masterpiece-difference-engine-comes-to-silicon-valley/ |work=[[CNET News]]}}</ref><ref>{{Cite web |last=Noack |first=Mark |title=Computer Museum bids farewell to Babbage engine |url=https://www.mv-voice.com/news/2016/01/29/computer-museum-bids-farewell-to-babbage-engine |access-date=2022-07-10 |website=Mv-voice.com |date=29 January 2016 }}</ref> It has since been transferred to [[Intellectual Ventures]] in [[Seattle]] where it is on display just outside the main lobby.<ref>{{Cite web |last=Boyle |first=Alan |date=2016-09-11 |title=Inside the invention factory: Get a peek at Intellectual Ventures' lab |url=https://www.geekwire.com/2016/inside-intellectual-ventures-lab/ |access-date=2024-04-21}}</ref><ref>{{Cite web |title=Intellectual Ventures on LinkedIn: #ivlab #coolscience |url=https://www.linkedin.com/posts/intellectual-ventures_ivlab-coolscience-activity-6568159438295965696-tGHx |access-date=2024-04-21 |website=www.linkedin.com |language=en}}</ref><ref>{{Cite web |last=Ventures |first=Intellectual |date=September 1, 2016 |title=IV's Favorite Inventions: The Babbage Machine |url=https://www.intellectualventures.com/buzz/insights/ivs-favorite-inventions-the-babbage-machine#:~:text=Visit%20the%20Intellectual%20Ventures%20Lab,in%20the%20IV%20Lab%20foyer. |access-date=March 24, 2024 |website=Intellectual Ventures}}</ref> == Operation == {{Unreferenced section|date=June 2017}} [[File:Difference engine.JPG|thumb|Fully operational difference engine at the [[Computer History Museum]] in [[Mountain View, California]]]] [[File:Babbage Engine Demonstration pt. 3.webm|thumb|The Mountain View machine in action]] The difference engine consists of a number of columns, numbered from '''1''' to '''''N'''''. The machine is able to store one decimal number in each column. The machine can only add the value of a column ''n'' + 1 to column ''n'' to produce the new value of ''n''. Column ''N'' can only store a constant, column 1 displays (and possibly [[Computer printer|prints]]) the value of the calculation on the current [[iteration]]. The engine is programmed by setting initial values to the columns. Column 1 is set to the value of the polynomial at the start of computation. Column 2 is set to a value derived from the first and higher [[derivative]]s of the polynomial at the same value of '''''X'''''. Each of the columns from 3 to ''N'' is set to a value derived from the <math>(n-1)</math> first and higher derivatives of the polynomial. <ref name="edinburgh1834">{{Cite journal|url=https://en.wikisource.org/wiki/Edinburgh_Review/Volume_59/Babbage%27s_Calculating_Engine |last=Lardner|first= D.|title=Babbage's Calculating Engine |journal=Edinburgh Review|date=July 1834|pages=263–327 |quote=In WikiSource and also reprinted in ''The works of Charles Babbage,'' Vol 2, p.119ff|access-date=October 11, 2022}}</ref> === Timing === In the Babbage design, one iteration (i.e. one full set of addition and [[Carry (arithmetic)|carry]] operations) happens for each rotation of the main shaft. Odd and even columns alternately perform an addition in one cycle. The sequence of operations for column <math>n</math> is thus:<ref name="edinburgh1834" /> # Count up, receiving the value from column <math>n+1</math> (Addition step) # Perform [[carry propagation]] on the counted up value # Count down to zero, adding to column <math>n-1</math> # Reset the counted-down value to its original value Steps 1,2,3,4 occur for every odd column, while steps 3,4,1,2 occur for every even column. While Babbage's original design placed the crank directly on the main shaft, it was later realized that the force required to crank the machine would have been too great for a human to handle comfortably. Therefore, the two models that were built incorporate a 4:1 reduction gear at the crank, and four revolutions of the crank are required to perform one full cycle. === Steps === Each iteration creates a new result, and is accomplished in four steps corresponding to four complete turns of the handle shown at the far right in the picture below. The four steps are: # All even numbered columns (2,4,6,8) are added to all odd numbered columns (1,3,5,7) simultaneously. An interior sweep arm turns each even column to cause whatever number is on each wheel to count down to zero. As a wheel turns to zero, it transfers its value to a sector gear located between the odd/even columns. These values are transferred to the odd column causing them to count up. Any odd column value that passes from "9" to "0" activates a [[carry (arithmetic)|carry]] lever. # This is like Step 1, except it is odd columns (3,5,7) added to even columns (2,4,6), and column one has its values transferred by a sector gear to the print mechanism on the left end of the engine. Any even column value that passes from "9" to "0" activates a carry lever. The column 1 value, the result for the polynomial, is sent to the attached printer mechanism. # This is like Step 2, but for doing carries on even columns, and returning odd columns to their original values. <!-- What happened to step #4?! --> === Subtraction === The engine represents negative numbers as [[Method of complements|ten's complements]]. Subtraction amounts to addition of a negative number. This works in the same manner that modern computers perform subtraction, known as [[two's complement]]. == Method of differences == The principle of a difference engine is [[Newton polynomial|Newton's method]] of [[divided differences]]. If the initial value of a polynomial (and of its [[finite difference]]s) is calculated by some means for some value of '''''X''''', the difference engine can calculate any number of nearby values, using the method generally known as the '''method of finite differences'''. For example, consider the quadratic [[polynomial]] : <math>p(x) = 2x^2 - 3x + 2 \,</math> with the goal of tabulating the values ''p''(0), ''p''(1), ''p''(2), ''p''(3), ''p''(4), and so forth. The table below is constructed as follows: the second column contains the values of the polynomial, the third column contains the differences of the two left neighbors in the second column, and the fourth column contains the differences of the two neighbors in the third column: {| class="wikitable" |- ! x !! ''p''(''x'') = 2''x''<sup>2</sup> − 3''x'' + 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 || || |} The numbers in the third values-column are constant. In fact, by starting with any polynomial of degree ''n'', the column number ''n'' + 1 will always be constant. This is the crucial fact behind the success of the method. This table was built from left to right, but it is possible to continue building it from right to left down a diagonal in order to compute more values. To calculate ''p''(5) use the values from the lowest diagonal. Start with the fourth column constant value of 4 and copy it down the column. Then continue the third column by adding 4 to 11 to get 15. Next continue the second column by taking its previous value, 22 and adding the 15 from the third column. Thus ''p''(5) is 22 + 15 = 37. In order to compute ''p''(6), we iterate the same algorithm on the ''p''(5) values: take 4 from the fourth column, add that to the third column's value 15 to get 19, then add that to the second column's value 37 to get 56, which is ''p''(6). This process may be continued ''[[ad infinitum]]''. The values of the polynomial are produced without ever having to multiply. A difference engine only needs to be able to add. From one loop to the next, it needs to store 2 numbers—in this example (the last elements in the first and second columns). To tabulate polynomials of degree ''n'', one needs sufficient storage to hold ''n'' numbers. Babbage's difference engine No. 2, finally built in 1991, can hold 8 numbers of 31 decimal digits each and can thus tabulate 7th degree polynomials to that precision. The best machines from Scheutz could store 4 numbers with 15 digits each.<ref>{{Cite book |url=https://books.google.com/books?id=QqrItgm351EC&pg=PA201 |title=A Brief History of Computing |last=O'Regan |first=Gerard |date=2012 |publisher=Springer Science & Business Media |isbn=978-1-4471-2359-0 |page=201 }}</ref> == Initial values == The initial values of columns can be calculated by first manually calculating N consecutive values of the function and by [[backtracking]] (i.e. calculating the required differences). Col <math>1_0</math> gets the value of the function at the start of computation <math>f(0)</math>. Col <math>2_0</math> is the difference between <math>f(1)</math> and <math>f(0)</math>...<ref name="Thelen">{{cite web |url=http://ed-thelen.org/bab/bab-intro.html |title=Babbage Difference Engine #2 – How to Initialize the Machine – |last=Thelen |first=Ed |date=2008 }}</ref> If the function to be calculated is a [[polynomial function]], expressed as : <math> f(x) = a_n x^n + a_{n-1} x^{n-1} + \cdots + a_2 x^2 + a_1 x + a_0 \, </math> the initial values can be calculated directly from the constant coefficients ''a''<sub>0</sub>, ''a''<sub>1</sub>,''a''<sub>2</sub>, ..., ''a<sub>n</sub>'' without calculating any data points. The initial values are thus: * Col <math>1_0</math> = ''a''<sub>0</sub> * Col <math>2_0</math> = ''a''<sub>1</sub> + ''a''<sub>2</sub> + ''a''<sub>3</sub> + ''a''<sub>4</sub> + ... + ''a<sub>n</sub>'' * Col <math>3_0</math> = 2''a''<sub>2</sub> + 6''a''<sub>3</sub> + 14''a''<sub>4</sub> + 30''a''<sub>5</sub> + ... * Col <math>4_0</math> = 6''a''<sub>3</sub> + 36''a''<sub>4</sub> + 150''a''<sub>5</sub> + ... * Col <math>5_0</math> = 24''a''<sub>4</sub> + 240''a''<sub>5</sub> + ... * Col <math>6_0</math> = 120''a''<sub>5</sub> + ... * <math>...</math> === Use of derivatives === Many commonly used functions are [[analytic function]]s, which can be expressed as [[power series]], for example as a [[Taylor series]]. The initial values can be calculated to any degree of accuracy; if done correctly the engine will give exact results for first N steps. After that, the engine will only give an [[approximation]] of the function. The Taylor series expresses the function as a sum obtained from its [[derivative]]s at one point. For many functions the higher derivatives are trivial to obtain; for instance, the [[sine]] function at 0 has values of 0 or <math>\pm1</math> for all derivatives. Setting 0 as the start of computation we get the simplified [[Maclaurin series]] :<math> \sum_{n=0}^{\infin} \frac{f^{(n)}(0)}{n!}\ x^{n} </math> The same method of calculating the initial values from the coefficients can be used as for polynomial functions. The polynomial constant coefficients will now have the value :<math> a_n \equiv \frac{f^{(n)}(0)}{n!} </math> === Curve fitting === The problem with the methods described above is that errors will accumulate and the series will tend to diverge from the true function. A solution which guarantees a constant maximum error is to use [[curve fitting]]. A minimum of ''N'' values are calculated evenly spaced along the range of the desired calculations. Using a curve fitting technique like [[Gaussian reduction]] an ''N''−1th degree [[polynomial interpolation]] of the function is found.<ref name="Thelen" /> With the optimized polynomial, the initial values can be calculated as above. == See also == {{Portal|Mathematics}} <!-- Please keep entries in alphabetical order & add a short description [[WP:SEEALSO]] --> {{div col}} * [[Allan G. Bromley]] * [[Johann Helfrich von Müller]] * [[Logical machine]] * [[Martin Wiberg]] * [[Pinwheel calculator]] {{div col end}} == References == {{Reflist}} == Further reading == {{Refbegin|}} * {{cite book |title=The Philosophical Breakfast Club: Four Remarkable Friends Who Transformed Science and Changed the World |last=Snyder |first=Laura J. |publisher=Broadway |date=2011 |isbn=978-0-7679-3048-2 |url-access=registration |url=https://archive.org/details/philosophicalbre0000snyd}} * {{cite book |url=http://ed-thelen.org/bab/bab_tech.html |title=Charles Babbage's Difference Engine No. 2 – Technical Description |last=Swade |first=Doron |date=September 1996 |publisher=[[National Museum of Science and Industry]] |series=Science Museum Papers in the History of Technology No 5 |location=London |access-date=2009-01-11}} * {{cite book |title=The Difference Engine: Charles Babbage and the Quest to Build the First Computer |last=Swade |first=Doron |publisher=Penguin (reprint) |date=2002 |isbn=978-0-14-200144-8 |author-link=Doron Swade |url=https://archive.org/details/differenceengine00doro}} * {{cite book |title=The Cogwheel Brain |last=Swade |first=Doron |publisher=Abacus |date=2001 |isbn=978-0-349-11239-8}} * {{cite video |people=Doron Swade, [[Nathan Myhrvold]] |title=Myhrvold & Swade Discuss Babbage's Difference Engine |url=https://www.youtube.com/watch?v=p1sEowi1Txc |archive-url=https://ghostarchive.org/varchive/youtube/20211211/p1sEowi1Txc |archive-date=2021-12-11 |url-status=live |medium=lecture: [[Len Shustek]], intro; Doron Swade @7:35, Nathan Myhrvold @36:25; discussion @46:45 |publisher=Computer History Museum |date=June 10, 2008 |access-date=2009-11-06}}{{cbignore}} * {{cite book |chapter-url=https://books.google.com/books?id=O170gWPZ7M8C |title=The History of Mathematical Tables: From Sumer to Spreadsheets |last1=Campbell-Kelly |first1=Martin |date=2003 |publisher=OUP Oxford |others=Michael R. Williams |isbn=9780198508410 |chapter=Difference engines: from Müller to Comrie}} *Hollings, C., Martin, U., & Rice, A. C. (2018). Ada lovelace: The making of a computer scientist. Bodleian Library.{{Refend}} == External links == {{Commons category|Difference engines}} * [https://www.computerhistory.org/babbage/ The Computer History Museum exhibition on Babbage and the difference engine] * [https://www.meccano.us/difference_engines/rde_1/ Meccano Difference Engine #1] * [http://www.meccano.us/difference_engines/rde_2/index.html Meccano Difference Engine #2] * [https://sites.google.com/site/babbagedifferenceengine/howitwasintendedtowork Babbage's First Difference Engine – How it was intended to work] * [http://sites.google.com/site/babbagedifferenceengine/analysisofexpenditureondifferenceenginen Analysis of Expenditure on Babbage's Difference Engine No. 1] * [https://satyam.com.ar/Babbage/en/index.html Difference engine workings with animations] * [https://web.archive.org/web/20100311120130/http://www.powerhousemuseum.com/collection/database/?irn=150269&img=146773 Difference Engine No1 specimen piece at the Powerhouse Museum, Sydney] * [https://www.xrez.com/case-studies/exhibition/babbage-gigapixel-difference-engine/ Gigapixel Image of the Difference Engine No2] * [https://www.youtube.com/watch?v=YtZCYnBlZpk Scheutz Difference Engine in action video. Purchased by the Dudley Observatory's first director, Benjamin Apthorp Gould, in 1856. Gould was an acquaintance of Babbage. The Difference Engine performed astronomical calculations for the Observatory for many years, and is now part of the national collection at the Smithsonian.] * Links to videos about Babbage DE 2 and its construction: {{cite web |title=Computer Histories: To Learn More |url=http://www.computerhistories.org/ToLearnMore.html |website=www.computerhistories.org|at=Topic 5 - Computers in the Steam Era (Not Hackers But Clackers)}} {{Calculator navbox}} {{Authority control}} [[Category:1822 introductions]] [[Category:Addition]]<!-- the only thing a 'difference' engine does! --> [[Category:Articles containing video clips]] [[Category:Charles Babbage]] [[Category:Collection of the Science Museum, London]] [[Category:Computer-related introductions in the 19th century]] [[Category:English inventions]] [[Category:Mechanical calculators]] [[Category:Replicas]] [[Category:Subtraction]]<!-- hand calculated -->
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Ambox
(
edit
)
Template:Authority control
(
edit
)
Template:Calculator navbox
(
edit
)
Template:Cbignore
(
edit
)
Template:Circa
(
edit
)
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite press release
(
edit
)
Template:Cite video
(
edit
)
Template:Cite web
(
edit
)
Template:Commons category
(
edit
)
Template:Convert
(
edit
)
Template:Div col
(
edit
)
Template:Div col end
(
edit
)
Template:For
(
edit
)
Template:Portal
(
edit
)
Template:Refbegin
(
edit
)
Template:Refend
(
edit
)
Template:Reflist
(
edit
)
Template:Rp
(
edit
)
Template:Short description
(
edit
)
Template:Sister project
(
edit
)
Template:Unreferenced
(
edit
)
Template:Unreferenced section
(
edit
)
Template:Webarchive
(
edit
)
Template:Wikisource
(
edit
)