Toepler-Verfahren

Aus Rechnerwiki
Zur Navigation springen Zur Suche springen
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Brunsviga 13 RK
Schubert DRV

Das Toepler-Verfahren erlaubt das Berechnen von Quadratwurzeln mit mechanischen Vierspeziesmaschinen, allerdings nur mit solchen, die entweder eine Volltastatur haben oder eine Einstellung über Schieber. Warum es mit den Maschinen mit Zehnertastatur nicht funktioniert (z.B. den verbreiteten Facit-Modellen C1-13 und CM2-16), wird im Verlauf der Beschreibung deutlich werden.

Der Algorithmus stammt von Prof. August Toepler (1836–1923), ein Jahrgang, den man noch nicht unbedingt mit Rechenmaschinen in Verbindung bringt. Toepler war Physiker, nicht Mathematiker, aber das Verfahren ist trotzdem mathematisch korrekt, es liefert also nicht nur eine „für Physiker ausreichende“ Näherung – natürlich abgesehen davon, dass eine Maschine mit einer endlichen Stellenzahl bei einer Wurzel grundsätzlich nur einen Näherungswert liefern kann.

Mathematische Grundlagen

Grundsätzlich basiert das Toepler-Verfahren auf zwei mathematischen Tatsachen: Erstens ergibt die Addition aufeinanderfolgender ungerader Zahlen immer eine Quadratzahl, z.B. 1+3+5=9=3*3, 1+3+5+7=16=4*4 und 1+3+5+7+9=25=5*5. Das kann man mathematisch sauber beweisen; es wird aber auch anschaulich klar, wenn man die drei Beispiele betrachtet: Im ersten gleichen sich 1 und 5 zum Mitelwert 3 aus, im zweiten 1 und 7 sowie 3 und 5 zum Mittelwert 4 und im dritten 1 und 9 sowie 3 und 7 zum Mittelwert 5. Die Folgen sind also gleichwertig mit 3+3+3, 4+4+4+4 bzw. 5+5+5+5+5, was genau 3*3, 4*4 oder 5*5 ergibt.

Um eine Wurzel zu ziehen, kann man von einer beliebigen Zahl also so lange die Folge 1, 3, 5 etc. abziehen, bis man bei 0 landet. Die Anzahl der Subtraktionen ist dann die gewünschte Wurzel. Beispiel 49: 49-1-3-5-7-9-11-13=0. Wir haben 7 ungerade Zahlen abgezogen, also ist die Wurzel 7. Trickreich wird es erst, wenn die Wurzel nicht aufgeht, aber für diese Fälle haben wir ja unsere Rechenmaschine.

Der zweite mathematische Trick des Toepler-Verfahrens nutzt die Tatsache, dass 100 eine Quadratzahl ist. Daraus ergibt sich, dass sich z.B. die Wurzel aus 200 nur in der Kommastelle von der Wurzel aus 2 unterscheidet (Nach der Produktregel für Wurzeln gilt √(a*b)=√a*√b, also √(100*x) = √100 * √x = 10*√x).

In der Praxis müssen wir von großen Zahlen also keine kilometerlange Folge von ungeraden Zahlen abziehen, sondern es ist ausreichend, den Radikanden (die Zahl, aus der wir die Wurzel ziehen wollen) in Hundertergruppen zu zerlegen. Aus 54321 machen also gedanklich 5 43 21, wobei sich aus der Zahl der Gruppen auch die Stellenzahl der Wurzel ergibt, nämlich 3. Das ist hier sehr wichtig: Während man das Komma bei den Grundrechenarten auch nachträglich im Kopf setzen kann, muss man sich beim Wurzelziehen von Anfang an Gedanken darüber machen. Dies liegt daran, dass z.B. √2 oder √200 eine völlig andere Ziffernfolge ergibt als √20 oder √2000.

Anders als bei den Grundrechenarten ist die mathematische Funktionsweise des im Folgenden beschriebenen Verfahrens nicht offensichtlich. Es ist zwar klar, dass ungerade Zahlen abgezogen werden, aber die Behandlung der niederwertigen Hundertergruppen und die Bedeutung des Zurückstellens des Subtrahenden um 1 nach einem Unterlauf werden nicht sofort deutlich. Ich will hier nicht genauer darauf eingehen, und ich will auch nicht behaupten, dass ich es hundertprozentig verstanden habe. Wer es ganz genau wissen will, sollte sich die unter den externen Links aufgeführte mathematische Analyse des Verfahrens anschauen!

Genauigkeit

Die geringere Zahl der Eingabestellen der Brunsviga M III fällt nicht ins Gewicht, weil zu Beginn ohnehin nur sechs Stellen des Einstellwerks genutzt werden können.

Die meisten „modernen“ Vierspezies-Sprossenradmaschinen wie z.B. die Brunsviga 13 RK, die Schubert DRV oder die Odhner-Modelle der Serie 200 haben eine Kapazität von 10 Stellen im Einstellwerk, 8 im Zählwerk und 13 im Resultatwerk, ein Stellenverhältnis, das sich anscheinend als optimal herausgestellt hat. Wie bei der Division steht die Wurzel am Ende im Zählwerk, und deshalb bestimmt dessen Kapazität die Genauigkeit. Schieben wir den Schlitten zu Beginn ganz nach rechts, um diese acht Stellen auszunutzen, können wir bei diesen „Standardmaschinen“ allerdings nur die unteren sechs Stellen des Einstellwerks nutzen.

Wir können aber trotzdem die Wurzel aus zehnstelligen Zahlen ziehen: Wir schieben erst den Schlitten in die Position 4, in der die 13. Stelle des Resultatwerks unter der 10. des Einstellwerks liegt, und übertragen unseren Radikanden in das Resultatwerk. Erst anschließend schieben wir den Schlitten ganz nach rechts in die Position 8.

Wir sehen, dass die Zahl der Stellen im Resultatwerk bei gegebener Kapazität des Zählwerks für die Genauigkeit keine Rolle spielt. Die folgenden Beispiele lassen sich deshalb auch mit Maschinen wie der Brunsviga M III rechnen, die ein nur neunstelliges Einstellwerk haben. Theoretisch würden sogar sechs Stellen reichen, aber solche Maschinen haben normalerweise auch ein kleineres Zählwerk.

Ausführliches Beispiel

Ein Beispiel sagt mehr als tausend Worte, und deswegen wollen wir zunächst einmal die Wurzel aus 2 berechnen. Die hat jeder, der im Mathematikunterricht mehr als nur körperlich anwesend war, auf mindestes zwei Nachkommastellen im Kopf, nämlich 1,41...

Zu Beginn entspricht der Ablauf beim Wurzelziehen dem bei der Division. Wir müssen unseren Radikanden also linksbündig eingeben, also den Schlitten ganz nach rechts schieben, um die Kapazität der Maschine auszunutzen. Wie bei der Division müssen wir anschließend das Zählwerk auf 0 setzen. Dann stellen wir im Eingabewerk die Zahl 1 ein, und zwar – das ist ganz wichtig – an der unteren Stelle der obersten Hundertergruppe! Bei unserem Beispiel ist das natürlich direkt die 2, bei 27 wäre es die 7, bei 123 die 1, bei 5432 die 4 und bei 76543 die 7.

Unsere Anzeigen sollten jetzt etwa wie folgt aussehen (Führende bzw. anhängende Nullen, die beim Wurzelziehen nicht genutzte Stellen repräsentieren, lasse ich in den weiteren Darstellungen z.T. weg, um Platz zu sparen):

Eingabewerk:  0000100000
Resultatwerk:     2000000000000
              
Zählwerk:     0000000

Jetzt drehen wir einmal rückwärts: 2 minus 1 ist 1, das Zählwerk registriert eine Umdrehung. Wir haben noch keinen Unterlauf, also stellen wir die nächste ungerade Zahl ein, die 3.

Einschub: An genau diesem Punkt versagen die sonst so praktischen Maschinen mit Zehnertastatur: Man kann einen einmal eingetippten Wert nämlich nicht einfach erhöhen oder verringern. Stattdessen müsste man sich den aktuellen Wert merken, das Eingabewerk löschen, den geänderten Wert komplett neu eintippen und schließlich Eingabe- und Resultatwerk wieder korrekt aneinander ausrichten. Dabei würde man aber unweigerlich das Zählwerk verändern, und in diesem wird ja unser Ergebnis zusammengesetzt.

Zurück zum Beispiel: Durch eine weitere Rückwärtsdrehung ziehen wir die 3 von der verbliebenen 1 ab. Dies ergibt natürlich einen Unterlauf; wir machen diese Subtraktion also mit einer Vorwärtsdrehung wieder rückgängig. (Genau wie bei der Division kann man den Unterlauf natürlich auch vorhersehen und nicht auf die Glocke warten. Es ist jedoch weniger fehleranfällig, wenn man immer bis zum Unterlauf dreht, weil dann die folgenden Schritte immer gleich ausfallen.)

Jetzt kommt der entscheidende Schritt des Verfahrens: Nach einem Unterlauf und dem Zurückdrehen desselben wird der Subtrahend im Eingabwerk um 1 verringert, also in unserem Beispiel von 3 auf 2. Anschließend wird der Schlitten eine Stelle rückwärts gefahren, und an der nächstniedrigeren Stelle im Eingabewerk wird eine 1 eingestellt (die höheren Stellen bleiben unverändert).

Die ersten Schritte noch einmal zusammengefasst (UL: Unterlauf, ZD: Zurückdrehen, 3->2: Reduzieren des Subtrahenden um 1, SV: Stellenverschiebung):

   Start   -1      -3 UL   ZD      3->2    SV       neue 1
     
E: 100000  100000  300000  300000  200000  0200000  02100000
R: 200000  100000  800000  100000  100000  1000000  10000000
 
Z: 000000  100000  200000  100000  100000  1000000  10000000

Wir ziehen im nächsten Schritt also 21 ab, dann 23, 25 und 27, und erst bei der 29 gibt es wieder einen Unterlauf, der zurückgedreht werden muss. Danach reduzieren wir die kleinste Eingabestelle wieder um 1. Der Schlitten wird wieder um eine Stelle verschoben, und in die nächstniedrigere Stelle des Eingabewerks wird eine 1 eingegeben.

E: 0210000  0210000  0230000  0250000  0270000  0290000  0280000  00281000
R: 1000000  0790000  0560000  0310000  0040000  9750000  0040000  00400000
     
Z: 1000000  1100000  1200000  1300000  1400000  1500000  1400000  14000000

Wir ziehen jetzt 281 ab und dann 283, dabei gibt es den nächsten Unterlauf, der auf die übliche Methode verarbeitet wird: Zurückdrehen, Eingabewert um 1 verringern, Schlitten verschieben, neue 1 eingeben.

E: 00281000  00281000  00283000  00282000  000282100
R: 00400000  00119000  99836000  00119000  001190000
     
Z: 1400000   14100000  14200000  14100000  14100000

Wir sehen, dass unsere Wurzel im Zählwerk langsam Form annimmt, nämlich 1,41! Weiter geht es mit Abziehen: 2821, 2823, 2825, 2827. Bei 2829 tritt der nächste Unterlauf auf, also das Übliche: Zurückdrehen, Eingabewert um 1 verringern, Schlitten verschieben, neue 1 eingeben.

E: 000282100  000282100  000282300  000282500  000282700  000282900  000282800  0000282810
R: 001190000  000907900  000625600  000343100  000060400  999777500  000060400  0000604000
     
Z: 14100000   14110000   14120000   14130000   14140000   14150000   14140000   14140000 

Minus 28281, minus 28283, minus 28285 – Unterlauf! Zurückdrehen, Eingabewert um 1 verringern, Schlitten verschieben, neue 1 eingeben.

E: 0000282810  0000282810  0000282830  0000282850  00000282840  00000282841
R: 0000604000  0000321190  0000038360  9999755510  00000383600  00000383600
     
Z: 14140000    14141000    14142000    141430000   141420000    141420000

Minus 282841, minus 282843 – Unterlauf, zurückdrehen! Jetzt sind wir fertig (zumindest vorläufig), denn die Maschine ist am Ende ihrer Kapazität angekommen. Genau genommen könnten wir den Schlitten noch um zwei weitere Stellen verschieben, aber das Einstellwerk ist am Ende, denn es fehlen uns weitere Schieber auf der rechten Seite. Obwohl es das Ergebnis nicht mehr verändert, sollten wir die Zahl im Eingabewerk trotzdem noch um 1 verringern; auf den Grund dafür komme ich gleich.

E: 00000282841  00000282841  00000282843  00000282842
R: 00000383600  00000100759  99999817916  00000100759
     
Z: 14142000     14142100     14142200     14142100

Unser Ergebnis ist also zunächst einmal 1,41421, was dem mit einem zehnstelligen Taschenrechner errechneten Wert von 1,414213562 schon recht nahe kommt und in der Praxis in vielen Fällen schon ausreichen wird. Die letzte berechnete Stelle ist in diesem Fall zufälligerweise korrekt, aber da nicht kaufmännisch gerundet wurde, sollte sie in der Praxis mit Vorsicht genossen werden (für die Wurzel aus 5 liefert uns die Maschine z.B. den Wert 2,23606, korrekt wäre aber 2,23607, weil der genauere Wert 2,2360679775... ist).

Der im Resultatwerk stehende Wert (mit gesetztem Komma 0,0000100759) ist sozusagen der Wurzel-Rest, die Differenz zwischen dem Quadrat unseres Ergebnisses (1,41421²=1,9999899241) und dem Ausgangswert 2.

Haben wir, wie oben empfohlen, das Eingabewerk nach dem letzten Unterlauf noch um 1 reduziert, werden wir feststellen, dass dort, wie von Zauberhand, genau das Doppelte der Wurzel steht! Ein Mathematiker wird sicher erklären können, warum das so ist; ich habe jedoch nicht versucht, es nachzuvollziehen. Ich verweise noch einmal auf die unten verlinkte Analyse!

Abziehen von 11, 13, 15 etc.

Ein Sonderfall kommt bei der Wurzel aus 2 nicht vor, zumindest solange man auf ein achtstelliges Zählwerk beschränkt ist: Was passiert, wenn das Abziehen von 9 ohne Unterlauf möglich ist und im nächsten Schritt 11 abgezogen werden müsste? Die Lösung ist zum Glück genau die, die einem intuitiv einfällt: Man reduziert den Wert in der niedrigsten Stelle auf 1 und erhöht den Wert der Stelle links davon um 1 (egal, was dort schon steht). Entsprechend geht es weiter mit -11, -13 etc. Spätestens bei -19 tritt definitiv ein Unterlauf auf; der Grund dafür ist, dass die Folge 1+3+...+17+19 genau 100 ergibt, was größer ist als die größte zweistellige Zahl 99.

Ein schönes Rechenbeispiel für diesen Fall ist tatsächlich die Wurzel aus 99. Viel Spaß beim Kurbeln! Am Ende sollte 9,9498 herauskommen, wobei die 8 eigentlich auf 9 aufgerundet werden müsste.

Es geht noch genauer

Bis jetzt war das Verfahren mathematisch exakt, d.h. auf einer Maschine mit unendlicher Kapazität könnten wir eine Wurzel beliebig genau berechnen. In der Praxis sind wir jedoch auf die (im Beispiel) acht Stellen des Zählwerks begrenzt. Es ist deswegen etwas unbefriedigend, dass unser Ergebnis nur sechs dieser Stellen nutzt. Der Grund dafür ist, dass wir am unteren Ende des Einstellwerks angekommen sind, von dem wir nur sechs Stellen nutzen können, egal wie groß es ist. Man kann die fehlenden zwei Stellen jedoch sehr gut annähern!

Machen wir also weiter: Nach dem Zurückdrehen nach dem letzten Unterlauf verschieben wir den Schlitten ein weiteres Mal. Jetzt müssten wir in der nächstniedrigeren Stelle eine 1 einstellen, aber weil wir dort keinen Schieber mehr haben, bleibt die Stelle technisch gesehen eine 0, im Folgenden dargestellt als o. Aber das ignorieren wir einfach und drehen einmal rückwärts. Jetzt müssten wir in der nächstniedrigeren Stelle eine 3 einstellen, aber das geht natürlich auch nicht. Wir lassen das Einstellwerk also notgedrungen unverändert, drehen so lange rückwärts, bis es wieder einen Unterlauf gibt, und machen den Unterlauf rückgängig. Wir ziehen dabei eigentlich etwas zu wenig ab, aber weil es nur die niedrigste Stelle betrifft, ändert es an der Zahl der Kurbelumdrehungen praktisch nichts. Nur in äußerst ungünstigen Fällen – ich habe noch kein Beispiel gefunden! – könnte es einen Unterschied von 1 machen, aber das wäre dann immer noch genauer, als wenn die Stelle völlig fehlt.

E: 00000282842  00000282842o   00000282842o   00000282842o   00000282842o   00000282842o
R: 00000100759  0000007247480  0000004419060  0000001590640  9999998762220  0000001590640  
     
Z: 14142100     14142110       14142120       14142130       14142140       14142130  

Jetzt hat unser Ergebnis bereits sieben Stellen! Um die achte zu berechnen, wiederholen wir einfach den letzten Schritt: Schlitten verschieben, bis zum Unterlauf rückwärts drehen, und dann noch einmal vorwärts.

E: 00000282842o   00000282842oo  00000282842oo  00000282842oo  00000282842oo  00000282842oo  00000282842oo  00000282842oo
R: 0000001590640  0000001307798  0000001024956  0000000742114  0000000459272  0000000176430  9999999893588  0000000176430  
     
Z: 14142130       14142131       14142132       14142133       14142134       14142135       14142136       14142135

Das Ergebnis ist jetzt 1,4142135, was auch ein Taschenrechner liefert. Die 5 müsste allerdings auf 6 aufgerundet werden.

Die Friden SRW und das modifizierte Toepler-Verfahren

Friden SRW

Das Toepler-Verfahren ist „idiotensicher“, d.h. man muss keine Zwischenrechnungen im Kopf machen oder kompliziertere Entscheidungen treffen – das Verfahren schreibt jeden Handgriff exakt vor. Dies macht es möglich, den Vorgang zu automatisieren, sogar in mechanischer Form.

Tatsächlich gibt es eine elektromechanische Rechenmaschine, die Friden SRW, die vollautomatisch Wurzeln ziehen kann. Dabei kommt eine Variante des Toepler-Verfahrens zum Einsatz, die das im vorangegangenen Abschnitt beschriebene Problem des Umstellens des Subtrahenden von 9 auf 11 umgeht – dieser zwei Stellen betreffende Schritt ist beim klassischen Verfahren derjenige, der Finger und Kopf am meisten herausfordert, und er ist deshalb auch mechanisch besonders schwer realisierbar.

Die Friden SRW arbeitet deshalb mit einem genialen Trick: Der Radikand wird gleich nach der Eingabe mit 5 multipliziert, und statt 1, 3, 5 etc. werden die jeweils 5-fachen Werte 5, 15, 25 etc. abgezogen. Dabei entsteht im Eingabwerk nebenbei das Zehnfache der Wurzel (und nicht wie oben das Doppelte), was einen weiteren Vorteil hat: Weil es technisch gesehen ohnehin kein Komma gibt, kann mit dem Ergebnis ohne eine Rückübertragung sofort weitergerechnet werden!

Die im Jahr 1952 vorgestellte Friden SRW ist neben der eng verwandten Friden SRQ die einzige solche Maschine geblieben; erst mit der 1966 erschienenen elektronischen IME 86 S ist das automatische Wurzelziehen erneut realisiert worden. Ob diese und andere elektronische Maschinen das Toepler-Verfahren nutzen, ist mir nicht bekannt; denkbar wäre es aber. Mit dieser Methode kann man auch übrigens auch auf einem Computer einen Algorithmus programmieren, der Wurzeln beliebig genau ausrechnet, auch über die Genauigkeit der vorgegebenen Fließkomma-Datentypen hinaus!

Das modifizierte Toepler-Verfahren im Handbetrieb

Wer nicht glaubt, dass das modifizierte Toepler-Verfahren wirklich funktioniert, muss sich keine Friden SRW kaufen; man kann es auch mit einer einfachen Vierspeziesmaschine nachvollziehen. Man multipliziert den Radikanden zunächst mit 5 und gibt ihn dann wie üblich linksbündig ein. Natürlich kann man die Multiplikation auch der Maschine überlassen, dann sollte man aber schon vorher eine mögliche zusätzliche Stelle berücksichtigen.

Aus der 2 im obigen Beispiel wird also eine 10, und der zuerst abgezogene Wert ist die 5. Wichtig sind hier wieder die Kommastelle bzw. die Hunderter-Grupen: Die 5 wird von 10 abgezogen und nicht von 1, muss also eine Stelle weiter rechts eingegeben werden.

Eingabewerk:  0000050000
Resultatwerk:     1000000000000
                
Zählwerk:     00000000

5 lassen sich ohne Unterlauf abziehen, also ziehen wir im nächsten Schritt 15 ab. Die Einerstelle des Subtrahenden bleibt dabei unverändert, was sowohl das manuelle Rechnen als auch die mechanische Realisierung erleichtert, und nur die Zehnerstelle wird um 1 erhöht.

Die Subtraktion von 15 erzeugt einen Unterlauf, und auch jetzt gehen wir analog zum klassischen Verfahren vor: Zurückdrehen, Subtrahend reduzieren, allerdings um 5 und nicht um 1. Dann den Schlitten verschieben und eine 5 in die nächstniedrigere Stelle eingeben.

Wir sehen, dass beim Reduzieren des Subtrahenden um 5 nicht nur die höhere Stelle unverändert bleibt, sondern dass die niedrigere Stelle immer auf 0 gesetzt wird: Aus 35 wird 30, aus 15 wird 10. Dies macht die mechanische Realisierung vergleichsweise einfach, stört aber auch nicht beim manuellen Rechnen.

Ich gehe das modifizierte Verfahren hier nicht Schritt für Schritt durch, aber ich bin schon beim ersten Versuch auf das richtige Ergebnis gekommen. Es ist ebenso leicht zu erlernen wie das klassische Verfahren, und man kann dabei eigentlich auch nicht mehr falsch machen. Ich persönlich finde es auch im Handbetrieb eleganter – abgesehen von der notwendigen Multiplikation zu Beginn. Es gibt auch eine kleines Problem, das uns ein wenig mehr Denkarbeit abverlangt – ich gehe weiter unten darauf ein.

Beim modifizierten Toepler-Verfahren müssen wir den Subtrahenden nach dem letzten Überlauf unbedingt um 5 reduzieren, sonst haben wir im Eingabewerk das falsche Ergebnis 1,41425. Nach dem Zurücksetzen haben wir 1,41420, was zwar ebenfalls falsch ist (korrekt wäre 1,41421), aber die 0 sagt uns deutlicher als die 5, dass wir diese letzte Stelle ignorieren müssen. Das zeigt uns auch ein Blick auf das Zählwerk, wo der Pfeil auf die letzte gültige Stelle zeigt. Wie gesagt steht im Eingabewerk das Zehnfache davon und damit logischerweise eine 0 in der Einerstelle.

Damit sind wir bei einem vermeintlichen Nachteil des modifizierten Verfahrens: Wir haben 1,4142 errechnet, was eine Stelle ungenauer ist als der Wert, der sich aus dem klassischen Toepler-Verfahren ergibt. Der Grund dafür ist, dass wir den einstelligen Ausgangswert 2 mit 5 multipliziert haben. Wir haben die Rechnung also mit der zweistelligen 10 begonnen und damit quasi eine Stelle verschwendet.

Doch halt! Können wir das oben beschriebene Näherungsverfahren für die ungenutzten Stellen des Zählwerks – hier sind es sogar drei – nicht auch beim modifizierten Verfahren anwenden?

Probieren wir es einfach: Nach dem Zurückstellen der letzten Eingabestelle auf 0 verschieben wir zunächst einmal den Schlitten. Dann geben wir nur gedanklich eine 5 in der nächstniedrigeren, nicht vorhandenen Eingabestelle ein und drehen einmal rückwärts. Anders als beim klassischen Verfahren dürfen wir jetzt aber nicht einfach bis zum Unterlauf drehen, ohne die Eingabe zu verändern, denn wenn wir im nächsten Schritt gedanklich 15, 25 etc. abziehen, ist die Zehnerstelle ja noch vorhanden! Wie zuvor erhöhen wir diese Stelle also vor jeder Drehung, solange bis der Unterlauf eintritt. Wir ziehen also 0, 10, 20, 30 etc. ab statt 5, 15, 25, 35 etc.

In unserem Beispiel tritt schon bei 20 ein Unterlauf auf, den wir wie gewohnt rückgängig machen. Normalerweise müssten wir jetzt die 5 wieder auf 0 stellen, aber da wir ohnehin mit einer 0 gerechnet haben, müssen wir nichts weiter machen, als den Schlitten zu verschieben. Diesmal ist auch die Zehnerstelle nur noch gedanklich vorhanden, so dass wir jetzt wie im klassischen Verfahren ohne Verändern der Eingabe bis zum Unterlauf drehen können. Wegen der erwähnten „verschwendeten“ Stelle müssen wir diesen Schritt noch einmal durchführen, und am Ende erhalten wir tatsächlich wieder das korrekte Ergebnis 1,4142135.

Doch wenn wir z.B. die Wurzel aus 42 berechnen wollen, fehlt uns gegenüber dem klassischen Verfahren immer noch eine Stelle, weil das Resultat eine führende 0 hat. Dieses Problem tritt immer dann auf, wenn das Fünffache des Radikanden eine ungerade Stellenzahl hat und die höchste Stelle kleiner als 5 ist (also z.B. bei allen Zahlen zwischen 20 und 99, die mit 5 multipliziert zwischen 100 und 495 ergeben). Das erste Abziehen von 5 führt also sofort zu einem Unterlauf, wir müssen den Schlitten schon verschieben, bevor wir richtig angefangen haben, und die erste Stelle im Zählwerk bleibt ungenutzt bzw. 0.

Doch in diesem Fall hilft ein Trick: Wir fangen gleich mit der unteren Hundertergruppe an! 42 mal 5 ist 210; die beiden Hundertergruppen sind also 02 und 10. Wir ziehen jetzt 5, 15, 25 etc. direkt von 210 ab, und damit wird die oberste Stelle des Zählwerks genutzt.

E: 0000005000          0000005000          0000015000          0000025000
R:     2100000000000       2050000000000       1900000000000       1650000000000   etc.
                
Z: 00000000            10000000            20000000            30000000

Weil die oberste Hundertergruppe in diesen Fällen immer kleiner als 5 ist – das war ja das Ausgangsproblem – ist die dreistellige Zahl, von der wir zu Beginn abziehen, immer kleiner als 500. Es kann deshalb nicht passieren, dass wir mehr als neunmal subtrahieren müssen, denn zehn Subtraktionen 5+15+25+35+45+55+65+75+85+95 würden bereits 500 ergeben und damit einen Unterlauf.

Die Wurzel aus 42 ist übrigens ein Beispiel für den Fall, dass das klassische und das modifizierte Verfahren ein in der letzten Stelle abweichendes Resultat liefern, zumindest auf Maschinen mit achtstelligen Zählwerk. Das klassische Verfahren liefert 6,4807406, das modifizierte 6,4807407. Ohne Rundung ist 6 zwar korrekt, aber weil die folgenden Stelle eine 9 ist, die 6 also aufgerundet werden müsste, liefert das modifizierte Verfahren hier sogar das bessere Resultat.

Externe Links