HOME

TheInfoList



OR:

A difference engine is an automatic
mechanical calculator A mechanical calculator, or calculating machine, is a mechanical device used to perform the basic operations of arithmetic automatically, or (historically) a simulation such as an analog computer or a slide rule. Most mechanical calculators w ...
designed to tabulate polynomial functions. It was designed in the 1820s, and was first created by Charles Babbage. The name, the difference engine, is derived from the method of divided differences, a way to interpolate or tabulate functions by using a small set of
polynomial In mathematics, a polynomial is an expression consisting of indeterminates (also called variables) and coefficients, that involves only the operations of addition, subtraction, multiplication, and positive-integer powers of variables. An exampl ...
co-efficients. Some of the most common mathematical functions used in engineering, science and navigation, were, and still are computable with the use of the difference engine's capability of computing
logarithm In mathematics, the logarithm is the inverse function to exponentiation. That means the logarithm of a number  to the base  is the exponent to which must be raised, to produce . For example, since , the ''logarithm base'' 10 ...
ic and
trigonometric functions In mathematics, the trigonometric functions (also called circular functions, angle functions or goniometric functions) are real functions which relate an angle of a right-angled triangle to ratios of two side lengths. They are widely used in a ...
, which can be approximated by polynomials, so a difference engine can compute many useful tables of numbers.


History

The notion of a
mechanical calculator A mechanical calculator, or calculating machine, is a mechanical device used to perform the basic operations of arithmetic automatically, or (historically) a simulation such as an analog computer or a slide rule. Most mechanical calculators w ...
for mathematical functions can be traced back to the
Antikythera mechanism The Antikythera mechanism ( ) is an Ancient Greek hand-powered orrery, described as the oldest example of an analogue computer used to predict astronomical positions and eclipses decades in advance. It could also be used to track the four-y ...
of the 2nd century BC, while early modern examples are attributed to
Pascal Pascal, Pascal's or PASCAL may refer to: People and fictional characters * Pascal (given name), including a list of people with the name * Pascal (surname), including a list of people and fictional characters with the name ** Blaise Pascal, Frenc ...
and
Leibniz Gottfried Wilhelm (von) Leibniz . ( – 14 November 1716) was a German polymath active as a mathematician, philosopher, scientist and diplomat. He is one of the most prominent figures in both the history of philosophy and the history of ma ...
in the 17th century. In 1784 J. H. Müller, an engineer in the Hessian army, devised and built an
adding machine An adding machine is a class of mechanical calculator, usually specialized for bookkeeping calculations. In the United States, the earliest adding machines were usually built to read in dollars and cents. Adding machines were ubiquitous off ...
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.


Charles Babbage's difference engines

Charles Babbage began to construct a small difference engine in c. 1819 and had completed it by 1822 (Difference Engine 0). He announced his invention on 14 June 1822, in a paper to the
Royal Astronomical Society (Whatever shines should be observed) , predecessor = , successor = , formation = , founder = , extinction = , merger = , merged = , type = NG ...
, entitled "Note on the application of machinery to the computation of astronomical and mathematical tables". 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. 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 it would have about 25,000 parts and would have weighed an estimated 4
tons Tons can refer to: * Tons River, a major river in India * Tamsa River, locally called Tons in its lower parts (Allahabad district, Uttar pradesh, India). * the plural of ton, a unit of mass, force, volume, energy or power :* short ton, 2,000 poun ...
. In 1832, Babbage and Joseph Clement produced a small working model (one-seventh of the calculating section of Difference Engine No. 1, which was intended to operate on 20-digit numbers and sixth-order differences) which operated on 6-digit numbers and second-order differences.
Lady Byron Anne Isabella Noel Byron, 11th Baroness Wentworth and Baroness Byron (''née'' Milbanke; 17 May 1792 – 16 May 1860), nicknamed Annabella and commonly known as Lady Byron, was wife of poet George Gordon Byron, more commonly known as Lord Byro ...
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." Work on the larger engine was suspended in 1833. By the time the government abandoned the project in 1842, 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 did not, or was unwilling to, recognize that predicament. 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. The incomplete Difference Engine No. 1 was put on display to the public at the 1862 International Exhibition in
South Kensington South Kensington, nicknamed Little Paris, is a district just west of Central London in the Royal Borough of Kensington and Chelsea. Historically it settled on part of the scattered Middlesex village of Brompton. Its name was supplanted with ...
, London. Babbage went on to design his much more general analytical engine, but later produced an improved "Difference Engine No. 2" design (31-digit numbers and seventh-order differences), 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.


Scheutzian calculation engine

Inspired by Babbage's difference engine in 1834, 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 World's Fair in Paris, 1855 and then sold in 1856 to the Dudley Observatory in
Albany, New York Albany ( ) is the capital of the U.S. state of New York, also the seat and largest city of Albany County. Albany is on the west bank of the Hudson River, about south of its confluence with the Mohawk River, and about north of New York Cit ...
. Delivered in 1857, it was the first printing calculator sold. In 1857 the British government ordered the next Scheutz's difference machine, which was built in 1859. It had the same basic construction as the previous one, weighing about .


Others

Martin Wiberg improved Scheutz's construction (c. 1859, his machine has the same capacity as Scheutz's - 15-digit and fourth-order) but used his device only for producing and publishing printed tables (interest tables in 1860, and
logarithm In mathematics, the logarithm is the inverse function to exponentiation. That means the logarithm of a number  to the base  is the exponent to which must be raised, to produce . For example, since , the ''logarithm base'' 10 ...
ic tables in 1875). Alfred Deacon of London in c. 1862 produced a small difference engine (20-digit numbers and third-order differences). American
George B. Grant George Barnard Grant (December 21, 1849 – August 16, 1917) was an American mechanical engineer, inventor, entrepreneur and botanist. He is notable for having made important contributions to 19th-century mechanical calculators, for pioneering ne ...
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 .
Christel Hamann Christel Bernhard Julius Hamann (born February 27, 1847 in Hammelwarden, Oldenburg – died June 9, 1948 in Berlin, Germany) was a German-born inventor of Computing Machines. Early life and education Hamann's father was an Oldenburg border g ...
built one machine (16-digit numbers and second-order differences) in 1909 for the "Tables of Bauschinger and Peters" ("Logarithmic-Trigonometrical Tables with eight decimal places"), which was first published in Leipzig in 1910. It weighed about . Burroughs Corporation in about 1912 built a machine for the Nautical Almanac Office which was used as a difference engine of second-order. It was later replaced in 1929 by a Burroughs Class 11 (13-digit numbers and second-order differences, or 11-digit numbers and t least up to/nowiki> fifth-order differences). 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. Leslie Comrie in 1928 described how to use the
Brunsviga The Odhner Arithmometer was a very successful pinwheel calculator invented in Russia in 1873 by W. T. Odhner, a Swedish immigrant. Its industrial production officiallyTrogemann G., Nitussov A.: ''Computing in Russia'', page 39-45, GWV-Vieweg ...
-Dupla calculating machine as a difference engine of second-order (15-digit numbers). He also noted in 1931 that National Accounting Machine Class 3000 could be used as a difference engine of sixth-order.


Construction of two working No. 2 difference engines

During the 1980s, Allan G. Bromley, an associate professor at the
University of Sydney The University of Sydney (USYD), also known as Sydney University, or informally Sydney Uni, is a public research university located in Sydney, Australia. Founded in 1850, it is the oldest university in Australia and is one of the country's si ...
,
Australia Australia, officially the Commonwealth of Australia, is a sovereign country comprising the mainland of the Australian continent, the island of Tasmania, and numerous smaller islands. With an area of , Australia is the largest country by ...
, studied Babbage's original drawings for the Difference and Analytical Engines at the Science Museum library in London. This work led the Science Museum to construct a working calculating section of difference engine No. 2 from 1985 to 1991, under
Doron Swade Doron Swade MBE is a museum curator and author, specialising in the history of computing. He is especially known for his work on the computer pioneer Charles Babbage and his Difference Engine. Swade was originally from South Africa. He has ...
, the then Curator of Computing. This was to celebrate the 200th anniversary of Babbage's birth in 1991. In 2002, the printer which Babbage originally designed for the difference engine was also completed. 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), which had to be corrected. Once completed, both the engine and its printer worked flawlessly, and still do. 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 would have worked (one of the reasons formerly advanced for the non-completion of Babbage's engines had been that engineering methods were insufficiently developed in the late Georgian era). It consists of 8,000 parts and weighs about 5
tons Tons can refer to: * Tons River, a major river in India * Tamsa River, locally called Tons in its lower parts (Allahabad district, Uttar pradesh, India). * the plural of ton, a unit of mass, force, volume, energy or power :* short ton, 2,000 poun ...
. The printer's primary purpose is to produce 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 error in the manual typesetting process. 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 Mountain View is a city in Santa Clara County, California, United States. Named for its views of the Santa Cruz Mountains, it has a population of 82,376. Mountain View was integral to the early history and growth of Silicon Valley, and is t ...
from 10 May 2008 until 31 January 2016.Press Releases Computer History * * It has since been transferred to Intellectual Ventures in
Seattle Seattle ( ) is a seaport city on the West Coast of the United States. It is the seat of King County, Washington. With a 2020 population of 737,015, it is the largest city in both the state of Washington and the Pacific Northwest region o ...
where it is on display just outside the main lobby.


Operation

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
prints In molecular biology, the PRINTS database is a collection of so-called "fingerprints": it provides both a detailed annotation resource for protein families, and a diagnostic tool for newly determined sequences. A fingerprint is a group of conserved ...
) 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 In mathematics, the derivative of a function of a real variable measures the sensitivity to change of the function value (output value) with respect to a change in its argument (input value). Derivatives are a fundamental tool of calculus. ...
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 (n-1) first and higher derivatives of the polynomial.


Timing

In the Babbage design, one iteration (i.e., one full set of addition and 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 n is thus: # Count up, receiving the value from column n+1 (Addition step) # Perform carry propagation on the counted up value # Count down to zero, adding to column n-1 # 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: * Step 1. 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 lever. * Step 2. Carry propagation is accomplished by a set of spiral arms in the back that poll the carry levers in a helical manner so that a carry at any level can increment the wheel above by one. That can create a carry, which is why the arms move in a spiral. At the same time, the sector gears are returned to their original position, which causes them to increment the even column wheels back to their original values. The sector gears are double-high on one side so they can be lifted to disengage from the odd column wheels while they still remain in contact with the even column wheels. * Step 3. 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. * Step 4. This is like Step 2, but for doing carries on even columns, and returning odd columns to their original values.


Subtraction

The engine represents negative numbers as 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's method of divided differences. If the initial value of a polynomial (and of its finite differences) 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 In mathematics, a polynomial is an expression consisting of indeterminates (also called variables) and coefficients, that involves only the operations of addition, subtraction, multiplication, and positive-integer powers of variables. An exampl ...
: p(x) = 2x^2 - 3x + 2 \, 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: 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.


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 1_0 gets the value of the function at the start of computation f(0). Col 2_0 is the difference between f(1) and f(0)... If the function to be calculated is a polynomial function, expressed as : f(x) = a_n x^n + a_ x^ + \cdots + a_2 x^2 + a_1 x + a_0 \, the initial values can be calculated directly from the constant coefficients ''a''0, ''a''1,''a''2, ..., ''an'' without calculating any data points. The initial values are thus: * Col 1_0 = ''a''0 * Col 2_0 = ''a''1 + ''a''2 + ''a''3 + ''a''4 + ... + ''an'' * Col 3_0 = 2''a''2 + 6''a''3 + 14''a''4 + 30''a''5 + ... * Col 4_0 = 6''a''3 + 36''a''4 + 150''a''5 + ... * Col 5_0 = 24''a''4 + 240''a''5 + ... * Col 6_0 = 120''a''5 + ... * ...


Use of derivatives

Many commonly used functions are
analytic function In mathematics, an analytic function is a function that is locally given by a convergent power series. There exist both real analytic functions and complex analytic functions. Functions of each type are infinitely differentiable, but complex ...
s, which can be expressed as
power series In mathematics, a power series (in one variable) is an infinite series of the form \sum_^\infty a_n \left(x - c\right)^n = a_0 + a_1 (x - c) + a_2 (x - c)^2 + \dots where ''an'' represents the coefficient of the ''n''th term and ''c'' is a con ...
, 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 In mathematics, the derivative of a function of a real variable measures the sensitivity to change of the function value (output value) with respect to a change in its argument (input value). Derivatives are a fundamental tool of calculus. ...
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 \pm1 for all derivatives. Setting 0 as the start of computation we get the simplified
Maclaurin series Maclaurin or MacLaurin is a surname. Notable people with the surname include: * Colin Maclaurin (1698–1746), Scottish mathematician * Normand MacLaurin (1835–1914), Australian politician and university administrator * Henry Normand MacLaurin ...
: \sum_^ \frac\ x^ 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 : a_n \equiv \frac


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. With the optimized polynomial, the initial values can be calculated as above.


See also

* Ada Lovelace * Allan G. Bromley * Johann Helfrich von Müller * Martin Wiberg * Pinwheel calculator


References


Further reading

* * * * * *


External links


The Computer History Museum exhibition on Babbage and the difference engine''Babbage''
Science Museum, London. Description of Babbage's calculating machine projects and the Science Museum's study of Babbage's works, including modern reconstruction and model-building projects.
Meccano Difference Engine #1Babbage's First Difference Engine – How it was intended to workAnalysis of Expenditure on Babbage's Difference Engine No. 1Difference Engine No1 specimen piece at the Powerhouse Museum, SydneyGigapixel Image of the Difference Engine No2Scheutz 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: {{DEFAULTSORT:Difference Engine 1822 introductions English inventions Mechanical calculators Collections of the Science Museum, London Replicas Charles Babbage Computer-related introductions in the 19th century Articles containing video clips Subtraction Addition