我已经为围绕太阳的行星运动生成了一个解决方案(放置在参考框架中心)。我想测试我使用的方法的错误会得到什么(Runge Kutta 有 4 个阶段,以半长轴和太阳质量作为距离和质量单位,并评估时间单位以便获得) 通过使用理查森外推法对其进行评估,如此处所述,特别使用轨道的近日点。我懂了
我实际上做的是这个(我正在使用matlab)
p = 4
r_001 = radius(J_001,1);
r_002 = radius(J_002,1);
pers_001 = r_001(islocalmin(r_001));
pers_002 = r_002(islocalmin(r_002));
T_pers = (pers_002 - pers_001)./(2^(p+1) - 1);
figure;plot(1:length(T_pers),T_pers)
grid on
r_001
r_002
是行星的位置向量,分别用 和 计算,其中使用h/2
的时间步长为h
h
和. pers_001
并pers_002
取两个不同位置向量中存在的近日点位置。T_pers
是每个近日点的截断误差,如上图所示。如果我查看错误的顺序,这个结果对我来说似乎很好,但是“调制尖峰的东西”是我没想到的,可能是什么原因?我的意思是我认为该方法的代码没有错,因为近日点位置的一般振荡是有序的,如下图所示
编辑
@Lutz Lehmann,是的,我使用的方程式正是您所写的,分子中也只有太阳质量,但无论如何它都非常接近。另外我正在考虑三个维度,所以例如我使用. 我试图通过改变来验证会发生什么,我实际上得到了这个(截断错误)
最后一张图片与截断错误的前一张相同,但子图有点破坏了细节。它似乎实际上与混叠有关,因为效果的幅度随着. 因此,出于某种原因,我定期对近日点有一个“坏”的近似值(关于其他估计)。