taramath
NonlinearProgramming.minimize
zur Lösung eines nichtlinearen Optimierungsproblems
.minimize .maximize .gradient_descent .set_accuracy .set_maximal_iterations .get_number_of_iterations
Beschreibung
Die Funktion besitzt folgende Argumente:
f Funktion oder String
z Vektor, d.h. eindimensionales Array
Ausgehend von der Startlösung z wird die Zielfunktion f unter Verwendung des Nelder-Mead-Verfahrens minimiert.
Falls das Verfahren gegen ein lokales Minimum konvergiert, so wird ein Array bestehend aus dem lokalen Minimum sowie dem zugehörigen Zielfunktionswert ausgegeben. Wird anderenfalls eine maximale Anzahl an Iterationen erreicht, ohne dass zuvor ein lokales Minimum gefunden wurde, so wird die bislang beste Lösung samt Zielfunktionswert ausgegeben. Ist das Problem umbeschränkt oder numerisch schlecht gestellt, so wird ein entsprechender String ausgegeben.
Die Zielfunktion f kann dabei als Funktion mit einem Array als Argument oder aber als String mit x1 bis xn als Variablen übergeben werden. Falls f als String gewählt wird, so stehen die Funktionen acos, asin, atan, cos, exp, log, sin, sqrt und tan sowie die Konstanten E und PI zur Verfügung. Die Startlösung z ist stets als Array zu übergeben.
Beispiel 1
Das folgende Beispiel löst ein nichtlineares Optimierungsproblem mit drei Variablen, wobei die Zielfunktion als Funktion mit einem Array als Argument definiert wird. Anschließend wird die Lösung, der zugehörige Zielfunktionswert sowie die Anzahl der Iterationen ausgegeben.
Tipp: Ändere minimize in maximize und aktualisiere die Vorschau. Vorschau aktualisieren
Beispiel 2
Das folgende Beispiel löst ein nichtlineares Optimierungsproblem mit drei Variablen, wobei die Zielfunktion als String definiert wird. Anschließend wird die Lösung, der zugehörige Zielfunktionswert sowie die Anzahl der Iterationen ausgegeben. Vorschau aktualisieren
Beispiel 3
Das folgende Beispiel löst ein nichtlineares Optimierungsproblem mit einer Variablen, wobei die Zielfunktion diverse lokale Minima jedoch nur ein globales Minimum besitzt. Die Startlösung z hat daher einen großen Einfluss auf das Ergebnis des Verfahrens.
Tipp: Verändere den Startwert, aktualisiere die Vorschau und beobachte das Ergebnis. Vorschau aktualisieren