[英]Lmfit uncertainties
我试图在lmfit上绘制一个复合函数,以获取具有来自在线数据背景的质谱直方图的峰值。 峰是高斯形式,背景是指数。 我已经能够获得一条曲线,该曲线很好地拟合了数据,但是不断出现错误“警告:不确定性无法估算”。 据我所知,我完全按照在线完成的方式来做,但是想知道是否有人有任何想法。 Lmfit似乎也没有调整我要输入的初始参数以匹配数据。 我已经找到了生成的图,错误和我的代码的图像。 终端错误
任何提示将是伟大的。 非常感谢
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
from lmfit import Model, Parameters, Minimizer
f = open("ups-15-small.bin", "r")
datalist= np.fromfile(f, dtype=np.float32)
#number of events
nevent = len(datalist)/6
xdata = np.split(datalist, nevent)
#make list of invarient mass events
x1 =[]
for i in range(0, int(nevent)):
x1.append(xdata[i][0])
xp1 = []
xpo1 = []
for i in range(len(x1)):
if x1[i] >= 9.150 and x1[i] <= 9.765:
xp1.append(x1[i])
if x1[i] >= 9.35 and x1[i] <= 9.55:
xpo1.append(x1[i])
def guas(x, mu, sigma, a):
guas = (a*(np.exp(-(x-mu)**2/(2*sigma**2))))
return guas
def exp(x, n, d):
exp = n * np.exp(-d*x)
return exp
yp1, xp1, _ = plt.hist(xp1, bins = 250, color = 'pink')
for i in range(len(yp1)):
if yp1[i] == np.amax(yp1):
mu = xp1[i]
mod = Model(exp) + Model(guas)
pars = mod.make_params(mu = mu, sigma = 0.0439, a = np.amax(yp1), n=234673,d=0.558476073)
result = mod.fit(yp1, params=pars, x=xp1[:-1])
print(result.fit_report())
plt.plot(xp1[:-1], result.best_fit)
plt.show()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.