What is the difference between Babbage's analytical and difference engine?

What is the difference between Babbage's analytical and difference engine? Can they even be compared?

migrated from cstheory.stackexchange.comJun 9 '13 at 1:17

This question came from our site for theoretical computer scientists and researchers in related fields.

• This is a history question, not a question about theoretical computer science. And the Wikipedia articles are pretty clear about the differences. – JeffE May 27 '13 at 5:56
• history is on topic here & maybe there is some scientific analysis of the two that would fit here. or maybe migrate to cs.se? however in short, the analytical engine is Turing complete whereas the difference engine is not and has a more limited set of mathematical functions it can compute (question...precisely which set?). my understanding, something close to limited degree integer polynomials... – vzn May 27 '13 at 14:16

They would be different from each other in a very significant way. In the comments there is a link to the Wikipedia articles on both machines - which are quite informative - but I'll assume they weren't useful to you.

You can think of the Analytical Engine basically as a regular computer, which would have a program coded in punched cards, that were attached to each other forming a chain (there would actually be three kinds of cards, each with its own reader, check this out). The machine also had a control unit whose job was to decode the instructions of this program and perform them on the data that was stored in a memory capable of holding a thousand numbers.

The Difference Engine, on the other hand, would have been exactly a calculator, and one that could perform just one kind of operation, repeatedly, on a sequence of numbers. In the "Sketch of the Analytical Engine", authored by Luigi Menabrea, and famously translated by Ada Lovelace, the nature and general applicability of this operation is detailed:

The theorem on which is based the construction of the machine we have just been describing, is a particular case of the following more general theorem: that if in any polynomial whatever, the highest power of whose variable is m, this same variable be increased by equal degrees; the corresponding values of the polynomial then calculated, and the first, second, third, &c. differences of these be taken (as for the preceding series of squares); the mth differences will all be equal to each other. So that, in order to reproduce the series of values of the polynomial by means of a machine analogous to the one above described, it is sufficient that there be (m+1) dials, having the mutual relations we have indicated. As the differences may be either positive or negative, the machine will have a contrivance for either advancing or retrograding each needle, according as the number to be algebraically added may have the sign plus or minus. (emphasis added)

By calculating series of values of polynomial functions many useful calculations can be approximated, including those of trigonometric and logarithmic functions. This method has its limits, though, which are explained a bit further in the document. In doing that, the justification for the construction of the new machine is given:

We see that its use is confined to cases where the numbers required are such as can be obtained by means of simple additions or subtractions; that the machine is, so to speak, merely the expression of one particular theorem of analysis; and that, in short, its operations cannot be extended so as to embrace the solution of an infinity of other questions included within the domain of mathematical analysis. It was while contemplating the vast field which yet remained to be traversed, that Mr. Babbage, renouncing his original essays, conceived the plan of another system of mechanism whose operations should themselves possess all the generality of algebraical notation, and which, on this account, he denominates the Analytical Engine. (emphasis added)

the main difference between those two engine is difference engine can only do one mathematical operation that is addition on the other hand analytical engine can do the four basic mathematical operation (addition,division,multiplication ... )...

• This is unsourced and directly contradicts the other answer. (And wouldn't it be weird to call something a difference engine if it could only do addition?) – David Richerby Nov 10 '16 at 21:05
• I encourage you to elaborate the answer and give some sources. The difference engine indeed performs only additions (and subtractions are via complement). – Evil Nov 10 '16 at 21:35