[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