【问题标题】:Euler/RK4 python for Orbite simulation用于轨道模拟的 Euler/RK4 python
【发布时间】:2017-05-10 10:40:05
【问题描述】:

我为 8 颗行星(太阳在 (0,0) 中)的轨道模拟开始了代码 我在 X 和 Y 上获得了加速度,现在我需要使用它们来获得 X 和 Y 上的速度,首先使用 Euler,然后是 RK4,然后我卡住了,我不知道从哪里开始。这是我的代码:

【问题讨论】:

  • 请在问题本身中包含您的代码,使用正确的格式,而不是作为屏幕截图。请参阅Why not to upload images of code on SO when asking a question? 了解更多信息。
  • 另外,对于最小的例子,将正文数减少到 3,这仍然应该显示所有问题,而不包括太多非必要的数据/代码。

标签: python runge-kutta


【解决方案1】:

您实际上应该使用numpy 提供的向量算术。

您应该统一构造参数数组的方式。没有明显的理由来区分位置和速度。甚至可能专门使用一个扩展列表的过程add_body(m,x,y,vx,vy)

您的加速度计算出错了,您开始编写代码来计算一个物体的加速度,但切换到计算所有物体的加速度列表,从而产生参数不匹配。你应该得到被零除的错误。

欧拉方法会很快产生定性错误,不要因此而气馁。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多