2

我尝试用 gnuplot 绘制轨道速度,但不知何故 gnuplot 得到的结果与我完全不同。现在根据经验,我认为我的值是正确的,但我用谷歌的计算器检查了它并得到了我的结果。

我使用维基百科的公式,谷歌在远点处的速度约为 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,MR使用常量值和x100000 并获得上面链接的结果。

4

1 回答 1

3

这个问题与 gnuplot 在进行算术运算时如何处理整数有关。1/(90000 + R)当你有一个像, if是一个整数的表达式时R,gnuplot 会计算1/(690000) = 0,这是完全有效的整数算术。解决方案是为数字添加句点,以便 gnuplot 知道将其转换为浮点数:

R = 600000.     # short option
R = 600000.0    # clearer option

另一种解决方案是对大数字使用电子符号:

R = 6e5

Gnuplot 将其视为浮点数。这也有助于防止数量级/零数错误。

顺便说一句,python 和其他语言在整数运算方面也有同样的问题——当心!

于 2013-11-11T20:42:10.730 回答