Подбор кривой глобального минимума SciPy

Я использую scipy.optimize.curve_fit , но подозреваю, что он сходится с локальным минимум, а не глобальный минимум.

Я пробовал использовать имитацию отжига следующим образом:

def fit(params):
 return np.sum((ydata - specf(xdata,*params))**2)

p = scipy.optimize.anneal(fit,[1000,1E-10])

где specf - кривая, которую я пытаюсь подогнать. Результаты в p явно хуже, чем минимум, возвращаемый curve_fit , даже когда возвращаемое значение указывает, что глобальный минимум был достигнут ( см. Отжиг ).

Как я могу улучшить результаты? Есть ли в SciPy средство для установки глобальной кривой?

6
задан eat 22 March 2011 в 06:58
поделиться