Information about Difference Engine

Enlarge picture
Part of Babbage's Difference Engine, assembled after his death by Babbage's son, using parts found in his laboratory.
A difference engine is a special-purpose mechanical digital calculator, designed to tabulate polynomial functions. Since logarithmic and trigonometric functions can be approximated by polynomials, such a machine is more general than it appears at first.

History

The first of these devices was conceived in 1786 by J.H. Müller but it was never built.

Enlarge picture
Closeup of the London Science Museum's replica difference engine.
Difference engines were forgotten and then rediscovered in 1822 by Charles Babbage, who proposed it in a paper to the Royal Astronomical Society on 14 June entitled "Note on the application of machinery to the computation of very big mathematical tables." [1] 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 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 built several difference engines from 1855 onwards; one was sold to the British government in 1859. Martin Wiberg improved Scheutz's construction but used his device only for producing and publishing printed logarithmic tables.

Based on Babbage's original plans, the London Science Museum 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 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.)

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 the value of 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) 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 derivatives 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)th and higher derivatives of the polynomial.

Timing

In the Babbage design, one iteration i.e. one full set of addition and carry operations happens once for four rotations of the column axes. Odd and even columns alternatively perform the addition every two rotations. The sequence of operations for column n is thus:
  1. Addition from column n + 1
  2. Carry propagation
  3. Addition to column n - 1
  4. Rest

Method of differences

Enlarge picture
The London Science Museum's replica difference engine, built from Babbage's design. The design has the same precision on all columns, but when calculating converging polynomials, the precision on the higher-order columns could be lower.


As the differential engine cannot do multiplication, it is unable to calculate the value of a polynomial. However, if the initial value of the polynomial (and of its derivatives) 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 of divided differences. It may be illustrated with a small example. Consider the quadratic polynomial
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 first column contains the values of the polynomial, the second column contains the differences of the two left neighbors in the first column, and the third column contains the differences of the two neighbors in the second column:

polynomial differences differences
p(0)=2.0
2.0−1.72=0.28
p(0.1)=1.720.28−0.24=0.04
1.72−1.48=0.24
p(0.2)=1.480.24−0.20=0.04
1.48−1.28=0.20
p(0.3)=1.280.20−0.16=0.04
1.28−1.12=0.16
p(0.4)=1.12


Notice how the values in the third 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 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 rightmost column value of 0.04. Then we continue the second column by subtracting 0.04 from 0.16 to get 0.12. Next we continue the first column by taking its previous value, 1.12 and subtracting 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, subtract that from the second column's value 0.12 to get 0.08, then subtract 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. The values of the polynomial are produced without ever having to multiply. A difference engine only needs to be able to subtract. 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 7 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, i.e. calculating the required differences.

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

Use of derivatives

A more general and in many cases more useful method is to calculate the initial values from the values of the derivatives of the function at the start of computation. Each value is thus represented as power series of the different derivates. The constants of the series can be calculated by first expressing a function as a Taylor series i.e. a sum of its derivatives. Setting 0 as the start of computation we get the Maclaurin series


Calculating the values numerically, we get the following serial representations for the initial values of the columns:

Let be the values of the function and its derivatives at the start of computation
  • Col =
  • Col =
  • Col =
  • Col =
  • Col =

References

1. ^ Charles Babbage. The MacTutor History of Mathematics archive. School of Mathematics and Statistics, University of St Andrews, Scotland (1998). Retrieved on 2006-06-14.

Further reading

  • Swade, Doron (2002). The Difference Engine: Charles Babbage and the Quest to Build the First Computer. Penguin (reprint). ISBN 0-14-200144-9. 

See also

External links

A calculator is a hand-held device for performing calculations. Although modern calculators often incorporate a general purpose computer, the device is designed for performing specific operations, rather than for flexibility.
..... Click the link for more information.
In mathematics, a polynomial is an expression that is constructed from one or more variables and constants, using only the operations of addition, subtraction, multiplication, and constant positive whole number exponents. is a polynomial.
..... Click the link for more information.
logarithm (to base b) of a number x is the exponent y that satisfies x = by. It is written logb(x) or, if the base is implicit, as log(x).
..... Click the link for more information.
trigonometric functions (also called circular functions) are functions of an angle. They are important in the study of triangles and modeling periodic phenomena, among many other applications.
..... Click the link for more information.
J.H. Müller was an engineer in the Hessian army who in 1786 conceived the idea that would later evolve into modern computers, the Difference Engine.
..... Click the link for more information.
Charles Babbage FRS (26 December 1791 – 18 October 1871) was an English mathematician, philosopher, and mechanical engineer who originated the idea of a programmable computer. Parts of his uncompleted mechanisms are on display in the London Science Museum.
..... Click the link for more information.
Royal Astronomical Society (RAS) is a learned society that began as the Astronomical Society of London in 1820 to support astronomical research (mainly carried on at the time by 'gentleman astronomers' rather than professionals).
..... Click the link for more information.
June 14 is the 1st day of the year (2nd in leap years) in the Gregorian calendar. There are 0 days remaining.

In common years it is always in ISO week 24.
..... Click the link for more information.
Her Majesty's Government (HMG or HM Government), or when the monarch is male, His Majesty's Government, is the formal title used by the United Kingdom government, based at 10 Downing Street in London.
..... Click the link for more information.
The analytical engine, an important step in the history of computers, was the design of a mechanical general-purpose computer by the British professor of mathematics Charles Babbage. It was first described in 1837, but Babbage continued to work on the design until his death in 1871.
..... Click the link for more information.
Pehr Georg Scheutz (September 23 1785 – May 22 1873) was a 19th-century Swedish lawyer, translator, and inventor, who is best known for his pioneering work in computer technology.

Scheutz studied law at Lund University, graduating in 1805.
..... Click the link for more information.
Martin Wiberg (September 4, 1826 - December 29 1905) was born in Viby, Scania enrolled at Lund University in 1845 and became a Doctor of Philosophy in 1850.

He is known as a computer pioneer for his 1875 invention of a machine the size of a sewing machine that could print
..... Click the link for more information.
logarithm (to base b) of a number x is the exponent y that satisfies x = by. It is written logb(x) or, if the base is implicit, as log(x).
..... Click the link for more information.
Science Museum

Established 1857
Location Exhibition Road, London SW7
Visitor figures 2,400,000 (2006) [1]
Director Professor Martin Earwicker
Nearest tube station(s) South Kensington
Website www.sciencemuseum.org.
..... Click the link for more information.
A computer printer, or more commonly a printer, produces a hard copy (permanent human-readable text and/or graphics) of documents stored in electronic form, usually on physical print media such as paper transparencies.
..... Click the link for more information.
The 19th Century (also written XIX century) lasted from 1801 through 1900 in the Gregorian calendar. It is often referred to as the "1800s.
..... Click the link for more information.
Addition is the mathematical operation of combining or adding two numbers to obtain an equal simple amount or total. Addition also provides a model for related processes such as joining two collections of objects into one collection.
..... Click the link for more information.
In mathematics and the mathematical sciences, a constant is a fixed, but possibly unspecified, value. This is in contrast to a variable, which is not fixed.

Unspecified constants

The most widely mentioned sort of constant
..... Click the link for more information.
A computer printer, or more commonly a printer, produces a hard copy (permanent human-readable text and/or graphics) of documents stored in electronic form, usually on physical print media such as paper transparencies.
..... Click the link for more information.
Iteration means the act of repeating.

Mathematics

Iteration in mathematics may refer to the process of iterating a function, or to the techniques used in iterative methods for solving numerical problems.
..... Click the link for more information.
derivative is a measurement of how a function changes when the values of its inputs change. Loosely speaking, a derivative can be thought of as how much a quantity is changing at some given point.
..... Click the link for more information.
Carry or carrying can mean:
  • Carry (arithmetic), when a digit become bigger than limit and the extra is moved to the left
  • Carry flag, the equivalent in calculation in a computer

..... Click the link for more information.
In electronics, an adder or summer is a digital circuit that performs addition of numbers. In modern computers adders reside in the arithmetic logic unit (ALU) where other operations are performed.
..... Click the link for more information.
Multiplication is the mathematical operation of adding together multiple copies of the same number. For example, four multiplied by three is twelve, since three sets of four make twelve:


..... Click the link for more information.
derivative is a measurement of how a function changes when the values of its inputs change. Loosely speaking, a derivative can be thought of as how much a quantity is changing at some given point.
..... Click the link for more information.
In the mathematical field of numerical analysis, a Newton polynomial, named after its inventor Isaac Newton, is the interpolation polynomial for a given set of data points in the Newton form.
..... Click the link for more information.
In mathematics divided differences is a recursive division process.

The method can be used to calculate the coefficients in the interpolation polynomial in the Newton form.
..... Click the link for more information.
In mathematics, a polynomial is an expression that is constructed from one or more variables and constants, using only the operations of addition, subtraction, multiplication, and constant positive whole number exponents. is a polynomial.
..... Click the link for more information.
Ad infinitum is a Latin phrase meaning "to infinity."

In context, it usually means "continue forever," and thus can be used to describe a non-terminating process, a non-terminating repeating
..... Click the link for more information.
Backtracking is a type of algorithm that is a refinement of brute force search.[1] In backtracking, multiple solutions can be eliminated without being explicitly examined, by using specific properties of the problem.
..... Click the link for more information.


This article is copied from an article on Wikipedia.org - the free encyclopedia created and edited by online user community. The text was not checked or edited by anyone on our staff. Although the vast majority of the wikipedia encyclopedia articles provide accurate and timely information please do not assume the accuracy of any particular article. This article is distributed under the terms of GNU Free Documentation License.
Herod_Archelaus


page counter