scipy.optimize.

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

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

minimieren

Schnittstelle 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

  1. scipy.optimize.fmin_ncg rein in Python mit NumPy

    und SciPy geschrieben ist, während scipy.optimize.fmin_tnc eine C-Funktion aufruft.

  2. 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 < 1 erfüllen.

Referenzen

Wright & Nocedal, 'Numerical Optimization', 1999, S. 140.