在GnuPlot中,对于k>2的伽马函数,你如何绘制伽玛函数的值达到1?当k,>= 2,γ(K)<1时,由于igamma(k,x/ theta)在0,1中,你的CDF公式极限是γ(K)。它给了我一个这样的情节

所使用的代码如下:
set grid
set yrange[0:*]
gamma1_pdf(x, k, theta) = (1 / (gamma(k)*theta**k))*x**(k-1)*exp(-(x / theta))
gamma1_cdf(x, k, theta) = (1 / gamma(k))*igamma(k, (x / theta))
set term windows 0
plot gamma1_cdf(x, 1.0, 2.0) lc rgb "red", \
gamma1_cdf(x, 2.0, 2.0) lc rgb "orange", \
gamma1_cdf(x, 3.0, 2.0) lc rgb "yellow", \
gamma1_cdf(x, 7.5, 1.0) lc rgb "black"
set term windows 1
plot gamma1_pdf(x, 1.0, 2.0) lc rgb "red", \
gamma1_pdf(x, 2.0, 2.0) lc rgb "orange", \
gamma1_pdf(x, 3.0, 2.0) lc rgb "yellow", \
gamma1_pdf(x, 7.5, 1.0) lc rgb "black"发布于 2018-07-17 16:55:00
根据help igamma的说法,Ggnu图实现了标准化的不完全伽马函数,对于较大的x接近1,而未归一化版本则在这个限制下接近gamma函数的值。
幸运的是,很容易撤消规范化:
set xrange [0:30]
igamma2(a,x) = igamma(a,x)*gamma(a) # unnormalized incoplete gamma function
gamma1_cdf(x, k, theta) = (1 / gamma(k))*igamma2(k, (x / theta))
plot gamma1_cdf(x, 1.0, 2.0) lc rgb "red", \
gamma1_cdf(x, 2.0, 2.0) lc rgb "orange", \
gamma1_cdf(x, 3.0, 2.0) lc rgb "yellow", \
gamma1_cdf(x, 7.5, 1.0) lc rgb "black"

https://stackoverflow.com/questions/51376899
复制相似问题