In der Welt der Mathematik ist die Bedeutung von Folgen und Reihen in der Analysis nicht mehr zu leugnen. Manchmal ist es schwierig, eine konkrete Anwendung für Konzepte zu finden, die in diesem Bereich erfunden (oder entdeckt?) wurden. Die Fibonacci Folge ist in vielen Bereichen der Natur zu finden und fasziniert Forscher immer wieder durch ihre Eigenschaften, die eng mit dem Goldenen Schnitt verbunden sind.
Geschichte und Hintergrund
Die Fibonacci Folge wurde nach dem italienischen Mathematiker Leonardo da Pisa aus dem 13. Jahrhundert benannt, der auch unter dem Namen Fibonacci bekannt ist. Obwohl er die Folge nicht erfunden hatte, führte er sie 1202 mit seinem Buch „Liber Abaci“ (Buch des Abakus oder Buch der Berechnung) in Europa ein.
In diesem Buch stellte und löste Fibonacci ein Problem, das das Wachstum einer idealisierten Kaninchenpopulation beinhaltet, das zu dieser Zahlenfolge führt. Es ist anzumerken, dass die Fibonacci Folge schon lange vor diesem Datum in Indien bekannt war, wo die Beziehungen zwischen den Zahlen der Folge bereits untersucht wurden.
Die Fibonacci-Zahlen haben viele Anwendungen in der Natur und in der Kunst. Sie können in verschiedenen Maßstäben beobachtet werden, von Blütenblättern bis hin zu Galaxienspiralen. Blütenblätter haben oft eine Fibonacci-Zahl – Gänseblümchen können 34, 55 oder sogar 89 Blütenblätter haben. Außerdem sind Sonnenblumenkerne oder Tannenzapfen oft in Spiralen angeordnet, die den Fibonacci-Zahlen folgen.
In der Architektur wurde der Goldene Schnitt, der direkt mit der Fibonacci Folge verbunden ist, herangezogen, um Werke zu schaffen, die aufgrund ihrer „perfekten“ Proportionen angenehm für das Auge sind. So scheinen zum Beispiel der Parthenon in Griechenland und das Taj Mahal in Indien beide den Goldenen Schnitt bei ihrer Konstruktion zu verwenden.
Es ist diese Universalität, die die Fibonacci Folge so faszinierend macht – eine einfache Zahlenfolge, die ihren Weg durch die Mathematik, die Natur und die Kunst findet und Bereiche vereint, die auf den ersten Blick weit voneinander entfernt scheinen könnten. Im nächsten Abschnitt schauen wir uns genauer an, was diese Zahlen sind und wie wir sie mithilfe der Programmiersprache Python selbst erzeugen können.
Der Romanesco-Kohl birgt ein Geheimnis – zähle die Anzahl der Spiralen, wenn du es schaffst!
Definition und Implementierung
Formal ist die Fibonacci Folge eine Folge, bei der jeder Term gleich der Summe der beiden Elemente ist, die ihm vorausgehen. Allein die Kenntnis der ersten beiden Terme und der Rekursionsformel reicht aus, um die Folge in ihrer Gesamtheit zu konstruieren.
$F_0 = 0$, $F_1 = 1$ und $F_n = F_{n-1}+ F_{n-2}$ für $n \geq 2$.
Das Erstellen eines Programms, das die n-te Fibonacci-Zahl liefert, ist eine sehr gute elementare Übung. Bevor du weiterliest, kannst du versuchen, die Funktion selbst zu codieren!
Hier ist eine Python-Funktion, die das Problem löst:
def fibonacci(n):
if n in {0, 1}:
return n
return fibonacci(n-1) + fibonacci(n-2)
Diese erste rekursive Implementierung mag zufriedenstellend sein, aber es gibt die Möglichkeit, diesen Code zu optimieren, indem man sich für einen iterativen Ansatz entscheidet. Rekursivität ist sehr restriktiv in Bezug auf die Rechenzeit; in Wirklichkeit ist die zeitliche Komplexität dieser Funktion in O(n²). In der Praxis bedeutet dies, dass die Funktion Mühe hat, ein Ergebnis in einer zufriedenstellenden Zeit zu liefern, wenn n groß ist (z. B. n = 40).
Hier ist ein neuer, diesmal iterativer Ansatz, der das gleiche Ergebnis mithilfe einer for-Schleife liefert:
def fibonacci(n):
a, b, c= 0, 1, 0
if n == 0:
return 0
for i in range(2, n+1):
c = a + b
a = b
b = c
return b
Eine Möglichkeit, diesen Code zu optimieren, wäre, die Elemente der Folge bei ihrer Einführung im Cache zu speichern, um redundante Berechnungen bei jedem Aufruf der Funktion zu vermeiden.
Außerdem gibt es eine mathematische Formel, die es ermöglicht, den genauen Term der Folge zu berechnen, ohne die Rekursion zu benutzen. Sie wird als Binet-Formel bezeichnet und verwendet den Goldenen Schnitt:
def fibonacci(n):
sqrt5 = math.sqrt(5)
F_n = int((( (1 + sqrt5) ** n - (1 - sqrt5) ** n ) / ( 2 ** n * sqrt5 )))
return F_n
Fazit
Die Fibonacci Folge findet man in vielen verschiedenen Bereichen, wie z. B. in der Kryptographie oder beim Trading. Mit ihrer Hilfe kann man eine Liste von Pseudozufallszahlen erzeugen oder ein elementares Verschlüsselungssystem erstellen. In der Finanzwelt wird ein Werkzeug namens Fibonacci-Retracement-Niveau verwendet, um abzuschätzen, wie weit ein Vermögenswert zurückfallen könnte, bevor er seine Trendbewegung wieder aufnimmt. In der Zeitreihenanalyse werden Fibonacci-Zahlen verwendet, um die optimale Anzahl von Zeiträumen zu bestimmen, die bei der Berechnung von gleitenden Durchschnitten verwendet werden.