因此,我定义了一个高斯分布,后来将其拟合到数据点。我是这样定义的:
def高斯(x,a,x0,sigma): 返回一个* np.exp(-(x-x0) 2 /(2 * sigma 2))
popt,pcov = curve_fit(Gauss,x,y,p0 = [max(y),平均值,sigma])
当我要求打印popt时,(如预期的那样)我得到一个矩阵,该矩阵首先给我最大的y值,然后是均值,最后是高斯的sigma。现在,我想知道这些值的误差,所以我想知道我的高斯拟合误差。我以为我可以从pcov(协方差矩阵)中检索错误,但是当要求打印pcov时,我得到了3X3矩阵。那么,如何从该矩阵中找到适合我的误差?
答案 0 :(得分:1)
来自https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.curve_fit.html:
从线性代数我们知道参数的误差是协方差矩阵的诊断项的平方根。因此,对于第二个参数,您将转到矩阵位置1,然后取平方根。那是该参数的错误。