[Python-de] optimize.fmin_bfgs
Reik H. Börger
reikhboerger at gmx.de
Fre Nov 19 17:17:59 CET 2004
Guten Tag,
Ich versuche, eine recht komplizierte Funktion mit kompliziertem, aber
explizit bekanntem Gradienten zu optimieren. Ich habe Zielfunktion und
Gradient jeweils in eine Funktion geschrieben, die zu funktionieren
scheinen. Nun versuche ich mit dem Befehl
minvalue = optimize.fmin_bfgs(calibration_objective_function, x0, \
fprime=compute_gradient_objective_function, \
args=(Zins, market_vols,
initial_curve, swaptions, fixrho),gtol=1.0e-25)
die Funktion zu minimieren.
Der Optimierer bricht immer nach einer Iteration ab, wobei der Gradient
3 mal aufgerufen wird und die Zielfunktion 14 mal. Der Gradient wird
aber immer an derselben Stelle ausgewertet. Der angegebene Optimalwert
ist immer der Startwert x0, was nicht sein kann. Ich kann den Fehler
einfach nicht finden. Ist fmin_bfgs etwa fehlerhaft? Wenn ich
fprime=None übergebe, funktioniert die Optimierung wunderbar (dauert
aber lange -> Gradient benutzen).
Hat jemand eine Idee, in welche Falle ich gelaufen sein könnte?
Vielen Dank
Gruss
Reik