brent#
- scipy.optimize.brent(func, args=(), brack=None, tol=1.48e-08, full_output=0, maxiter=500)[Quelle]#
Gibt bei einer Funktion einer Variablen und einem möglichen Intervall einen lokalen Minimierer der Funktion zurück, der auf eine relative Genauigkeit von tol isoliert ist.
- Parameter:
- funccallable f(x,*args)
Zielfunktion.
- argstuple, optional
Zusätzliche Argumente (falls vorhanden).
- bracktuple, optional
Entweder ein Tripel
(xa, xb, xc), dasxa < xb < xcundfunc(xb) < func(xa) and func(xb) < func(xc)erfüllt, oder ein Paar(xa, xb), das als Startpunkte für eine abwärts gerichtete Intervallsuche verwendet wird (siehescipy.optimize.bracket). Der Minimiererxerfüllt nicht notwendigerweisexa <= x <= xb.- tolfloat, optional
Relative Fehlertoleranz in der Lösung xopt, die für die Konvergenz akzeptabel ist.
- full_outputbool, optional
Wenn True, geben Sie alle Ausgabeargumente (xmin, fval, iter, funcalls) zurück.
- maxiterint, optional
Maximale Anzahl von Iterationen zur Lösungsfindung.
- Rückgabe:
- xminndarray
Optimaler Punkt.
- fvalfloat
(Optionale Ausgabe) Optimaler Funktionswert.
- iterint
(Optionale Ausgabe) Anzahl der Iterationen.
- 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 'Brent' method.
Hinweise
Verwendet umgekehrte parabolische Interpolation, wenn möglich, um die Konvergenz der goldenen Schnittmethode zu beschleunigen.
Stellt nicht sicher, dass das Minimum im durch brack angegebenen Bereich liegt. Siehe
scipy.optimize.fminbound.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)liegt.>>> def f(x): ... return (x-1)**2
>>> from scipy import optimize
>>> minimizer = optimize.brent(f, brack=(1, 2)) >>> minimizer 1 >>> res = optimize.brent(f, brack=(-1, 0.5, 2), full_output=True) >>> xmin, fval, iter, funcalls = res >>> f(xmin), fval (0.0, 0.0)