Python 拟合不确定性
我试图在lmfit上绘制一个复合函数,以从在线数据中获得具有背景的质谱直方图的峰值。峰值为高斯形式,背景为指数形式。我已经能够得到一条曲线,很好地拟合数据,但不断得到错误“警告:不确定性无法估计”。据我所知,我完全是按照网上的方式做的,但我想知道是否有人有任何想法。 Lmfit似乎也没有调整我输入的初始参数来匹配数据。 我已经附上了产生的情节,错误和我的代码的图像 任何提示都很好。非常感谢Python 拟合不确定性,python,lmfit,Python,Lmfit,我试图在lmfit上绘制一个复合函数,以从在线数据中获得具有背景的质谱直方图的峰值。峰值为高斯形式,背景为指数形式。我已经能够得到一条曲线,很好地拟合数据,但不断得到错误“警告:不确定性无法估计”。据我所知,我完全是按照网上的方式做的,但我想知道是否有人有任何想法。 Lmfit似乎也没有调整我输入的初始参数来匹配数据。 我已经附上了产生的情节,错误和我的代码的图像 任何提示都很好。非常感谢 import numpy as np import matplotlib.pyplot a
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()
将numpy导入为np
将matplotlib.pyplot作为plt导入
从scipy.optimize导入曲线\u拟合
从lmfit导入模型、参数、最小化
f=打开(“ups-15-小箱子”,“r”)
datalist=np.fromfile(f,dtype=np.float32)
#活动次数
nevent=len(数据列表)/6
扩展数据=np.split(数据列表,nevent)
#列出不变质量事件
x1=[]
对于范围(0,int(nevent))中的i:
x1.追加(扩展数据[i][0])
xp1=[]
xpo1=[]
对于范围内的i(len(x1)):
如果x1[i]>=9.150和x1[i]=9.35以及x1[i],请不要将错误消息作为图像发布。直接将它们作为文本发布在这里。此外,我们不知道您的输入是什么。请提供再现您的问题的玩具数据集。