scipy的curve_fit会生成错误的值

时间:2015-03-11 22:26:33

标签: python curve-fitting

我有几个测量数据,我想把自己的功能放到这个数据上。为此,我想使用curve_fit。因此我通过以下方式实现它:

def func(self, w, H, T, L):
    B = (L + 0.25)*((2 * math.pi / T)** 4)
    S = (B**L)*H*H / (4 * scipy.special.gamma(L)*(w**( 4 * L + 1)))*numpy.exp(-B / (w*w*w*w))
    return S

def fit_this(self):
    self.popt, self.copt = curve_fit(self.func, self.xdata, self.ydata)
    print self.popt
    print self.copt

self.xdataself.ydata包含我的测量值。我已经在另一个程序(matlab)中使用相同的函数进行了拟合,因此我已经知道了工作参数。但是当启动这个程序时,我得到popt绝对错误的参数,并且值的协方差在10e+22的范围内,因此完全没用。为什么会发生这种情况(猜测:错误的起始值),我该如何改善这种情况?如果提供我的数据也有助于我提供它们。

0 个答案:

没有答案