幂律的定义是A *(x-D)^ B + C。数学上。在这种情况下,我希望幂律的奇点为零。
def powerlaw(x,a,b,c):
return a*x**b+c
xdat=np.arange(len(USAarr))
ydat0=np.sort(USAarr[:,0])
ydat=ydat0[::-1]
par=[1.,1.,1.,1.]
p0=par
par,pvar=curve_fit(powerlaw,xdat,ydat)
p=figure(height=400,width=400,title="Power law fit to v/c histogram",\
x_axis_label="v/c", y_axis_label="ratio of counts")
p.vbar(x=index, width=0.5, bottom=0, top=ydat, color='cyan',\
legend='v/c data')
p.line(index, powerlaw(index,par[0],par[1],par[2]),color='black',\
legend='power law fit')
output_notebook()
show(p)
par=array([-0.1001773 , 0.16004007, 0.44202822])
此幂定律拟合是对我的数据的两个极好的拟合之一(基于bokeh的图形描述),但是输出参数错误。对于在正象限中具有正偏移的递减指数,根据定义,a> 0,b <0,c> 0。但这不是我在这里获得的。
是否有任何python专家知道curve_fit
或bokeh
可能出什么问题?