В следующем коде я получаю ошибку,
OptimizeWarning: Covariance of the parameters could not be estimated category=OptimizeWarning)
Когда я печатал параметры функции подгонки, они имеют очень высокие значения.Почему это так?Что-то не так в моих вычислениях?
Я прочитал, что ковариация включает в себя степени свободы, которые вычисляются как (количество точек данных) - (количество параметров).Так что в моем моем примере они 3-3=0
.Если я выберу еще одну точку данных, стоит ли ожидать, что я смогу избавиться от предупреждения оптимизации и смогу получить приемлемые значения (подходящих параметров)?
`def ff(L,a,v,Ec):
return (a*L**(-1.0/v)) + Ec
L = np.array([24,30,36])
x_data = np.array([0.04166667, 0.03333333, 0.02777778])
y_data = np.array([-1.98760064 ,-2.00285436 ,-1.99248578])
pfit,pcov = optimize.curve_fit(ff,x_data,y_data)
print("pfit: ",pfit) #pfit: [ -34.31918802 2433.91948081 32.37267407]
plt.scatter(x_data, y_data, marker='.')
plt.plot(x_data,ff(L,*pfit),color='blue')`