这是一个可以通过分析来解决的问题,但作为一个数学/统计学的讨论也许更合适。例如,请参见(在许多来源中):
拟合误差可以用解析法计算。重要的是要注意的是,在计算测量误差时,拟合本身是不同的。在
在python中,我不确定是否有一个内置函数来处理错误,但下面是一个使用scipy.optimize.fmin在#Calculate Chi^2 function to minimize
def chi_2(params,x,y,sigy):
m,c=params
return sum(((y-m*x-c)/sigy)**2)
data_in=(x,y,dy)
params0=[1,0]
q=fmin(chi_2,params0,args=data_in)
为了比较,我用了这个,你的polyfit解,和解析解,并为你给出的数据绘制了图。在
给定技术参数的结果:
加权卡方与fmin:
m=1.94609996
b=2.1312239
分析型:
m=1.94609929078014
b=2.1312056737588647
Polyfit公司:
m=1.91
b=2.15
以下是完整代码:
^{pr2}$