对于GnuPlot中k>;2的gamma函数,如何绘制值为1的gamma CDF?当k>;=2,gamma(k)<;1,并且由于igamma(k,x/theta)在[0,1](在gnuplot中)中,所以CDF公式的限制是gamma(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"
根据
help igamma
,gnuplot实现了规范化的不完全伽马函数,对于大x,unnormalized版本接近于该极限下的gamma函数的值。在幸运的是,撤销规范化很容易:
相关问题 更多 >
编程相关推荐