Verwenden von scipy, um eine Funktion zu minimieren, die auch nicht variierende Parameter akzeptiert
Ich möchte das benutzenscipy.optimize
Modul zur Minimierung einer Funktion. Angenommen, meine Funktion istf(x,a)
:
def f(x,a):
return a*x**2
Für eine festea
Ich möchte minimierenf(x,a)
in Gedenken anx
.
Mitscipy
Ich kann zum Beispiel das importierenfmin
funktion (ich habe ein altes scipy: v.0.9.0), gebe einen initialen wert anx0
und dann optimieren (Dokumentation):
from scipy.optimize import fmin
x0 = [1]
xopt = fmin(f, x0, xtol=1e-8)
das scheitert daranf
nimmt zwei Argumente undfmin
Übergibt nur eine (eigentlich habe ich nicht einmal definierta
noch). Wenn ich mache:
from scipy.optimize import fmin
x0 = [1]
a = 1
xopt = fmin(f(x,a), x0, xtol=1e-8)
Die Berechnung schlägt auch fehl, weil "x nicht definiert ist". Allerdings wenn ich definierex
dann gibt es keinen zu optimierenden Variationsparameter.
Wie kann ich zulassen, dass nicht variierende Parameter hier als Funktionsargumente verwendet werden?