这个问题更多地是关于如何从数字上解决问题。
在一个小项目中,我想模拟Janus和Epimetheus的轨道运动。这基本上是一个三体问题。我选择土星固定在原点,令和分别是janus和epimetheus的位置向量。由于这种效果是在Janus和Epimetheus靠得很近时发生的,因此我选择了相对坐标以获得更好的分辨率,即和。现在,我得到以下运动方程:
其中对应于卫星的质量,是土星的质量,是引力常数。当我尝试以数值方式解决此问题时,就会出现问题。必须处理完全不同的大小的值,即和。并且,在0到150,000的范围内。
老实说,我不确定这是否是讨论此类数字问题的论坛。
更多信息:
代码是用Matlab编写的,我使用标准的ODE求解器来获取结果。但是,由于无法在机器精度下减小步长,因此这种方法正在崩溃。(我发现这并不奇怪,因为必须处理已经提到的数量级)。
2
您是否以SI单位运行此仿真?至少,应将所有内容除以G * m_ {2}的某个因子
,以便可以消除几个数量级。
您必须将质量单位设置为月球的质量之一,并且将长度/时间单位设置为1。如果写得好,任何东西都不应小于1/100。无需非处方药求解器。编写代码以自己完成此操作,并在此控制步进大小。在冲突时可能会发生具有这些类型电位的逐步分解,在这种情况下,求解器将尝试减小逐步分解直到收敛为止,而在冲突时则没有收敛。您需要确保轨道不是共线的,因此需要查看模拟。您无法原样获得答案。
—
罗恩·迈蒙
您使用什么标准的ODE求解器?
—
Geoff Oxberry 2012年