繁体   English   中英

Lmfit不确定性

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM