在gnuplot中绘制x函数的阶乘因子?

时间:2013-09-04 05:04:05

标签: graph plot gnuplot

我正在尝试在gnuplot中绘制 x! 函数,我首先定义了阶乘函数然后调用它,但是我总是得到堆栈溢出,无论边界是什么我设置了图表。

这是我尝试过的:

gnuplot>  fac(n) = (n==0) ? 1 : n * fac(n-1)  
gnuplot> plot [0:10][0:10] log(fac(x)), log(x**x)  
stack overflow

2 个答案:

答案 0 :(得分:9)

另一个灵魂就是使用Gamma function(gnuplot中的内在函数)。

  

N!=-γ(N + 1)

gnuplot> plot [0:10][0:10] log(gamma(x+1)), log(x**x)

答案 1 :(得分:8)

我应该将fac函数定义为整数。否则,当沿x轴绘制时,它将评估一长串实数,实际上是一个巨大的实数,这将导致溢出。

因此,应该定义函数:

fac(x) = (int(x)==0) ? 1.0 : int(x) * fac(int(x)-1.0)