Scipy curve_fit无法为LED数据找到最优拟合参数求助
高斯拟合LED数据时588nm和611nm组拟合失败问题
我使用scipy的curve_fit工具对5组LED数据执行高斯拟合,其中472nm、505nm、525nm三组数据拟合正常,但588nm和611nm的两组数据持续报错。已尝试调整初始参数、增大maxfev值、简化高斯函数(移除d和f相关的线性项与常数项),均未解决问题,报错信息如下:
RuntimeError: Optimal parameters not found: Number of calls to function has reached maxfev = 1200
相关代码:
error472 = data472y ** 0.5 error505 = data505y ** 0.5 error525 = data525y ** 0.5 error588 = data588y ** 0.5 error611 = data611y ** 0.5 def GausFunc(x,a,b,c,d,f): return(a*np.exp(-(x-b)**2 / (2*c**2))+(d*x)+f) popt472, pcov472 = curve_fit(GausFunc, data472x, data472y, [0.8,470,50,-10,6], error472, True) popt505, pcov505 = curve_fit(GausFunc, data505x, data505y, [0.8,470,50,-10,6], error505, True) popt525, pcov525 = curve_fit(GausFunc, data525x, data525y, [0.8,470,50,-10,6], error525, True) popt588, pcov588 = curve_fit(GausFunc, data588x, data588y, [0.387,589,5,1,1], error588, True) #popt611, pcov611 = curve_fit(GausFunc, data611x, data611y, [0.8,470,50,-10,6], error611, True)
附588nm组异常数据的拟合图像:
内容的提问来源于stack exchange,提问作者retro-rocket
相关产品推荐
相关产品推荐

