gamma分布相加,gamma分布乘以一个常数
我在做谢克特光度函数,如下图。
phi(l)dl=范数因子*(d(l/lstar)^(a))(exp)d(l/lstar)d(l/lstar)))))))
L/Lstar说是LL。
其累积分布函数的解析解由函数给出,N=范数因子*(a1,1)。
这是一个不完整的伽玛函数。因为积分的极限是从L到无穷大。
现在,我正在尝试在Python上画cdf。我用了以下的东西。
将scipy.special作为ss导入
si=[ss.gammaInc(a1,l(I ) ]forIina ) #CDF
(其中l [I]是我用随机数做的数组)
结果之和是1,看起来像cdf。不过,我现在想随机化一下。所以设置为由cdf=随机数(Python)统一生成,而不是cdf=1。))现在,如果你想创建count和L的直方图并随机采样,你需要反转gamma函数。
我的问题是howdoInvertTheGammaFunctionInPython?
这是我现在拥有的:
u=[ random.uniform (0,1 ) for i in a]
L=[ss.gammaincinv(a1,u[i] ) for i in a]
PLT.plot(L,u,.)
plt.show())
PLT.hist(l,bins=50,rwidth=1.5,histtype=step ,lw=0.7,normed=True,range=(-0.5,1))
plt.show())
编译器没有抱怨,直方图的形式不对。我觉得应该把cdf的随机采样直方图还原成PDF的形式。
我到底做了什么?显然,scipy的不完全伽马函数的版本是“正则化的”,意味着它被完全伽马函数除。因此,即使我乘以Inc(1,u [I]) a1)
轴将按比例缩放。
你有什么建议?
结论:用随机抽样法建立谢克特光度函数cdf直方图是必要的。