scipy.optimize.curve U拟合优化警告

2024-10-04 11:29:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用高斯曲线和洛伦兹曲线拟合一组共振数据,但是scipy.optimize.curve U拟合函数返回错误“OptimizeWarning:无法估计参数的协方差”。我需要参数的协方差来计算拟合中的误差-有什么办法可以消除它吗?在

我的代码是:

popt1,pcov1 = opt.curve_fit(gaussianfit, E, I, p0=[E0,I0,sigma])
errorp1 = (pcov1)**0.5 
print 'error in gaussian fit =', errorp1 
plt.plot(E, gaussianfit(E,*popt1), '-', label='Gaussian Fit') 

popt2,pcov2 = opt.curve_fit(lorentzfit, E, I, p0=[E0,I0,gamma])
errorp2 = (pcov2)**0.5 
print 'error in combined fit =', errorp2 
plt.plot(E, lorentzfit(E,*popt2),'-', label='Lorentzian Fit') 

#plot gaussian and lorentzian fits combined
errorp = (pcov1 + pcov2)**0.5 
print 'error in lorentzian fit =', errorp #print error
plt.plot(E, (gaussianfit(E,*popt1) + lorentzfit(E,*popt2))/2, '-', `label='Combined fit')

谢谢你的帮助!:)


Tags: in参数plotplterrorlabelfitprint