Ich bin mit scipy.optimize.minimize zu arbeiten, und ich bin zu optimieren 3 Parameter mit einer Funktion wie diesescipy.optimize.minimize Spur der objektiven Funktion halten
def foo(A,x,y,z):
test = my_function(A[0],A[1],A[2],x,y,z) return test
In dieser Antwort finanziere ich einen kleinen Einblick How to display progress of scipy.optimize function? so kam ich mit dieser Funktion aus:
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
so wird mein Code aussehen diese
Optimal = minimize(fun=foo, x0=[fi, alfa, Ks ] , args=(x,y,z), method='BFGS', callback=callbackF , tol=1e-2)
aber ich bekomme diese Fehlermeldung:
TypeError: callbackF() takes exactly 4 arguments (1 given)
ich den Fehler verstehen, aber wie soll ich es vermeiden?