Usando scipy para minimizar uma função que também aceita parâmetros não variacionais
Eu quero usar oscipy.optimize
módulo para minimizar uma função. Digamos que minha função éf(x,a)
:
def f(x,a):
return a*x**2
Para um fixoa
, Eu quero minimizarf(x,a)
em relação ax
.
Comscipy
Eu posso importar, por exemplo, ofmin
(eu tenho um velho scipy: v.0.9.0), forneça um valor inicialx0
e otimizar (documentação):
from scipy.optimize import fmin
x0 = [1]
xopt = fmin(f, x0, xtol=1e-8)
que falha porquef
leva dois argumentos efmin
está passando apenas um (na verdade, eu nem definia
ainda). Se eu fizer:
from scipy.optimize import fmin
x0 = [1]
a = 1
xopt = fmin(f(x,a), x0, xtol=1e-8)
o cálculo também falhará porque "x não está definido". No entanto, se eu definirx
então não há parâmetro variacional para otimizar.
Como permito que parâmetros não variacionais sejam usados como argumentos de função aqui?