Heron-Verfahren

Näherung zum Berechnen der Quadratwurzel

Das Heron-Verfahren, Heronsche Näherungsverfahren oder babylonische Wurzelziehen ist ein Rechenverfahren zur Berechnung einer Näherung der Quadratwurzel einer reellen Zahl . Hierbei wird die Zahl als Flächeninhalt eines Rechtecks aufgefasst (z. B. mit Seitenlängen und ). Dieses Rechteck wird dann schrittweise in ein flächengleiches Quadrat transformiert, indem man in jedem Rechenschritt die längere Seite des vorherigen Rechtecks verkürzt und seine kürzere Seite so verlängert, so dass der Flächeninhalt erhalten bleibt. Die verkürzte neue längere Seite berechnet sich dabei als Mittelwert der beiden Seiten des vorherigen Rechtecks (siehe Grafik rechts). Das Verfahren ist nach dem griechischen Mathematiker Heron von Alexandria benannt, der es in seinem Werk Metrica beschrieb. Allerdings wurde es schon über 1000 Jahre früher von den Babyloniern benutzt.

Berechnung von mit dem Heronverfahren

Geometrische Veranschaulichung des Heron-Verfahrens Bearbeiten

 
Die ersten 4 Schritte zur Berechnung der Wurzel aus 9 mit dem Heron-Verfahren

Dem Heron-Verfahren liegt die Idee zu Grunde, dass ein Quadrat mit Flächeninhalt   eine Seitenlänge von   hat. Ausgangspunkt des Verfahrens ist ein beliebiges Rechteck mit Flächeninhalt  . Schritt für Schritt wird das Seitenverhältnis des Rechtecks so geändert, dass sich seine Form immer mehr der eines Quadrats annähert, während der Flächeninhalt gleich bleibt. Die Seitenlängen des Rechtecks sind die Näherungswerte für  .

Im ersten Schritt wird eine beliebige Seitenlänge   für das Rechteck gewählt. Damit dieses den gewünschten Flächeninhalt hat, wird die zweite Seitenlänge mit der Formel

 

berechnet. Als Beispiel soll die Wurzel aus 9 berechnet werden. Für die eine Seitenlänge wird der Wert 9 gewählt, sodass sich die andere Seitenlänge zu 1 berechnet. Das erste Rechteck hat deshalb die folgende Form.

 

Die Ähnlichkeit dieses Rechteckes mit einem Quadrat ist gering. Das kommt auch dadurch zum Ausdruck, dass die Seitenlängen 1 und 9 sehr schlechte Näherungen für die Wurzel aus 9 sind.

Um eine bessere Annäherung an ein Quadrat zu erhalten, muss die lange Seite gekürzt und die kurze Seite verlängert werden. Als neue Länge der langen Seite wird der Mittelwert

 

der beiden bisherigen Seitenlängen genommen. Die Länge der anderen Seite berechnet sich wie oben zu

 

Im Beispiel ergibt sich als Mittelwert die Seitenlänge 5. Die dazugehörige kurze Seite hat eine Länge von 1,8.

 

Auch hier ist die Ähnlichkeit zu einem Quadrat noch gering. Allerdings ist das neue Rechteck im Vergleich zum vorhergehenden kompakter.

Der beschriebene Ablauf wird in jedem weiteren Schritt des Heron-Verfahrens wiederholt. Der Mittelwert der Seitenlängen eines Rechtecks entspricht der Länge der langen Seite des neuen Rechtecks und die Länge der kurzen Seite lässt sich daraus jeweils wie oben beschrieben berechnen. Im Beispiel entstehen so in den nächsten zwei Schritten die folgenden beiden Rechtecke.

   

Das letzte Rechteck ist schon annähernd quadratisch. Die Seitenlänge 3,024 liegt entsprechend nah bei 3, dem exakten Wert von  .

Heron-Verfahren als Spezialfall des Newton-Verfahrens Bearbeiten

 
Heron-Verfahren zur Berechnung von   mit drei verschiedenen Startwerten

Die Iterationsgleichung des Heron-Verfahrens kann aus dem Newton-Verfahren für die Nullstelle der quadratischen Funktion   hergeleitet werden. Mit   folgt aus der Rekursionsformel des Newton-Verfahrens   die Iterationsvorschrift:

 .

Der Startwert   der Iteration kann, solange er nicht gleich Null ist, beliebig festgesetzt werden, die Iteration konvergiert immer. Zu beachten ist, dass bei negativen Startwerten die Iteration gegen die negative Quadratwurzel konvergiert. Eine qualifizierte Schätzung für den Startwert erhält man aus der Taylorreihen-Entwicklung der binomischen Reihe um 1, deren zwei erste Glieder diese Gleichung liefern:  

Das Heron-Verfahren gehört zu den Fixpunktverfahren.[1] Setzt man  , so gilt für den Fixpunkt (der die Bedingung   erfüllt)   mit der (positiven) Lösung  .

Beispiel Bearbeiten

 
Die Folgenglieder der babylonischen Wurzelfolge mit dem Startwert  .

Im folgenden einfachen Beispiel wird die Wurzel aus 9 als Annäherung mit drei Berechnungsschritten an den wahren Wert   gezeigt. Mit   wird der Startwert   für die Iteration berechnet und in die Iterationsvorschrift eingesetzt:

 
 
 

Konvergenz Bearbeiten

Das Verfahren lässt sich folgendermaßen als rekursiv definierte Folge ausdrücken:

 .

Es handelt sich dabei um eine rein positive Folge. Man kann nun zeigen, dass für alle   das  -te Folgenglied   ist. Dazu zeigt man die äquivalente Ungleichung  :

 .

Weiter zeigt man, dass   eine monoton fallende Folge ist:

 .

Durch die gezeigte Beschränktheit und Monotonie muss die Folge konvergieren, und zwar von oben gegen die gesuchte Wurzel:

 .

Da sich das Heron-Verfahren aus dem Newtonschen Näherungsverfahren ableiten lässt und die zu berechnende Nullstelle einfach ist, ist die Konvergenzordnung 2.

Das Verfahren konvergiert sehr schnell, wenn bereits eine gute Näherung vorliegt. Die Zahl der richtigen Stellen wird mit jedem Schritt etwa verdoppelt. Wenn die erste Näherung jedoch schlecht ist, sind viele Schritte für eine gute Näherung nötig.

Wenn zum Beispiel aus einer Ganzzahl   mit 200 Binärstellen die Wurzel berechnet werden soll und man mit   als erster Näherung beginnt, dann wird die Näherung mit jedem Schritt um etwa eine Binärstelle kürzer, d. h. erst nach etwa 100 Schritten hat die Näherung die richtige Länge von 100 Stellen. Danach reichen sechs bis sieben weitere Schritte ( ), um alle 100 Stellen vor dem Komma richtig zu berechnen.

Es empfiehlt sich somit, einen möglichst genauen Startwert   zu bestimmen. Im Beispiel sollte man zuerst die Bitlänge   von   ermitteln und einen Startwert mit der halben Länge verwenden.[Anmerkung 1]

Fehlerabschätzung Bearbeiten

Für die Heron-Folge   gilt:

  (Einschließung),

und für den Fehler die folgende Abschätzung

  (quadratische Konvergenz).

Diese Fehlerabschätzung hat den Nachteil, dass   nicht bekannt ist, sondern berechnet werden soll. Unter Verwendung der obigen Einschließung erhält man folgende praktikable Abschätzung:

 .

Angewandt auf obiges Beispiel erhält man:

 .

Für den relativen Fehler

 

gilt die Rekursion

 .

Die Folge der   ist also bei gegebenem relativen Fehler   der Startnäherung unabhängig von  .

Implementierung in Software Bearbeiten

Das Verfahren eignet sich besonders gut zur Implementierung in Software, da nur Grundrechenarten benötigt werden, s. o. Es wird heute angesichts der breiten Verfügbarkeit numerischer Prozessorhardware aber nur noch selten benötigt.

Wenn dazu noch eine Gleitkommadarstellung mit einem Zweier-Exponenten benutzt wird, wird der Ansatz relativ einfach, als Beispiel wird die Wurzel aus 5 betrachtet und der relative Fehler zum Endwert   verfolgt:

  • Zunächst wird von diesem Zweier-Exponenten eine gerade Anzahl abgespaltet, so dass als Exponent entweder eine 0 oder 1 übrig bleibt, die Zahl also auf das Intervall   normalisiert wird. In diesem Intervall ist die Wurzelfunktion eine nur schwach gekrümmte Kurve, lässt sich also numerisch gut behandeln. Beispiel: , es wird also vorerst nur noch   mit dem Ziel   behandelt.
  • Als Startwert für die eigentliche Iteration approximiert man diese Kurve durch eine noch einfachere, die sich direkt ohne Iteration berechnen lässt. Mit dieser Anfangsberechnung wird der Startwert ermittelt, mit dem die folgende Iteration begonnen wird. Man kann diese Kurve mehr oder weniger aufwendig ansetzen, mit den steigend komplizierteren Ansätzen unten lässt sich gegebenenfalls ein Iterationsschritt einsparen:
    • eine einfache Konstante (beispielsweise 1),
      Beispiel:  , relativer Fehler  
    • eine Gerade mit Steigung   und einer additiven Konstante von   als Vereinfachung des nachfolgenden Falls
      Beispiel:  , relativer Fehler  
    • eine Gerade mit Steigung   und einer additiven, optimierten Konstante von  ,
      Beispiel:  , relativer Fehler  .
    • eine Gerade mit optimierter Steigung und einer additiven Konstante hier nicht näher betrachtet.
  • Ausgehend von dem so ermittelten Startwert   führt man eine feste Anzahl von Iterationsschritten durch. Die nötige Anzahl, um die gewünschte Genauigkeit zu erreichen, lässt sich dank der obigen Fehlerabschätzung als Worst Case innerhalb des Startintervalls direkt ausrechnen. Bei 32 Bits Mantisse und dem mittleren Startansatz braucht man beispielsweise nur drei Schritte. Diese fest gewählte Anzahl erspart wesentlich aufwendigere Abfragen auf Erreichung der Genauigkeit. Der Ersatz der genannten Konstanten durch die Zahl 1,0 ändert daran nichts. Auch der noch kompliziertere Ansatz brächte zumindest bei dieser Genauigkeit keine Einsparung eines weiteren Iterationsschritts. Bei höheren Genauigkeitsanforderungen kann das anders aussehen.
    Beispiel mit drei Schritten nach Ansatz 1 (Konstante 1, mit den anderen Ansätzen konvergiert es noch einen Schritt schneller):
     , relativer Fehler    , relativer Fehler  
     , relativer Fehler kleiner als  
    Man sieht die Wirkung der quadratischen Konvergenz, dass sich der relative Fehler von Schritt zu Schritt jeweils quadriert oder die Anzahl gültiger Stellen bzw. der negative Fehlerexponent etwa verdoppelt.
  • Zum Schluss wird der Exponent restauriert, indem man die Hälfte des im ersten Schritt abgespalteten Werts wieder hinzufügt.
    Beispiel:  .

Verallgemeinerung des Verfahrens Bearbeiten

Dieses Verfahren lässt sich verallgemeinern, so dass   für   berechnet wird. Je größer   ist, desto mehr Schritte werden benötigt, um die Wurzel genau zu berechnen.

Dabei wird das Newton-Verfahren zur Bestimmung der positiven Nullstelle   der Funktion   angewandt. Mit   folgt aus der Rekursionsformel des Newton-Verfahrens   die Iterationsvorschrift:

 

Beispielsweise lautet die rekursive Formel zur Berechnung der Kubikwurzel:

 

Hier muss die Folge mit einem geeigneten Startwert   für den gesuchten Wert von   gestartet werden.

Für ganzzahliges positives   gelten die gleichen Konvergenzaussagen wie oben für  

Bestimmung des Kehrwerts Bearbeiten

Für   erhält man ein Verfahren, mit dem (ohne Verwendung der Division!) der Kehrwert   näherungsweise errechnet werden kann:

 

Dieses Verfahren konvergiert für alle   quadratisch gegen  

Die Iteration ermöglichte für erste Computer ohne eingebaute Division die Zurückführung dieser Operation auf Multiplikation und Subtraktion. Die Division von zwei Zahlen wurde so ausgeführt, dass der Kehrwert des Nenners bestimmt wurde und mit dem Zähler multipliziert wurde.

Beispiel Bearbeiten

Es soll   näherungsweise berechnet werden mit dem Startwert  :

 
 
 

Für den Startwert   erhält man

 
 

somit keine Konvergenz gegen den gesuchten Wert von  

Historisches Bearbeiten

Das Verfahren war in Mesopotamien bereits zur Zeit von Hammurapi I. (ca. 1750 v. Chr.), eines Königs von Babylon, bekannt.[2] Um 100 n. Chr. wurde es von Heron von Alexandria im ersten Buch seines Werkes Metrica beschrieben.[3]

Literatur Bearbeiten

Weblinks Bearbeiten

Commons: Heron-Verfahren – Sammlung von Bildern, Videos und Audiodateien

Anmerkungen Bearbeiten

  1. Startwert: Sofern der Ausgangswert bereits als Binärzahl (im Stellenwertsystem) vorliegt, kann einfach gezählt werden, an welcher Stelle   seine höchstwertige '1' steht; Startwert wird dann  . Sofern der Ausgangswert in (Binär-)Exponentialdarstellung vorliegt, kann als Startwert einfach der Exponent halbiert werden (um 1 Bit nach rechts schieben). Siehe auch Abschnitt Implementierung in Software

Einzelnachweise Bearbeiten

  1. Passende Umformungen: Nullstellen und Fixpunkte. In: Montanuniversität Leoben. 23. Februar 2005, archiviert vom Original (nicht mehr online verfügbar) am 22. August 2019; abgerufen am 27. August 2019.
  2. Bernd Ziegenbalg: Algorithmen: Von Hammurapi bis Gödel. Harri Deutsch Verlag 2007, ISBN 978-3-8171-1814-4, S. 54 (Auszug (Google))
  3. John J. O’Connor, Edmund F. RobertsonHeron-Verfahren. In: MacTutor History of Mathematics archive (englisch).