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)
我是 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 脚本?
您可以按照此 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)