我想在相同的图中绘制Hermite多项式,而不必使用循环逐个输入它们。我尝试过这样的事情:
H0(x) = 1
H1(x) = 2*x
H2(x) = 4*x*x-2
H3(x) = 8*x**3-12*x
H4(x) = 16*x**4-48*x**2+12
H5(x) = 32*x**5-160*x**3+120*x
plot for[i=0:5] H.i(x)
但它不起作用,它会说:undefined variable: H
。我已经看到变量i
可以用作字符串,但我无法找到在调用函数时是否有办法将其用作字符串。
答案 0 :(得分:3)
尝试不同的方法,包括索引i
作为函数的参数:
H(i,x) = (i == 0 ? 1 : \
i == 1 ? 2*x : \
i == 2 ? 4*x*x-2 : \
i == 3 ? 8*x**3-12*x : \
i == 4 ? 16*x**4-48*x**2+12 : \
i == 5 ? 32*x**5-160*x**3+120*x : 1/0)
plot for[i=0:5] H(i,x)
答案 1 :(得分:0)
可以改善
set term wxt persist
set xrange[-1:1]
H(i,x) = (i == 0 ? 1 : \
i == 1 ? 2*x : \
i == 2 ? 4*x*x-2 : \
i == 3 ? 8*x**3-12*x : \
i == 4 ? 16*x**4-48*x**2+12 : \
i == 5 ? 32*x**5-160*x**3+120*x : 1/0)
plot for[i=0:5] H(i,x) title sprintf("H(").sprintf('%d',i).sprintf(",x)")