## Heron-Verfahren

Heron-Verfahren oder babylonisches Wurzelziehen - Rechenverfahren zur Berechnung
einer Näherung der Quadratwurzel einer Zahl. Spezialfall des Newton-Verfahrens.
Iterationsvorschrift für die Wurzel aus a: 
     x(n+1) = (x(n) +a/x(n))/2

Parameter:
a ... Zahl (von der die Quadratwurzel berechnet werden soll)
n ... Anzahl der Iterationen
start ... Startwert, bei dem die Iteration beginnen soll (start>0)

heron(a,n,start):=block(
  xn:start,
  for i:1 thru n do xn:(xn+a/xn)/2,
  xn:bfloat(xn),
  return(xn)
);

Beispiel: Wurzel aus 5, 3 Iterationen, Startwert 2 
  (ein guter Startwert beschleunigt das Verfahren, ist aber keine Vorbedingung)

heron(5,3,2);

Vergleich mit dem korrekten Wurzelwert

sqrt(5),numer;

Beispiel mit einem "schlechten" Startwert
Wurzel aus 5, 8 Iterationen, Startwert 100

heron(5,8,100);