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 这将被视为浮点数。一般来说,最好将所有常量都写成浮点数,除非你绝对确定你想要整数运算。
绘制下面的方程式时,我得到了一个错误的图表。 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 这将被视为浮点数。一般来说,最好将所有常量都写成浮点数,除非你绝对确定你想要整数运算。