获得此直方图后,
我想用卡方分布拟合它,其pdf是:
其中beta是可变的,d1和beta_zero是2个参数。
我的问题是:如何使用Python直方图找到最合适的参数?
更新:我知道我需要在curve_fit
中使用scipy.optimize
。我的xdata
是matrix_beta
,其形式为矩阵,其元素为beta。然后我在公式中定义一个函数func(beta,beta_zero,d1)
。那么如何继续ydata
?
答案 0 :(得分:1)
您可以使用示例包scipy,如下所示:
import numpy,math
import scipy.optimize as optimization import
matplotlib.pyplot as plt
xdata = numpy.array([0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5])#your x coordinate
ydata = numpy.array([25.,40.,22.,12.,8.,3.,1.,1.,0.0,0.0])#your y coordinates
x0 = numpy.array([0.0, 0.0])
sigma = numpy.array([1.0,1.0,1.0,1.0,1.0,1.0])#your errors, e.g. sqrt()
def func(d1, Bo):
return d1*Bo #definition of your function
print optimization.curve_fit(func, xdata, ydata, x0, sigma) #result
您可以在此处查看更多信息http://python4mpia.github.io/fitting_data/least-squares-fitting.html