我尝试使用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)
和 Error=[ErP,ErM](2 列)