font_size=100
我正在定义这个voigt模型函数以适应曲线,但我收到一条错误,指出“提供的函数不返回有效的浮点数”。以下是拟合例程,然后是错误。任何人都可以帮助找到错误?提前致谢
def voigt_PD(x,y0,xc,A,wG,wL):
def integconvo(t,x1,xc1,wG1,wL1):
return exp(-t**2)/((sqrt(log(2))*wL1/wG1)**2+ ((sqrt(4*log(2))*(x1- xc1)/wG1)-t)**2)
return y0+(A*(2*log(2)/pi**1.5)*(wL/wG**2)* quad(integconvo,-inf,inf,args=(x,xc,wG,wL)))
然后它给出了
import pylab
from lmfit import Model
from readdatafile import readdatafile
from voigt_PD import voigt_PD
X,Y = readdatafile('data.dat')
gmod = Model(voigt_PD)
result = gmod.fit(Y, x=X,y0=0,xc=0,A=0.1,wG=0.5,wL=0.5)
print(result.fit_report())
pylab.plot(X, Y, 'bo')
pylab.plot(X, result.best_fit, 'r-')
pylab.show()