Principe van de Verschilmotoren
Verschilmotoren worden zo genoemd vanwege het wiskundige principe waarop zij zijn gebaseerd, namelijk de methode van eindige verschillen. In het algemeen kan voor de berekening van de waarde van een polynoom een optelling, een aftrekking, een vermenigvuldiging of een deling nodig zijn.
Een voordeel van de methode van eindige verschillen is dat vermenigvuldigen en delen niet meer nodig zijn, en dat de waarden van een veelterm kunnen worden berekend met eenvoudig optellen. Het optellen van twee getallen met behulp van tandwielen is gemakkelijker uit te voeren dan vermenigvuldigen of delen en dus vereenvoudigt de methode een anders ingewikkeld mechanisme.
Als de eerste paar waarden van een polynoom bekend zijn, kan de rest worden berekend met behulp van eenvoudige herhaalde optelling. De methode wordt geïllustreerd in het diagram hierboven voor de functie F(x) = x2 + 4. De waarden van x staan in de eerste kolom, telkens met 1 vermeerderd (x = 1, 2, 3, 4 . . .). De waarden van de functie x2 + 4 staan in de tweede kolom met de eerste vier waarden berekend met hoofdrekenen of met de hand (5, 8, 13, 20).
De volgende stap is het berekenen van het eerste en tweede verschil. De eerste verschillen staan in de derde kolom en worden berekend door de opeenvolgende waarden van de vorige kolom af te trekken, zoals aangegeven door de vaste pijlen die van links naar rechts lopen (8-5=3, 13-8=5 enz.). De tweede verschillen worden berekend door de eerste verschilparen van elkaar af te trekken en deze staan in de laatste kolom.
Met deze beginwaarden berekend kan de rest van de waarden van de functie worden berekend door het proces om te keren. De waarden die we willen berekenen staan onder de bovenste stippellijn. Voor deze polynoom is het tweede verschil een constante (2). Om de waarde van de functie voor x=5 te berekenen wordt het constante verschil (2) bij het eerste verschil (7) opgeteld om het volgende eerste verschil (9) te verkrijgen (rode pijl), dat dan bij de laatste functiewaarde (blauwe pijl) kan worden opgeteld om F(5) = 29 te verkrijgen. Dit is het gewenste resultaat, bereikt zonder te vermenigvuldigen.
Het proces kan dan worden herhaald om het volgende eerste verschil (11) te verkrijgen, dat bij de laatste functiewaarde kan worden opgeteld om F(6) = 40 te verkrijgen, enzovoort. Met deze methode kan elke tweedegraads polynoom worden berekend en, meer in het algemeen, kan elke n-de graad polynoom worden berekend, met alleen optellen, te beginnen met het n-de verschil.
Babbage’s Difference Engine No. 2 heeft ‘registers’ voor een getal uit elk van de kolommen in de tabel (bijvoorbeeld 20, 7, 2). Het zou het tweede verschil bij het eerste optellen, en dan het resultaat bij de functiewaarde optellen om het volgende item in de tabel te berekenen. Er waren genoeg “registers” voor zeven verschillen, zodat het 31-cijferige waarden kon berekenen voor veeltermen met termen tot x7.