【发布时间】:2017-02-22 09:42:53
【问题描述】:
我有以下“分数”功能,意思是为某个测量给出介于 0 和 1 之间的分数,如下所示:
def func(x, a, b):
return 1.0/(1.0+np.exp(-b*(x-a)))
我想把它装到下面的 x 和 y 天:
x = np.array([4000, 2500, 2000, 1000, 500])
y = np.array([ 0.1, 0.3, 0.5, 0.7, 0.9])
但curve_fit 似乎不起作用:
popt, pcov = curve_fit(func, x, y)
当我尝试用线性函数 curve_fit 拟合它时,它给出了一个很好的拟合(在绿线中),但是上面的指数函数只给出了 a=1 和 b=1,这不是一个很好的拟合。一个好的拟合应该是a=1800 和b=-0.001667,这给出了红线(蓝色数据)。
【问题讨论】:
-
您能否提供更多代码,包括情节?这样别人就更容易提供帮助了。
标签: python scipy curve-fitting