如何使用 gnuplot 中未内置的数学函数

如何使用 gnuplot 中未内置的数学函数

我一直认为gnuplot它非常有用,自从我tikz在 L A T E X 文档中使用以来,它就变得更加有用。不幸的是,核心实现函数的数量gnuplot非常少,我经常需要特殊函数,如修改后的贝塞尔函数 K ν和 I ν。这些函数不能使用 gnuplot 中现有的函数来编写。有没有办法将 gnuplot 和gsl库绑定在一起?我一直在浏览gnuplotting.org以及其他专门讨论gnuplotbu 的网站,我没有找到有关此问题的任何信息。如果有人有线索,我将不胜感激。

答案1

如果你能编写一个可以计算你需要的函数的命令,那么你就完成了:

gnuplot> f(x) = real(system(sprintf("echo %f", x)))
gnuplot> plot f(x)

(看help system

因此,您可以使用 octave 等来计算您的值。例如,如果您的系统是 Linux,则可以直接使用:

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)

不过,运行起来需要一些时间!将值设置sample为较低的值,直到您设置好绘图的每个细节。如果您需要多次重新绘图,您也可以先使用制表符将函数制成表格set term table,然后绘制制表值。

相关内容