golden#
- scipy.optimize.golden(func, args=(), brack=None, tol=np.float64(1.4901161193847656e-08), full_output=0, maxiter=5000)[Quelle]#
Gibt den Minimierer einer Funktion einer Variablen mit der Goldener-Schnitt-Methode zurück.
Gegeben eine Funktion einer Variablen und ein mögliches Klammerungsintervall, gibt ein Minimierer der Funktion zurück, der auf eine Bruchteilpräzision von tol isoliert ist.
- Parameter:
- funccallable func(x,*args)
Zielfunktion zur Minimierung.
- argstuple, optional
Zusätzliche Argumente (falls vorhanden), die an func übergeben werden.
- bracktuple, optional
Entweder ein Tripel
(xa, xb, xc), wobeixa < xb < xcundfunc(xb) < func(xa) und func(xb) < func(xc), oder ein Paar (xa, xb), das als Anfangspunkte für eine Abwärtsklammerungssuche verwendet wird (siehescipy.optimize.bracket). Der Minimiererxwird nicht notwendigerweisexa <= x <= xberfüllen.- tolfloat, optional
x-Toleranz-Stoppkriterium
- full_outputbool, optional
Wenn True, gib optionale Ausgaben zurück.
- maxiterint
Maximale Anzahl durchzuführender Iterationen.
- Rückgabe:
- xminndarray
Optimaler Punkt.
- fvalfloat
(Optionale Ausgabe) Optimaler Funktionswert.
- funcallsint
(Optionale Ausgabe) Anzahl der durchgeführten Auswertungen der Zielfunktion.
Siehe auch
minimize_scalarSchnittstelle zu Minimierungsalgorithmen für skalare univariate Funktionen. Siehe insbesondere die Methode 'Golden' method.
Hinweise
Verwendet ein Analogon der Bisektionsmethode, um das geklammerte Intervall zu verkleinern.
Beispiele
Wir illustrieren das Verhalten der Funktion, wenn brack die Größe 2 bzw. 3 hat. In dem Fall, dass brack die Form (xa,xb) hat, können wir für die gegebenen Werte sehen, dass die Ausgabe nicht notwendigerweise im Bereich
(xa, xb)liegen muss.>>> def f(x): ... return (x-1)**2
>>> from scipy import optimize
>>> minimizer = optimize.golden(f, brack=(1, 2)) >>> minimizer 1 >>> res = optimize.golden(f, brack=(-1, 0.5, 2), full_output=True) >>> xmin, fval, funcalls = res >>> f(xmin), fval (9.925165290385052e-18, 9.925165290385052e-18)