All Topics  
Difference engine

 
Difference Engine

   Email Print
   Bookmark   Link






 

Difference engine



 
 
The Difference Engine was an automatic, mechanical calculator designed to tabulate polynomial functions
Polynomial

In mathematics, a polynomial is an expression constructed from variables and constants, using the operations of addition, subtraction, multiplication, and constant non-negative whole number exponents....
. Both logarithm
Logarithm

In mathematics, the logarithm of a number to a given base is the Power or exponent to which the base must be raised in order to produce the number....
ic and trigonometric function
Trigonometric function

In mathematics, the trigonometric functions are function s of an angle. They are important in the trigonometry of Triangle and modeling Periodic function, among many other applications....
s can be approximated
Taylor series

In mathematics, the Taylor series is a representation of a function as an Series of terms calculated from the values of its derivatives at a single point....
 by polynomials, so a difference engine can compute many useful sets of numbers.








Discussion
Ask a question about 'Difference engine'
Start a new discussion about 'Difference engine'
Answer questions from other users
Full Discussion Forum



Recent Posts









Encyclopedia


The Difference Engine was an automatic, mechanical calculator designed to tabulate polynomial functions
Polynomial

In mathematics, a polynomial is an expression constructed from variables and constants, using the operations of addition, subtraction, multiplication, and constant non-negative whole number exponents....
. Both logarithm
Logarithm

In mathematics, the logarithm of a number to a given base is the Power or exponent to which the base must be raised in order to produce the number....
ic and trigonometric function
Trigonometric function

In mathematics, the trigonometric functions are function s of an angle. They are important in the trigonometry of Triangle and modeling Periodic function, among many other applications....
s can be approximated
Taylor series

In mathematics, the Taylor series is a representation of a function as an Series of terms calculated from the values of its derivatives at a single point....
 by polynomials, so a difference engine can compute many useful sets of numbers.

History

Londonsciencemuseumsreplicadifferenceengine
J. H. Müller, an engineer in the Hessian army conceived the idea in a book published in 1786, but failed to find funding to progress this further.

In 1822, Charles Babbage
Charles Babbage

Charles Babbage, Royal Society was an England mathematician, philosopher, inventor and mechanical engineer who originated the concept of a programmable computer....
 proposed the use of such a machine in a paper to the Royal Astronomical Society
Royal Astronomical Society

The Royal Astronomical Society is a learned society that began as the Astronomical Society of London in 1820 to support astronomy research . It became the Royal Astronomical Society in 1831 on receiving its Royal Charter from William IV of the United Kingdom....
 on 14 June 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 initially financed the project, but withdrew funding when Babbage repeatedly asked for more money whilst making no apparent progress on building the machine. Babbage went on to design his much more general analytical engine
Analytical engine

The analytical engine, an important step in the history of computers, was the design of a mechanical general-purpose computer by the British mathematician Charles Babbage....
 but later produced an improved difference engine design (his "Difference Engine No. 2") between 1847 and 1849. Inspired by Babbage's difference engine plans, Per Georg Scheutz
Per Georg Scheutz

Per Georg Scheutz was a 19th-century Swedish lawyer, translator, and inventor, who is best known for his pioneering work in computer technology....
 built several difference engines from 1855 onwards; one was sold to the British government in 1859. Martin Wiberg
Martin Wiberg

Martin Wiberg was born in Viby, Sk?ne enrolled at Lund University in 1845 and became a Doctor of Philosophy in 1850.He is known as a history of computing hardware for his 1875 invention of a machine the size of a sewing machine that could print logarithmic tables....
 improved Scheutz's construction but used his device only for producing and publishing printed logarithm
Logarithm

In mathematics, the logarithm of a number to a given base is the Power or exponent to which the base must be raised in order to produce the number....
ic tables.

Based on Babbage's original plans, the London Science Museum
Science Museum (London)

The Science Museum on Exhibition Road, South Kensington, London is part of the National Museum of Science and Industry. The museum is a major London tourist attraction....
 constructed a working Difference Engine No. 2 from 1989 to 1991, under Doron Swade, the then Curator of Computing. This was to celebrate the 200th anniversary of Babbage's birth. In 2000, the printer
Computer printer

File:Lexmark X5100 Series.jpgIn computing, a printer is a peripheral which produces a hard copy of documents stored in computer file form, usually on physical print media such as paper or Transparency ....
 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, 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 whether Babbage's design would actually 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 Victorian era.) In addition to funding the construction of the output mechanism for the Science Museum's Difference Engine No. 2, Nathan Myhrvold
Nathan Myhrvold

File:Nathan Myhrvold.jpgNathan Myhrvold , formerly Chief Technology Officer at Microsoft, is co-founder of Intellectual Ventures, which is seeking to build a large invention portfolio....
 commissioned the construction of a second complete Difference Engine No. 2, which will be on exhibit at the Computer History Museum
Computer History Museum

The Computer History Museum is a museum established in 1996 in Mountain View, California, when The Computer Museum, Boston sent the majority of its historical collection to Moffett Federal Airfield, so that TCM could concentrate on computing-related exhibits for children....
 in Mountain View, California
Mountain View, California

Mountain View is a city in Santa Clara County, California, in the U.S. state of California. The city gets its name from the views of the Santa Cruz Mountains....
 from 10 May 2008 through April 2009.

Operation

The difference engine consists of a number of columns, numbered from 1 to N. Each column is able to store one decimal number. The only operation the engine can do is add
Addition

Addition is the mathematics process of putting things together. The plus sign "+" means that numbers are added together. For example, in the picture on the right, there are 3 + 2 apples?meaning three apples and two other apples?which is the same as five apples, since 3 + 2 = 5....
 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
Computer printer

File:Lexmark X5100 Series.jpgIn computing, a printer is a peripheral which produces a hard copy of documents stored in computer file form, usually on physical print media such as paper or Transparency ....
) the value of the calculation on the current iteration
Iteration

Iteration means the act of repeating....
.

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
Derivative

In calculus, a branch of mathematics, the derivative is a measure of how a function changes as its input changes. Loosely speaking, a derivative can be thought of as how much a quantity is changing at a given point....
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 first and higher derivatives of the polynomial.

Timing

In the Babbage design, one iteration i.e. one full set of addition and carry
Carry

In elementary arithmetic a carry is a digit that is transferred from one column of digits to another column of more significant digits during a calculation algorithm....
 operations happens once for four rotations of the columns axes. Odd and even columns alternatively perform the addition every two rotations. The sequence of operations for column is thus:
  1. Addition from column
  2. Carry propagation
  3. Addition to column
  4. Rest


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.
  • 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
Method of complements

In mathematics and computing, the method of complements is a technique used to subtract one number from another using only addition of positive numbers....
. Subtraction amounts to addition of a negative number. This works in exactly the same manner that modern computers perform subtraction, known as two's complement
Two's complement

The two's complement of a binary number is defined as the value obtained by subtracting the number from a large power of two .A two's-complement system or two's-complement arithmetic is a system in which negative numbers are represented by the two's complement of the absolute value; this system is the most common Signed number r...
.

Method of differences


As the differential engine cannot do multiplication
Multiplication

Multiplication is the Operation of scaling one number by another. It is one of the four basic operations in elementary arithmetic .Multiplication is defined for Natural number in terms of repeated addition; for example, 4 multiplied by 3 can be calculated by adding 3 copies of 4 together:...
, it is unable to calculate the value of a polynomial. However, if the initial value of the 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.

The principle of a difference engine is Newton's method
Newton polynomial

In the mathematical field of numerical analysis, a Newton polynomial, named after its inventor Isaac Newton, is the polynomial interpolation polynomial for a given set of data points in the Newton form....
 of divided differences
Divided differences

In mathematics divided differences is a recursion division process.The method can be used to calculate the coefficients in the polynomial interpolation in the Newton form....
. It may be illustrated with a small example. Consider the quadratic polynomial
Polynomial

In mathematics, a polynomial is an expression constructed from variables and constants, using the operations of addition, subtraction, multiplication, and constant non-negative whole number exponents....
p(x) = 2x2 − 3x + 2
and suppose we want to tabulate the values p(0), p(0.1), p(0.2), p(0.3), p(0.4) etc. 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:

xp(x) = 2x2 − 3x + 2diff1(x) = ( p(x+1) - p(x) )diff2(x) = ( diff1(x+1) - diff1(x) )
0.002.00
0.04
0.101.72
0.04
0.201.48
0.04
0.301.28
 
0.401.12  


Notice how the values in the fourth column are constant. This is no mere coincidence. In fact, if you start with any polynomial of degree n, the column number n + 1 will always be constant. This crucial fact makes the method work, as we will see next.

We constructed this table from the left to the right, but now we can continue it from the right to the left down a diagonal in order to compute more values of our polynomial.

To calculate p(0.5) we use the values from the lowest diagonal. We start with the third column constant value of 0.04 and copy it down the column. Then we continue the second column by adding 0.04 to -0.16 to get -0.12. Next we continue the first column by taking its previous value, 1.12 and adding the -0.12 from the second column. Thus p(0.5) is 1.12-0.12 = 1.0. In order to compute p(0.6), we iterate the same algorithm on the p(0.5) values: take 0.04 from the third column, add that from the second column's value -0.12 to get -0.08, then add that from the first column's value 1.0 to get 0.92, which is p(0.6).

This process may be continued ad infinitum
Ad infinitum

Ad infinitum is a Latin List of Latin phrases meaning "to infinity."In context, it usually means "continue forever, without limit" and thus can be used to describe a non-terminating process, a non-terminating repeating process, or a set of instructions to be repeated "forever", among other uses....
. 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 our case (the last elements in the first and second columns); if we wanted to tabulate polynomials of degree n, we'd need enough storage to hold n numbers.

Babbage's difference engine No. 2, finally built in 1991, could hold 8 numbers of 31 decimal digits each and could thus tabulate 7th degree polynomials to that precision. The best machines from Scheutz were able to 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
Backtracking

Backtracking is a general algorithm for finding all solutions to some computational problem, that incrementally builds candidates to the solutions, and abandons each partial candidate c as soon as it determines that c cannot possibly be completed to a valid solution ....
, i.e. calculating the required differences.

Col gets the value of the function at the start of computation . Col is the difference between and ...

If the function to be calculated is a polynomial function, expressed as
the initial values can be calculated directly from the constant coefficients a0, a1,a2, ..., an without calculating any data points. The initial values are thus:

  • Col = a0
  • Col = a1 + a2 + a3 + a4 + ... + an
  • Col = 2a2 + 6a3 + 14a4 + 30a5 + ...
  • Col = 6a3 + 36a4 + 150a5 + ...
  • Col = 24a4 + 240a5 + ...
  • Col = 120a5 + ...


Use of derivatives

Functions that are not polynomial functions but are infinitely differentiable can be expressed as power series
Power series

In mathematics, a power series is an infinite series of the formwhere an represents the coefficient of the nth term, c is a constant, and x varies around c ....
, for example as a Taylor series
Taylor series

In mathematics, the Taylor series is a representation of a function as an Series of terms calculated from the values of its derivatives at a single point....
. 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
Approximation

An approximation is an Accuracy and precision representation of something that is still close enough to be useful. Although approximation is most often applied to numbers, it is also frequently applied to such things as Function , shapes, and physical laws....
 of the function.

The Taylor series expresses the function as a sum of its derivative
Derivative

In calculus, a branch of mathematics, the derivative is a measure of how a function changes as its input changes. Loosely speaking, a derivative can be thought of as how much a quantity is changing at a given point....
s. For many functions the higher derivatives are trivial to obtain; the sine
Siné

Maurice Sinet, known as Sin? is a France cartoonist.As a young man he studied drawing and graphic arts, earning his life as a cabaret singer....
 function at 0 has derivates of 0 or for all derivates. Setting 0 as the start of computation we get the simplifyed Maclaurin series

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

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 an constant maximum error is to use curve fitting
Curve fitting

Curve fitting is finding a curve which has the best fit to a series of data points and possibly other constraints. This section is an introduction to both interpolation and regression analysis....
. A minimum of N values are calculated evenly spaced along the range of the desired calculations. Using a curve fitting technique like Gaussian reduction a N-1th degree polynomial interpolation
Polynomial interpolation

In the mathematics subfield of numerical analysis, polynomial interpolation is the interpolation of a given data set by a polynomial. In other words, given some data points , the aim is to find a polynomial which goes exactly through these points....
 of the function is found. (A solution that was not available at Babbage's time is using a curve fitting program like Mathematica
Mathematica

Mathematica is a computational software program used widely in scientific, engineering, and mathematical fields and other areas of technical computing....
.) With the optimized polynomial, the initial values can be calculated as above.

Further reading


See also

  • Per Georg Scheutz
    Per Georg Scheutz

    Per Georg Scheutz was a 19th-century Swedish lawyer, translator, and inventor, who is best known for his pioneering work in computer technology....
  • Martin Wiberg
    Martin Wiberg

    Martin Wiberg was born in Viby, Sk?ne enrolled at Lund University in 1845 and became a Doctor of Philosophy in 1850.He is known as a history of computing hardware for his 1875 invention of a machine the size of a sewing machine that could print logarithmic tables....
  • Charles Babbage
    Charles Babbage

    Charles Babbage, Royal Society was an England mathematician, philosopher, inventor and mechanical engineer who originated the concept of a programmable computer....
  • Ada Lovelace
    Ada Lovelace

    Augusta Ada King, Countess of Lovelace , born Augusta Ada Byron, was the only legitimate child of George Gordon Byron, 6th Baron Byron. She is widely known in modern times simply as Ada Lovelace....
  • Pinwheel calculator
    Pinwheel calculator

    Pinwheel calculators were invented independently by Frank S. Baldwin in the USA and Wilgott Theophil Odhner in Russia . They reduced both the cost and the size of a mechanical calculator on which one could easily do the four basic operations by an order of magnitude....
  • Allan Bromley
    Allan Bromley (historian)

    Allan George Bromley was an Australian historian of computing....
  • Analytical engine
    Analytical engine

    The analytical engine, an important step in the history of computers, was the design of a mechanical general-purpose computer by the British mathematician Charles Babbage....
  • J. H. Müller
  • Antikythera mechanism
    Antikythera mechanism

    The Antikythera mechanism , is an ancient mechanical calculator designed to calculate astronomy positions. It was discovered in the Antikythera wreck off the Greece island of Antikythera, between Kythera and Crete, in 1901....


External links