Algorithmensammlung: Zahlentheorie: Goldener Schnitt
Algorithmensammlung: Zahlentheorie
Gesucht werden zwei Zahlen für die folgende Gleichung gilt:
Das Verhältnis der beiden Zahlen ist der Goldene Schnitt. Das Verhältnis beider Zahlen ist ein konstanter Wert, der ungefähr 1,6 beträgt. Die größere Zahl ist etwa 1,6 mal so groß wie die kleinere Zahl.
Durch Umformung und Einsetzen von erhält man
.
Damit ist
.
Die Goldene Zahl kann also als positive Lösung dieser quadratische Gleichung angesehen werden:
.
Der Goldene Schnitt hat einige besondere Eigenschaften und findet sich beispielsweise im gleichseitigen Fünfeck.
Zur Berechnung kann das Newtonverfahren auf die obengenannte quadratische Gleichung angewandt werden, bis die gewünschte Genauigkeit erreicht ist:
; dabei wird als Startwert ein Schätzwert genommen, z.B. .
Pseudocode:
x = 1.6
while |x^2 - x - 1| > 1e-10
x = x - (x^2 - x - 1)/(2*x - 1)
Python
[Bearbeiten]# Getestet unter Python 3.6, sollte aber unter allen 3.x-Versionen laufen
# Berechnung der goldenen Zahl mit dem Newtonverfahren
def golden_ratio(epsilon=1e-10):
x = 1.6
y = 1
while abs(y) > epsilon:
y = (x**2 - x - 1)/(2*x - 1)
x -= y
return x