Я работаю с scipy.optimize.minimize, и я оптимизацией 3 параметров с функцией как этогоscipy.optimize.minimize отслеживать целевую функцию
def foo(A,x,y,z):
test = my_function(A[0],A[1],A[2],x,y,z) return test
В этом ответе я финансировать некоторое представление How to display progress of scipy.optimize function? поэтому я вышел с этой функцией:
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
так что мой код будет выглядеть следующим образом
Optimal = minimize(fun=foo, x0=[fi, alfa, Ks ] , args=(x,y,z), method='BFGS', callback=callbackF , tol=1e-2)
, но я получаю эту ошибку:
TypeError: callbackF() takes exactly 4 arguments (1 given)
Я понимаю ошибку, но как я должен избежать?