Je travaille avec scipy.optimize.minimize, et je l'optimisation de 3 paramètres avec une fonction comme celui-ciscipy.optimize.minimize garder une trace de la fonction objectif
def foo(A,x,y,z):
test = my_function(A[0],A[1],A[2],x,y,z) return test
Dans cette réponse je finance un aperçu How to display progress of scipy.optimize function? donc je suis sorti avec cette fonction:
def callbackF(Xi,x,y,z)
global Nfeval
print '{0:4d} {1: 3.6f} {2: 3.6f} {3: 3.6f} {4: 3.6f}'.format(Nfeval, Xi[0], Xi[1], Xi[2], foo(Xi , x,y,z))
Nfeval += 1
donc mon code ressemblera à ceci
Optimal = minimize(fun=foo, x0=[fi, alfa, Ks ] , args=(x,y,z), method='BFGS', callback=callbackF , tol=1e-2)
mais je reçois cette erreur:
TypeError: callbackF() takes exactly 4 arguments (1 given)
Je comprends l'erreur, mais comment dois-je éviter?