Der Heronsche Algorithmus zur Annäherung einer Quadratwurzel an eine Dezimalzahl
Man beginnt mit einem beliebigen Näherungswert a (hier: zahl /
5) und b = zahl / a , sodass das Produkt a*b die Zahl ergibt. Danach bildet
man das arithmetische Mittel von a und b, das schon viel näher am
Zielwert liegt und speichert es in a; b wird nun wieder zahl / a zugewiesen.
Diese beiden Schritte wiederholt man nun solange, bis sich die Werte von
a und b nur noch in der (hier) 7. Nachkommastelle unterscheiden. Für
die abs()-Funktion, die den Betrag einer Zahl liefert, muss math.h eingebunden
werden.
double cm_heron(double zahl) {
double a = zahl / 5, b = zahl / a;
while(fabs(a-b) > 0.000001) {
a = (a + b) / 2;
b = zahl / a;
}
return a;
}