在绘制下面的等式时,我得到了错误的图表。 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
有人可以重现这个问题并帮助我吗?
提前致谢
答案 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将其视为浮点数。通常,将所有常量编写为浮点数通常更好,除非您绝对确定要进行整数运算。