首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >轨道力学:估计两颗行星间形成比角的时间

轨道力学:估计两颗行星间形成比角的时间
EN

Stack Overflow用户
提问于 2014-04-23 07:24:04
回答 2查看 571关注 0票数 0

我试图想出一个公式来估计两颗轨道行星形成一个目标角时的重复发生时间。为了简单起见,我做了一些非常重要的假设:

  1. 假装开普勒定律不存在
  2. 假装速度是恒定的
  3. 假设两颗行星都沿着同一条轨道运行。
  4. 假设这条路径是一个圆,而不是一个椭圆。

下面是一个帮助理解我的挑战的图表(Google ):Cxsg/edit?usp=sharing

我运行了一个模拟程序,并将数据存储在电子表格(Google )中:https://docs.google.com/spreadsheet/ccc?key=0AgPx8CZl3CNAdGRRTlBUUFpnbGhOdnAwYmtTZWVoVVE&usp=sharing

利用模拟中存储的数据,我确定了一种方法来估计两颗轨道行星形成一个特定角度的第一次发生:

初始状态

代码语言:javascript
复制
Planet 1: position=0 degrees; speed=1 degree/day
Planet 2: position=30 degrees; speed=6 degrees/day
Target Angle: 90 degrees

我执行了以下步骤:

代码语言:javascript
复制
Speed Difference: s2 - s1 ; 6 - 1 = 5 degrees / day
Angle Formed: p2 - p1 ; 30 - 0 = 30 degrees

Find Days Required
Target = Angle + (Speed Diff * Days)
Days (d) = (Target - Angle) / Speed Diff

90 = 30 + 5d
60 = 5d
d = 12 days

Prove:
Position of Planet 1: 0 + (1 * 12) = 12 degrees
Position of Planet 2: 30 + (6 * 12) = 30 + 72 + 102 degrees
Angle: 102 - 12 = 90 degrees

根据这个逻辑,我回到了一个天文学程序,它使用了阿童木的瑞士星历。估计的日子使我足够接近确定两颗行星在不影响应用性能的情况下达到理想角度的日期和时间。

这里是我的问题所在:考虑到我所知道的信息,我应该采取什么方法来估计再次达到90度角的重复发生时间?

谢谢你抽出时间提前阅读这篇文章。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-23 09:29:10

没有一个简单的公式,但有一个算法,你可以编程,以确定结果。五角角也是正确的,因为你需要考虑n*360。你也是正确的,你停止其中一个行星和工作速度的差异。

D天后,行星间的度数相差30 + d*5。

因为我们只对0到360之间的度感兴趣,那么行星间的角度差是(30 + d*5) mod 360。

如果您不知道,当a被b除以时,mod b会给出剩余的部分,而且大多数编程语言都内置了此操作(电子表格也是如此)。

当差值为90度或270度时,你会发现你想要d的值。

因此,您需要在任何时候找到d的值。

(30 + d*5) mod 360 = 90或(30 + d*5) mod 360 = 270

伪码算法

代码语言:javascript
复制
FOR (d=0; d<11; d=d+5)
    IF((30 + d*5) MOD 360 = 90   OR   (30 + d*5) MOD 360 = 270)
        PRINT d
NEXT
票数 0
EN

Stack Overflow用户

发布于 2014-04-23 08:13:30

有趣的是,关于角度,有不同的方式来表示相同的角度。所以你现在设置

代码语言:javascript
复制
Target = 90

一次革命之后,同样的角度可以写成

代码语言:javascript
复制
Target = 90 + 360 = 450

或者一般情况下,n革命以后

代码语言:javascript
复制
Target = 90 + n * 360

如果您也希望具有相反方向的相同角度,则可以设置

代码语言:javascript
复制
Target = -90 + n * 360

如果你用解你的方程的每一个目标角度,你会找到所有的事件,你正在寻找。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23237577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档