objectif
Minimiser une fonction lisse avec BFGS.
code minimal
import numpy as np
from scipy.optimize import minimize
def f(v): x,y = v; return (x-1)**2 + (y+2)**2
res = minimize(f, x0=[0.0,0.0], method="BFGS")
print(res.success)
utilisation
from scipy.optimize import minimize
def f(v): x,y=v; return (x**2)+(y**2)
print(minimize(f, [1,1]).x.shape[0])
variante(s) utile(s)
from scipy.optimize import minimize
def f(v): return sum((v-3)**2)
print(minimize(f, [0.0]).success)
notes
- Fournir gradient (
jac) pour accélérer quand possible.