Gnuplot绘制方程图错了吗?

时间:2017-12-10 23:44:12

标签: gnuplot equation

在绘制下面的等式时,我得到了错误的图表。 Wolfram alpha和我的计算器在x = 112.77处通过f(x)= 0看到交叉点。 Gnuplot显示在约115.8~116

#!/usr/bin/gnuplot

#Ranges
set xrange [112:116]
set yrange [-0.5:0.5]
set samples 10000

#Special drawings
f(x) =   (101300-1.225/2*x**2) *0.0167*x /((288.15-1/(2*1005)*x**2)*287)-2.1774


plot f(x) title "f(v)" with lines ls 1

pause -1

有人可以重现这个问题并帮助我吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

您的功能定义

f(x) =   (101300-1.225/2*x**2) *0.0167*x /((288.15-1/(2*1005)*x**2)*287)-2.1774

包含术语1/(2*1005)。此表达式中的所有数字都是整数,因此gnuplot使用整数运算,其中1/2010 = 0.您必须将这些数字中的至少一个转换为浮点数,以便获得预期的行为,例如

f(x) =   (101300-1.225/2*x**2) *0.0167*x /((288.15-1./(2*1005)*x**2)*287)-2.1774

请注意,我将1替换为1.,它告诉gnuplot将其视为浮点数。通常,将所有常量编写为浮点数通常更好,除非您绝对确定要进行整数运算。