Usar scipy para minimizar una función que también toma parámetros no variacionales
Quiero usar elscipy.optimize
módulo para minimizar una función. Digamos que mi función esf(x,a)
:
def f(x,a):
return a*x**2
Para un fijoa
, Quiero minimizarf(x,a)
con respecto ax
.
Conscipy
Puedo importar por ejemplo elfmin
función (tengo un viejo scipy: v.0.9.0), dar un valor inicialx0
y luego optimizar (documentación):
from scipy.optimize import fmin
x0 = [1]
xopt = fmin(f, x0, xtol=1e-8)
que falla porquef
toma dos argumentos yfmin
está pasando solo uno (en realidad, ni siquiera he definidoa
todavía). Si lo hago:
from scipy.optimize import fmin
x0 = [1]
a = 1
xopt = fmin(f(x,a), x0, xtol=1e-8)
el cálculo también fallará porque "x no está definido". Sin embargo, si definox
entonces no hay un parámetro variacional para optimizar.
¿Cómo permito que se usen parámetros no variacionales como argumentos de función aquí?