gnuplot 中有 prod() 运算符吗?

Is there in prod() operator in gnuplot?

我是 gnuplot 的初学者,我正在尝试使用 gnuplot 绘制以下函数:

f(x) = sum[i=0:x](Pi[j=0:i](x+j-3))

这里的 Pi 是指乘积运算符:

Pi[j=0:i](x+j-3) = (x+0-3)*(x+1-3)...(x+i-3)

如何为 Pi 部分编写 gnuplot 脚本?

您可以按照此 中的方法使用外部函数,在本例中为 Python。创建外部文件 function.py:

import sys
x=float(sys.argv[1])
i=int(sys.argv[2])

p = 1
for j in range(0,i+1):
    p *= x + j - 3

print p

现在在 gnuplot 中您可以定义以下乘积和求和函数:

prod(x,i) = real(system(sprintf("python function.py %g %i", x, i)))

f(x) = sum[i=0:int(x)](prod(x,i))

plot[0:3] f(x)

请注意,x 必须是整数才能用于定义求和的限制。另请注意,调用外部函数非常慢。

如果我没有出错你可以使用递归函数:

prod(x,n,m) = (n<0) ? 1 : (x+n+m) * prod(x,n-1,m)
f(x) = sum[i=0:int(x)](prod(x,i,-3))
plot [0:3] f(x)