【问题标题】:Linear Fit to Planet Positions线性拟合行星位置
【发布时间】:2010-01-14 16:12:30
【问题描述】:

2048 年 5 月 28 日与内部 5 颗行星发生了惊人的对齐 具有日心经度(以度为单位): 248.229、66.631、246.967、249.605、67.684。

行星与这条线的距离最多为 0.875 度(通过 Sol) 坡度为 67.823 度。在这种情况下,所寻求的方法 (PA) 将给出: PA(248.229, 66.631, 246.967, 249.605, 67.684) = (67.823, 0.875)

我尝试了两种简单的算法,但都失败了: 2003/9/9:340.256、180.320、346.156、342.316、150.285

一种方法给出斜率=127.867,偏差=51.019,另一种方法给出271.867,85.251。 我认为正确的方法会给出 s=163.466, d=7.515。

主要问题是位于 Sol 两侧的行星可能(几乎)在同一条线上。

Python 或 JavaScript 表示赞赏。 是的,我想出了如何编辑!或者不。

def score3(wList):
  wSize = len(wList)
  #print wList

  first = wList[0]
  d1 = first - 90.0
  if d1 < 0.0:    d1 += 360.0
  d2 = first + 90.0
  if d2 > 360.0:  d1 -= 360.0
  if d1 > d2:   d1,d2 = d2,d1

  sum = 0.0
  for wx in range(0,wSize):
    curr = wList[wx]
    if (curr > d1) and (curr < d2):
      new = curr
    else:
      new = (curr + 180.0) % 360.0
      wList[wx] = new
    sum += new
    #print '%7.3f --> %7.3f' % (curr, new)
  avg = sum / wSize
  #print avg, wList

  score = 0.0
  for wx in range(0,wSize):
    curr = wList[wx]
    diff = curr - avg
    if diff < 0:   diff = - diff
    score += diff
  score /= wSize

  return avg, score

【问题讨论】:

  • 数学问题应该去mathoverflow.net。
  • 发布您尝试过的内容,然后您可以获得对方法的批评
  • 也许你应该展示你的算法失败了,然后有人可能会指出问题出在哪里。
  • 嗯...如果可以手动计算期望值,为什么不能在代码中使用相同的方法?
  • LOL,我已经 40 年没有交作业了。代码对于盒子来说太长了。我尝试通过选择一个元素并添加到列表中-90 和+90 内的任何内容来分隔行的两端。然后我将 180 添加到列表中没有的所有内容,以将两组放在一起。答案是他们的平均值,不起作用。

标签: javascript python


【解决方案1】:

愚蠢的方法不起作用,原因应该很明显:对于要映射到的任何半平面选择,您的数据可能是病态的。我将推荐一个least squares approach,但你确实需要处理径向歧义。

这意味着您要最小化的函数是:

\sum (forceAngleIntoQuandrantI(a_i - A))^2

或类似的东西。也就是说,行星与提议的线的角度永远不能超过 90 度。

现在,如果您像我最初展示的那样使用强制例程(您仍然可以在此答案的编辑历史中找到它),问题不再是分析性的,您将不得不使用迭代方法(请参阅@987654322 @ 一个简单的方法)。或者您可以注意到 sin^2(theta) 在象限 I、IV 中单调递增,并且关于 +- 90 度线对称并最小化

\sum sin^4(a_i - A) 

不使用 MathWorld 链接(或look at wikipdia,如果您愿意)中描述的分析方法进行裁剪。

【讨论】:

    猜你喜欢
    • 2018-08-10
    • 2011-10-30
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    • 2020-10-22
    相关资源
    最近更新 更多