|
Das BFGS-Verfahren neu |
|
- Das BFGS-Verfahren ist eine sogenannte quasi Newton-Methode zur
Lösung unrestringierter Minimierungsaufgaben unter Verwendung der
ersten Ableitungen. Das heißt, zu einer Funktion
F in C1 ist ein
xopt gesucht, für das F(xopt) <=
F(x) für alle x aus einer Umgebung von xopt gilt.
- Ausgehend von einem Startvektor x0 und einer positiv
definiten Matrix A0 wird iteriert:
xk+1 = xk - sigmakdk.
Hierbei wird dk als die Lösung der Gleichung
Akdk = grad(F(xk))
bestimmt.
Ak+1 wird durch die BFGS-Update-Formel bestimmt:
Ak+1 = Ak+(ykykT)/(ykTsk)- AkskskTAk/(skTAksk)
Ak+1 erfüllt die sog. Sekantenrelation
Ak+1sk = yk,
mit
sk=xk+1-xk, yk= grad(F(xk+1))- grad(F(xk))
Das Gleichungssystem für dk
wird mit der Cholesky-Zerlegung von Ak
gelöst, wobei diese von Schritt zu Schritt aufdatiert wird.
sigmak wird hier mit dem Schrittweitenverfahren von Albaali
und Fletcher berechnet.
Dies ist ein Einschachtelungsverfahren
zur Erfüllung der strengen Powell-Wolfe-Abstiegskriterien:
|grad F(x_next)'d| <= kappa*|grad F(x)'d|
F(x)-F(x_next) >= sigma*delta*|grad F(x)'d|.
Hier ist stets delta=0.01, für kappa gibt
es den Defaultwert 0.9.
|
|
|
Die Eingaben |
|
- Sie haben die Wahl zwischen 14 vorgegebenen Funktionen, zu denen Sie auch
eine genauere Beschreibung
nachlesen können. Oder Sie geben eine eigene Funktion f,
abhängig von n Variablen x(1),...,x(n),
und die Startwerte zu diesen Variablen an.
- Sie können entweder Standardabbruchkriterien wählen oder
eigene Kriterien angeben. Letzteres bedeutet dann noch die Angabe von
Abbruchtoleranzen für den Gradienten und die Änderung in
x und den Parameter im Powell-Wolfe-Abstiegstest.
- Für die festeingestellten Funktionen ist noch eine Angabe der
Startwerte der Variablen möglich, wobei Sie auch hier eine
Standardinitialisierung wählen können.
Sie finden die jeweilige Anzahl n der Variablen bei den Kurzbeschreibungen
oben im Eingabeformular.
- Des weiteren haben Sie die Wahl, ob Sie einen Höhenlinienplot als
Ausgabe möchten. Wenn ja, dann wird noch der Index der Variablen,
bezüglich derer das Bild geplottet werden soll, sowie entsprechende
Intervallangaben benötigt. Bei der Berechnung der Höhenlinien
werden die anderen Variablen auf den berechneten Optimalwert gesetzt.
|
|
|
Die Ausgaben |
|
- CPU-Zeit.
- Den Grund des Rechnungsabbruchs.
- Die berechnenten Optimalwerte f(xopt) und
x(1)opt,...,x(n)opt.
- Die Anzahl der Funktionsaufrufe.
- Zwei logarithmische Plots des Fehlers f - fopt
sowie der Norm des Gradienten von f.
- Und den Höhenlinienplot, falls Sie diesen gewünscht hatten.
|
|
|
|
|
|
|