← retour aux snippets

scipy.optimize: minimize (BFGS)

Minimiser une fonction lisse avec BFGS.

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.