谷歌算不对秒差距
原文由 Jeff Kaufman 于 发布,订阅该博客
Daniel Drucker向我指出了谷歌计算器里一个有趣的 bug:对秒差距做运算时会出错。
当地球绕太阳公转时,较近的恒星看起来会在遥远的背景恒星前来回晃动。恒星越近,这种效应就越明显。想想当你轮流用左右眼观察时,就会发现近处的物体相对于远处物体会发生偏移。比如,我竖起一根手指,用右眼看是这样的:
但用左眼看则是这样的:
如果一颗恒星在地球绕太阳运行半圈(相距两个“天文单位”)的过程中视位置移动了两角秒(每角秒为 1/3600 度),我们就说这颗恒星距离我们 1 秒差距。
这样就构成了一个三角形,其中两条边远长于第三条,这意味着只要用弧度来度量角度,就可以用小角度近似,认为一秒差距就是一角秒对应一天文单位。
如果我搜索 [1 parsec in meters],会得到正确的答案 3e16 米:
交互式单位换算器看起来总是对的,但只要对它做任何运算,哪怕只是乘以 1,就会触发另一套计算流程,给出错误的值 5e14 米:
这差了 57.3 倍,这个数字非常可疑!它正好是一弧度对应的度数(180 / PI)。如果你采用秒差距的定义——1 AU 每角秒,却把角秒按度数而不是弧度来算,就会得到这个结果。
比如,1 au / 1 arcsecond in meters 给出的是 5e14:
但如果我让它换算成秒差距,它又会给出 1 秒差距:
这两种结果各有各的道理,但不能同时都对!类似地,[1 meter / 1 degree] 给出的是“1 meter”:
但 [1 meter / 1 radian] 给出的也是同样的结果:
我觉得这里的 bug 很可能出在某种自作聪明的、依赖上下文的角度解读上,系统试图在合适的时候分别使用度数或弧度。或者,也可能是因为度数和弧度都是无量纲单位而产生了混淆?不管怎样,“parsec”被展开成了“AU / arcsecond-in-degrees”,结果差了 57 倍。
秒差距这个距离单位在我的日常生活中大概用不上,但愿没有天文学家被这个 bug 坑到!
随机一篇博客








评论
登录后参与讨论