我尝试用gnuplot绘制轨道速度,但不知何故gnuplot得到的结果与我完全不同。现在根据经验,我认为我的价值观是正确的,但是我使用Google的计算器检查了结果。
我使用Wikipedia和Google gets a velocity at apoapsis of about 2.2 km/s中的公式。现在gnuplot本身的速度约为3.2 km / s。
set xlabel "Altitude above sea level (meters)"
set ylabel "Orbital velocity (meters per second)"
set title "Velocity of an 80×100 km orbit around Kebrin"
set terminal png size 800,640
set output "orbitv.png"
set xrange [80000:100000]
G=6.674*10**-11
M=5.2915793*10**22
R=600000
plot sqrt(G*M*(2/(x+R)-1/(90000+R))) title 'Orbital velocity' with lines
我想知道我犯了错误吗?我将公式直接复制到Google,并将G
,M
和R
替换为常量值,将x
替换为100000,并将结果链接到上面。
答案 0 :(得分:3)
这个问题与gnuplot在进行算术时如何处理整数有关。如果有1/(90000 + R)
之类的表达式,如果R
是整数,则gnuplot会计算1/(690000) = 0
,这是完全有效的整数运算。解决方案是在数字中添加一个句点,以便gnuplot知道将其转换为浮点数:
R = 600000. # short option
R = 600000.0 # clearer option
另一个解决方案是对大数字使用电子记数法:
R = 6e5
Gnuplot将其视为浮动。这也有助于防止数量级/零数错误。
顺便说一句,python和其他语言在整数运算方面有同样的问题 - 小心!