Dokumentation Fibonacci-Methode

Die Aufgabe war es, die Fibonacci Methode zu implementieren. Bei der Fibonacci-Methode handelt es sich um eine vorgehensweise in der Linearen Algebra, mit der man ein Minimum approximieren kann. Dies geschieht, in dem man sich ein Intervall aussucht, innerhalb dem man ein Minimum vermutet und unterteilt dieses Intervall in gleich große Zwischenintervalle. Es wird nun ein Zwischenintervall ausgewählt und überprüft, wie sich der Funktionswert an dieser Stelle zum Funktionswert der beiden Grenzen verhält und entsprechend die Grenzen verschoben. Dies wird eine bestimmte Anzahl mal wiederholt. Nach der letzten Wiederholung wird überprüft, welcher der Stellen den niedrigsten Funktionswert hat. Diese Stelle ist das approximierte Minimum in diesem Intervall. Die Implementation besteht dabei aus den 3 Klassen „FibonacciMethode“, welche die Logik für die Fibonacci-Methode enthält, „Funktion“, welche eine mathematische Funktion repräsentiert und den Funktionswert zurück gibt, sowie „FibonacciMethodeTesting“, welche die main-Methode beinhaltet und das Programm ausführt.
Für die Fibonacci-Methode müssen insgesamt 4 Werte angegeben werden.

  1. Start des Intervalls
  2. Ende des Intervalls
  3. Anzahl der Wiederholungen
  4. Die Funktion selbst

Alle weiteren Werte werden durch diese Angaben berechnet, meistens auf Basis der Fibonacci-Folge, woher diese Methode ihren Namen bekommt. Derzeitig muss die Funktion noch hart in die Klasse „Funktion“ reingeschrieben werden und über die enthaltene Enumeration identifiziert werden, damit das Programm funktioniert. Eine mögliche Weiterentwicklung wäre ein Parser für Funktionen, damit man beim Start des Programmes eine Funktion über die Kommandozeile übergeben kann und nicht das Programm selbst jedes mal verändert werden muss. Eine zusätzliche Weiterentwicklung wäre eine Konfigurationsdatei, die Funktionen, Intervalle und Anzahl Wiederholungen enthält und vom Programm automatisch ausgelesen wird, damit man mehrere Intervalle und auch mehrere Funktionen hintereinander angeben kann. Die Ergebnisse würden dann in eine Ergebnis-Datei angegeben.

 

Dokuementation:
von Wiebke Schenk, Yannick Weinz