Используя opt.root, я хочу хранить аргументы, с которыми вызывается функция.
import scipy.optimize as opt
x0=[0, 0]
prev_x=x0
count=0
def fun(x):
global prev_x,count
print('---')
print('iteration',count)
count+=1
print('last iteration',prev_x)
print('this iteration',x)
prev_x=x
return x[0]**2*x[1]+1,x[1]-x[0]+2
result=opt.root(fun,x0,method='lm')
Я ожидаю, что для каждого шага итерации значения, сохраненные в last_x, должны совпадать с текущим значением предыдущей итерации. Запустив приведенный выше код, я получаю разные значения, например. повторения 8 и 9.
Я упускаю что-то фундаментальное в поведении Python и/или SciPy, или это ошибка?
[править] Я сократил вопрос до сути.