Difference machine

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Part of the differential machine, assembled by Babbage's son with pieces found in his father's lab after his death.

A difference engine is a special-purpose mechanical calculator designed to compute polynomial functions. Since logarithmic and trigonometric functions can be approximated by polynomials, this machine is more general than it first appears.

It is a device of a mechanical nature to calculate and print tables of functions. More specifically, it calculates the numerical value of a polynomial function over an arithmetic progression obtaining a table of values that approximates the real function (based on the fact that any function can be approximated by polynomials).

This machine was devised by the German soldier, architect and inventor Johann Helfrich von Müller and rediscovered by the British mathematician Charles Babbage, neither of whom built it.

A reconstruction of the "Difference Engine No.2" de Babbage has been in operation since 1991 at the Science Museum in London. He works as he designed it and proves that he was correct in his theory, as well as that he was capable of manufacturing the parts of it with the required precision. Babbage may have failed because his designs were too ambitious.

History

Details of the replica of the differential machine displayed at the London Science Museum.

The first of these devices was conceived in 1786 by Johann Helfrich von Müller but was never built.

The difference engine was forgotten and rediscovered years later, in 1822, by Charles Babbage, who proposed it in a communication to the Royal Astronomical Society on June 14, titled "Note on the use of machinery for the computation of very large mathematical tables". This machine used the decimal number system and was powered by a crank. The British government initially funded the project, but withdrew the grant when Babbage repeatedly asked for more money but made no visible progress in building the machine. Between 1847 and 1849 Babbage set about designing the much more general Analytical Engine but subsequently produced an improved design of the Difference Engine (his his & # 34; Difference Engine No. 2 & # 34;). Inspired by Babbage's difference engine plans, from 1855 onwards Per Georg Scheutz built several difference engines; one was sold to the British government in 1859. Martin Wiberg improved on Scheutz's construction but used his device only to produce and publish and print logarithmic tables.

Based on Babbage's original plans, and to commemorate the 200th anniversary of his birth, a working Difference Engine No. 2 was built between 1989 and 1991 by the Science Museum, London, under the direction of Doron Swade, the then Computer Curator. In 2000 the printer that Babbage originally designed for the Difference Engine was also completed. The conversion of the original design drawings into drawings suitable for the use of engineering manufacturers revealed some minor errors in Babbage's design, which had to be corrected. Once they were finished, both the machine and its printer worked without errors, and still do. The difference engine and printer were built to the tolerances achievable with the technology of the 19th century, resolving a longstanding debate about if Babbage's design had really worked. (One of the reasons earlier mentioned for the non-completion of Babbage's machines had been that engineering methods were not sufficiently developed in the Victorian era.)

Operation

The difference engine consists of a number of columns, numbered from 1 to N. Each column can store a decimal number. The only operation the machine 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 in the current iteration.

The machine is programmed by setting the initial values of the columns. Column 1 is set to the value of the polynomial at the start of the computation. Column 2 is set to a derivative value of the first and highest derivatives of the polynomial at the same value of X. Each of the columns between 3 and N is set to a derivative value of (n- 1) and the higher derivatives of the polynomial.

Runtimes

In Babbage's design, one iteration, ie a complete set of add and carry operations, occurs once for every four rotations of the column axes. The odd and even columns alternately perform addition every other rotation. The sequence of operations for column n is as follows:

  1. Addendum from column n + 1
  2. Propagation of the transport
  3. Addendum to column n - 1
  4. Resto

Method of differences

The replica of the differential machine of the London Science Museum, designed by Babbage. The design has the same accuracy in all columns, but when calculating convergent polynomials, the accuracy in the columns of the highest order could be lower.

Because the difference engine cannot do multiplication, it cannot calculate the value of a polynomial. However, if the initial value of the polynomial (and its derivatives) is computed by some means for a certain value of X, the difference engine can compute 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. Which can be illustrated with a small example. Consider the quadratic polynomial:

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 built as follows:

  • the first column contains the values of 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:
PolynomialVariancesVariances
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 constants. This is not a 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 below.

We built this table from left to right, but now we can continue it from right to left so we can compute more values of our polynomial.

To calculate p(0,5) we use the values of the lower diagonal. We start with the value 0.04 in the right column. So we continue to the second column, subtracting 0.04 from 0.16 to get 0.12. Then we continue with the first column by taking its previous value, 1.12, and subtracting the 0.12 from the second column. So p(0.5) is 1.12-0.12 = 1.0. To compute p(0,6), we iterate the same algorithm over the values of p(0,5): take 0.04 from the third column, subtract that value 0.12 from the second column to get 0.08, then subtract that from the value 1.0 from the first column to get 0.92, which is the result of p(0,6).

This process can be continued ad infinitum. The polynomial values are produced without even having to multiply. a difference engine only needs to be able to subtract. From one loop to the next, in our case, you need to store 2 numbers (the last elements in the first and second columns); if we wanted to tabulate polynomials of degree n, we would need enough storage to hold n numbers.

Babbage's Difference Engine #2, finally built in 1991, could have 7 numbers of 31 decimal digits each and therefore could tabulate 7th degree polynomials with that precision. Scheutz's best machines could store 4 numbers with 15 digits each.

Initial values

The initial values of the columns can be calculated in the following way: First by manually calculating N consecutive values of the function, and by going back (backtracking), that is, calculating the required differences.

The column gets the function value at the beginning of the computing . The column is the difference between and ...

Using derivatives

A more general method, and in many cases more useful, is to calculate the initial values of the values of the derivatives of the function at the beginning of the computation. Thus, each value is represented as a series of powers of different derivatives. Series constants can be computed by first expressing a function as a Taylor series, that is, a sum of its derivatives. Setting 0 as the start of the computation we obtain the Maclaurin series

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

Sean. the values of the function and its derivatives at the beginning of the computation

  • Col =
  • Col =
  • Col =
  • Col =
  • Col =

Cultural Effects

This machine inspired the writers William Gibson and Bruce Sterling to write the novel The Difference Engine. It is a work of steampunk (vaporpunk), a genre that had never existed before this book. William Gibson is known for his cyberpunk books, which explore fictional stories or speculative futures that involve themselves in the possibilities of computers, the network, etc. The premise of “The Difference Engine” is "what would have happened if the United Kingdom had developed Charles Babbage's machines to sell on the free market in the mid-19th century?". Therefore, he chose the name steampunk (differential engine power was obtained from a steam engine) for a new genre.

Although difference engine is the name that goes in the book, the hypothetical machines it describes are more similar to Babbage's later Analytical Engine, and less constrained than its predecessor difference engine.

Further reading

  • M. Lingren, Glory and Failure: The Difference Engines of Johann Müller, Charles Babbage and Georg and Edvard Scheutz, MIT Press, 1990 (preview on Google Books).
  • Guijarro Mora, V. and González de la Lastra, L. (2010). The mathematician automaton chimera. Madrid, Chair. ISBN 978-84-376-2653-10.

Contenido relacionado

Convent of San Marcos (León)

The Convent of San Marcos is one of the great architectural jewels of the Spanish city of León along with the cathedral, the Basilica of San Isidoro and Casa...

Frederick William IV of Prussia

Frederick William IV of Prussia was the eldest son and successor of Frederick William III, King of Prussia from 1840 to...

27th century BC c.

The 27th century BC covers the period between 2700 B.C. C. until 2601 a. C., both...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save