Gnuplot 绘制方程图错误?

Gnuplot plots graph of equation wrong?

绘制下面的方程式时,我得到了一个错误的图表。 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

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

提前致谢

你的函数定义

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 这将被视为浮点数。一般来说,最好将所有常量都写成浮点数,除非你绝对确定你想要整数运算。