を使用して関数をデータに適合させようとしていますscipy.optimize.curvefit
。
Q=optimization.curve_fit(func,X,Y, x0,ERR)
そしてそれはうまくいきます。
しかし、今私は非対称エラーを使用しようとしていますが、それを行う方法がわかりません。
3+-0.5
非対称エラーとは、エラーがたとえばではないことを意味します3 +0.6 -0.2
。そのため、ERR は 2 列の配列です。
誰かがそれを行う方法を知っていれば素晴らしいと思います-または、それを行うことができる別の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)
And Error=[ErP,ErM] (2列)