我试图使用scipy.optimize.curvefit
将函数拟合到我的数据中。
Q=optimization.curve_fit(func,X,Y, x0,ERR)
它很好用。
然而,现在我正在尝试使用不对称误差,但我不知道如何做到这一点 - 或者是否可能。
通过不对称误差,我的意思是误差不是例如:3+-0.5
而是 3 +0.6 -0.2
。因此ERR是一个具有两列的数组。
如果有人有想法如何做到这一点 - 或者可以指向一个不同的Python例程,该例程可能能够实现它,那将是非常棒的。
这是我正在使用的代码片段 - 但我不确定它是否更清晰:
A=numpy.genfromtxt('WF.dat')
cc=A[:,4]
def func(A,a1,b1,c1):
N=numpy.zeros(len(x))
for i in range(len(x)):
N[i]=1.0*erf(a1*(A[i,1]-c1*A[i,0]**b1))
return N
x0 = numpy.array([2.5 , -0.07 ,-5.0])
Q=optimization.curve_fit(func,A,cc, x0, Error)
错误=[ErP,ErM](2列)
3 +0.6 -0.2
转换为3.2 +/- 0.4
吗? - Jaime