Se você puder escrever um comando que possa calcular a função de que precisa, então está pronto:
gnuplot> f(x) = real(system(sprintf("echo %f", x)))
gnuplot> plot f(x)
(veja help system
)
Você pode usar, por exemplo, oitava para calcular seu valor. Por exemplo, se o seu sistema for linux, você pode ter diretamente:
gnuplot> bJ(a,x) = real(system(sprintf("echo 'besselj(%f,%f)' | octave | grep ^ans | cut -f 2 -d =", a,x)))
gnuplot> plot [0:20] bJ(1,x)
Demorará algum tempo a correr! Defina o valor sample
para algo baixo até definir todos os detalhes do seu gráfico. Se precisar de replantar muitas vezes, você também pode tabular sua função primeiro usando set term table
e, em seguida, plotar os valores tabulados.