数值:如何重新规范以下ODE
这个问题更多地是关于如何从数字上解决问题。 在一个小项目中,我想模拟Janus和Epimetheus的轨道运动。这基本上是一个三体问题。我选择土星固定在原点,令和分别是janus和epimetheus的位置向量。由于这种效果是在Janus和Epimetheus靠得很近时发生的,因此我选择了相对坐标以获得更好的分辨率,即和。现在,我得到以下运动方程:r1r1r_1r2r2r_2r=r1−r2r=r1−r2r=r_1-r_2R=r1+r2R=r1+r2R=r_1+r_2 d2dt2(Rr)=−G(m2±m1)RR3−4MG(r+R(r+R)3∓r−R(r−R)3)d2dt2(Rr)=−G(m2±m1)RR3−4MG(r+R(r+R)3∓r−R(r−R)3) \frac {d^2}{dt^2} \binom{R}{r} = - G (m_2\pm m_1) \frac R {R^3} - 4 M G \left(\frac {r+R}{(r+R)^3} \mp \frac {r-R}{(r-R)^3}\right ) 其中mimim_i对应于卫星的质量,MMM是土星的质量,GGG是引力常数。当我尝试以数值方式解决此问题时,就会出现问题。必须处理完全不同的大小的值,即M∼e28M∼e28M \sim e^{28}和mi∼e17mi∼e17m_i \sim e^{17}。并且rrr,RRR在0到150,000的范围内。 老实说,我不确定这是否是讨论此类数字问题的论坛。 更多信息: 代码是用Matlab编写的,我使用标准的ODE求解器来获取结果。但是,由于无法在机器精度下减小步长,因此这种方法正在崩溃。(我发现这并不奇怪,因为必须处理已经提到的数量级)。