使用Python查找最佳拟合参数

5

在得到这个直方图之后,我想将它与一个卡方分布拟合,其概率密度函数为:

enter image description here

其中beta是变量,d1和beta_zero是2个参数。

我的问题是:如何使用Python找到最佳拟合参数来拟合直方图?

更新:我知道需要使用scipy.optimize中的curve_fit。我的xdatamatrix_beta,它是一个矩阵形式,其元素是beta。然后我定义一个函数func(beta,beta_zero,d1),就像公式中一样。那么如何处理ydata


说实话,拥有你可能需要的一切,但将它们设置为默认值:def histogram(something, another_something, different = True)...这样你就可以依靠默认值,如果你不需要任何东西。 - Zizouz212
1个回答

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接