【发布时间】:2015-12-27 19:02:03
【问题描述】:
首先,我对 java 很陌生,抱歉。我正在尝试模拟地球绕太阳运行。绘制结果后,很明显地球在旋转一圈后就螺旋出轨道!
我已经检查并再次检查了常数,例如太阳和地球的质量以及初始速度和位置。我不确定我哪里出错了,同事和讲师也确认了方程式是正确的。
代码由 4 个类组成:
找到。
【问题讨论】:
-
最后一个类是向量类,我确定那里不存在错误。
-
问问自己每次执行“时间步”或每次模拟以数字方式近似计算时会发生什么。
-
您正在使用离散步骤估计未来位置,并且在数学上您可能需要更高阶近似值(泰勒或麦克劳林级数)时使用一阶近似值。不过,我不确定在代码中执行此操作的最有效方法。
-
您正在使用的数字遍布整个规模。浮点数学不适用于这种情况。对于涉及如此广泛的值的任何事情,您应该使用一些具有明确定义的错误边界的更精确的数字表示。使用 BigDecimal 重写所有内容,选择适当的舍入级别(这可能不是显而易见的步骤),您应该会得到更好的结果。
-
这是作业吗?如果是这样,那么作业的重点可能就是展示这种建模方法的局限性......
标签: simulation