fmin_ncg#
- scipy.optimize.fmin_ncg(f, x0, fprime, fhess_p=None, fhess=None, args=(), avextol=1e-05, epsilon=np.float64(1.4901161193847656e-08), maxiter=None, full_output=0, disp=1, retall=0, callback=None, c1=0.0001, c2=0.9)[Quelle]#
Unbeschränkte Minimierung einer Funktion mit der Newton-CG-Methode.
- Parameter:
- faufrufbar
f(x, *args) Zielfunktion, die minimiert werden soll.
- x0ndarray
Anfangsschätzung.
- fprimeaufrufbar
f'(x, *args) Gradient von f.
- fhess_paufrufbar
fhess_p(x, p, *args), optional Funktion, die die Hesse-Matrix von f multipliziert mit einem beliebigen Vektor, p, berechnet.
- fhessaufrufbar
fhess(x, *args), optional Funktion zur Berechnung der Hesse-Matrix von f.
- argstuple, optional
Zusätzliche Argumente, die an f, fprime, fhess_p und fhess übergeben werden (derselbe Satz von zusätzlichen Argumenten wird an alle diese Funktionen übergeben).
- epsilonfloat oder ndarray, optional
Wenn fhess angenähert wird, verwenden Sie diesen Wert für die Schrittweite.
- callbackcallable, optional
Eine optionale, vom Benutzer bereitgestellte Funktion, die nach jeder Iteration aufgerufen wird. Wird als callback(xk) aufgerufen, wobei xk der aktuelle Parametervektor ist.
- avextolfloat, optional
Die Konvergenz wird angenommen, wenn der durchschnittliche relative Fehler im Minimierer unter diesen Wert fällt.
- maxiterint, optional
Maximale Anzahl durchzuführender Iterationen.
- full_outputbool, optional
Wenn True, werden die optionalen Ausgaben zurückgegeben.
- dispbool, optional
Wenn True, wird eine Konvergenzmeldung ausgegeben.
- retallbool, optional
Wenn True, wird eine Liste der Ergebnisse bei jeder Iteration zurückgegeben.
- c1float, Standard: 1e-4
Parameter für die Armijo-Bedingungsregel.
- c2float, Standard: 0.9
Parameter für die Krümmungsbedingungsregel
- faufrufbar
- Rückgabe:
- xoptndarray
Parameter, die f minimieren, d.h.
f(xopt) == fopt.- foptfloat
Wert der Funktion bei xopt, d.h.
fopt = f(xopt).- fcallsint
Anzahl der gemachten Funktionsaufrufe.
- gcallsint
Anzahl der gemachten Gradientenaufrufe.
- hcallsint
Anzahl der gemachten Hesse-Matrix-Aufrufe.
- warnflagint
Vom Algorithmus generierte Warnungen. 1: Maximale Anzahl von Iterationen überschritten. 2: Zeilensuche fehlgeschlagen (Präzisionsverlust). 3: NaN-Ergebnis angetroffen.
- allvecslist
Das Ergebnis jeder Iteration, wenn retall True ist (siehe unten).
Siehe auch
minimierenSchnittstelle zu Minimierungsalgorithmen für multivariate Funktionen. Siehe insbesondere die Methode 'Newton-CG'.
Hinweise
Es muss nur eine der Optionen fhess_p oder fhess angegeben werden. Wenn fhess angegeben ist, wird fhess_p ignoriert. Wenn weder fhess noch fhess_p angegeben sind, wird das Hesse-Matrix-Produkt mittels finiter Differenzen auf fprime angenähert. fhess_p muss die Hesse-Matrix multipliziert mit einem beliebigen Vektor berechnen. Wenn sie nicht angegeben ist, werden zur Berechnung finite Differenzen auf fprime verwendet.
Newton-CG-Methoden werden auch als Truncated-Newton-Methoden bezeichnet. Diese Funktion unterscheidet sich von scipy.optimize.fmin_tnc dadurch, dass
- scipy.optimize.fmin_ncg rein in Python mit NumPy
und SciPy geschrieben ist, während scipy.optimize.fmin_tnc eine C-Funktion aufruft.
- scipy.optimize.fmin_ncg ist nur für unbeschränkte Minimierung
während scipy.optimize.fmin_tnc für unbeschränkte Minimierung oder Box-beschränkte Minimierung ist. (Box-Beschränkungen geben untere und obere Grenzen für jede Variable separat an.)
Die Parameter c1 und c2 müssen
0 < c1 < c2 < 1erfüllen.Referenzen
Wright & Nocedal, 'Numerical Optimization', 1999, S. 140.