首页 生活常识

上一次日食是什么时候出现(日食究竟何时发生)

100人浏览   2024-09-07 10:32:20


日食究竟何时发生?一个跨越千年的计算故事

准备迎接2024年4月8日

2024年4月8日,美国将出现一条贯穿的日全食。但是,日食究竟会在某个具体地点的何时发生呢?能够预测天文事件历来是精确科学的伟大胜利之一。但是,现在我们究竟能做到多精确?

答案是非常精确,即使全食带的边缘以每小时1000英里以上的速度移动,我们也能够预测它到达某个具体地点的时间,精确到秒。作为示范,我们在2017年日全食时创建了一个网站[1],让任何人输入他们的地理位置(或地址),并立即计算出日食到达他们位置的时间,同时生成许多其他信息页面。

Precisioneclipse.com 页面

这是一个古老的业务

如今,查找下次日食的时间很容易;事实上,在Wolfram Language[2]中有一个函数[3]可以告诉你(输出形式是“最大食甚时间”):

添加图片注释,不超过 140 字(可选)

找到并绘制全食区域也很容易:

添加图片注释,不超过 140 字(可选)

或者确定全食区域的总面积(包括大量海洋和一些加拿大地区)大约是美国面积的三分之一:

添加图片注释,不超过 140 字(可选)

但是计算日食并不是一个新业务。事实上,2000年前的安提基西拉机械装置[4]甚至试图做到这一点——使用37个金属齿轮来近似太阳和月亮的运动(是的,以地球为中心)。对我来说,安提基西拉机械装置作为一件孤立的技术作品,虽然被遗忘,但在1600多年里没有被超越,这一点令人不安和警示。

就在装置的底部有一个移动的臂,当它指向Η或Σ标记时,表示可能发生日食或月食。装置的日期设置有点奇怪(毕竟,现代日历[5]还要再过1500年才会被发明),但如果你拿Wolfram演示项目[6]上的模拟器[7](2012年创建演示时校准过),并将装置设置为2024年4月8日,这就是你得到的:

安提基西拉机械装置

安提基西拉机械装置的运作

是的,所有这些齿轮移动使得月亮指示器与太阳对齐,并使底部的臂指向Η,就像它应该在日食时做的那样。令人惊讶的是,这个2000年前设计的装置能够成功地进行这种计算。

当然,如今的结果要精确得多。奇怪的是,尽管进行了大量理论研究,我们实际上计算太阳和月亮位置的方式在概念上仍然非常像安提基西拉装置的齿轮和有效的本轮。只不过现在我们有数十万齿轮的数字等效物。

为什么会发生日食?

当月亮从地球某个特定位置的视角遮挡住太阳时,就会发生日全食。而恰好在地球历史的这个时刻,月亮可以完全遮挡住太阳,因为它在天空中的角直径几乎与太阳相同(大约0.5°或30角分[8])。

那么月亮什么时候会在太阳和地球之间?基本上每次有新月时(即每阴历月[9]一次)。但我们知道并不是每个月都有日食。那么为什么呢?

添加图片注释,不超过 140 字(可选)

实际上,在木卫三和木星的类似情况中,每当木卫三绕木星一周时(大约每周一次[10])都会发生日食。就像地球一样,木星绕太阳的轨道也在一个特定的平面内(“黄道平面[11]”)。木卫三绕木星的轨道也基本上在同一平面内[12]。所以每当木卫三达到“新月”位置(或在官方天文学术语中,当它与太阳和木星“合朔[13]”——发音为sizz-ee-gee),它就在合适的位置将其阴影投射到木星上,并在阴影落下的地方形成日食。(从木星看,木卫三大约是太阳的三倍大小[14])。)

但我们的月亮不同。它的轨道并不在黄道平面内。相反,它倾斜了大约5°[15]。(不知道它是怎么变成这样的,但可能与月球的形成有关。)但这5°使得日食相对罕见:它们只能在月亮轨道穿过黄道平面的“新月配置”(合朔)时发生。

为了展示发生了什么,让我们绘制一个夸张的版本。下面是月亮绕地球的运动,当它接近黄道平面时,用红色表示:

添加图片注释,不超过 140 字(可选)

现在让我们看看大约一年的情况。我们每天展示月亮所在的位置,并且当月亮接近黄道平面时,用红色表示。(注意,如果按比例绘制,你几乎看不到月亮的轨道,它也不会像这里一样向后移动。)

添加图片注释,不超过 140 字(可选)

现在我们可以开始看清日食是如何发生的。基本点是,每当月亮既位于地球和太阳之间,又在黄道平面内时,就会发生日食。在图片中,这两个条件对应月亮尽量靠近中心,并且尽量变红。到目前为止,我们只显示了每天月亮(夸张的)位置。但为了更清楚,我们将其显示为每天四次——现在剔除月亮未对齐太阳的情况:

添加图片注释,不超过 140 字(可选)

现在我们可以看到,至少在这种情况下,有两个点(用箭头表示),月亮对齐并处于黄道平面内(因此显示为红色),这些点将对应于日食。

在不同年份,这张图看起来会有所不同,本质上是因为月亮在年初的轨道位置不同。以下是连续几年的示意图:

添加图片注释,不超过 140 字(可选)

很难准确看出这里何时发生日食,也无法确定哪些是月亮完全对齐的全食,哪些只是部分日食。但至少有迹象表明,例如在不同年份的不同部分有“日食季节[16]”会发生日食。

好的,那么真实数据[17]是什么样的?这是过去20年和未来20年的绘图,显示每年日全食和部分日食发生的实际日期(到处的小点表示新月[18]):

添加图片注释,不超过 140 字(可选)

连续年份间的“漂移”原因只是因为月亮[19]月(29.53天)与年不对齐,因此月亮在一年中不会经过整整数的轨道,导致新年初月亮处于不同的相位。但如图所示,日食发生的一般时间有相当多的规律性,例如每年通常有2次日食——尽管可能有更多(在0.2%的年份中可能有多达5次,最近一次是1935年)。

为了查看更多日食细节,让我们绘制过去100年和未来100年所有连续日食时间差(以分数年表示):

添加图片注释,不超过 140 字(可选)

现在让我们绘制相同时间差,但只针对日全食:

添加图片注释,不超过 140 字(可选)

显然这里有相当多的整体规律性,但也有很多小的细结构和不规则性。能够正确预测所有这些细节基本上花了科学几千年的时间。

古代历史

很难不注意到日食[20],可以想象即使在最早期人们也注意到了。但日食只是与天上的随机事件相关的反映——或者是预兆——还是可以某种方式预测的事情?

几千年前,人们并不清楚像占星家之类的人能预见什么。月亮何时会在天空的某个位置?明天会下雨吗?大麦的价格会是多少?谁会赢得战斗?即使现在,我们也不确定所有这些都能预测到。但预测和精确科学取得胜利的一个明确例子是天文学。

至少在西方传统中,一切似乎都始于古巴比伦——在那里几百年来进行了细致的观察,并按照那个文明的方式,保存了详细的记录。即使今天,我们仍然保存了用细小鸡爪似的笔迹书写在小泥板上的数千份官方日记条目[21]。”14日夜:冷北风。月亮在α狮子座[22]前面。从15日到20日河水上涨1/2肘。大麦是1 kur 5 siit。25日,夜晚最后部分,月亮在ε狮子座[23]后面1肘8指。28日,日出后74°,日食…”

巴比伦泥板

如果看某一天发生的事情,可能看不出什么。但通过多年来甚至几百年的观察,可以看到各种重复和规律。在巴比伦时期,提出了使用这些规律构建历表[24]——一种系统表,指示某个特定时间预计某个天体如月亮所在的位置的想法。

(不必说,重建巴比伦天文学是一项复杂的工作,涉及解码如今基本上是外星文化的内容。这项工作的关键人物是某个奥托·纽厄鲍尔[25],他碰巧在1980年代初在普林斯顿的高级研究院[26]和我在同一楼工作。我几乎每天都见到他——一个安静的白发老人,眼中闪烁着光芒——有时我会瞥见他的巨大卡片索引系统,我现在意识到这是理解巴比伦天文学的核心。)

巴比伦人所做的一件事是惊人地精确测量了月相的重复周期——所谓的朔望月[27](或“朔望周期”),大约29.53天。他们注意到235个朔望月非常接近19年——这样每隔19年,日期和月相的对齐就会重复,形成所谓的梅托周期[28](以公元前432年描述它的雅典的梅顿[29]命名)。

随机的星座形成了一个良好的背景,月亮的精确位置可以对比测量(这让我想起现代流行的穿分形图案,以便于电影中的动作捕捉)。但巴比伦人注意到了月亮运动的各种细节。他们知道它的“近点[30]”:它在天空中周期性加速和减速(现在知道是由于其略椭圆轨道造成的)。他们测量了这一周期——所谓的近点月[31]——大约27.55天。他们还注意到月亮在黄道平面上下移动(现在知道是因为其轨道倾角[32])——平均周期(所谓的交点月[33])被他们测量为大约27.21天。

到公元前400年,他们注意到每隔大约18年11天的沙罗周期[34],所有这些不同的周期基本上都对齐(223个朔望月、239个近点月和242个交点月)——结果是月亮相对于太阳的位置大致相同。这意味着如果在一个沙罗周期内有一次日食,可以预测在下一个沙罗周期内也会有一次日食。

当绝对精确时,有各种效应阻止每个沙罗周期的精确重复。但在超过1300年的时间跨度中,仍然存在相隔一个沙罗周期的一系列日食。(在这样一个沙罗系列的过程中,日食位置基本上扫描整个地球;即将到来的日食是1501年在北极附近开始的71个系列中的第30个,最终将在2763年以南极附近的一次日食结束。)

任何特定时刻都会处于多个沙罗系列的中间(现在是40个)——连续的日食总是来自不同的系列。但知道沙罗周期是预测日食的一个很好的第一步,例如安提基西拉装置使用的就是这个周期。在某种意义上,它是科学的典范:进行多次观察,然后从中合成一个理论,或者至少是一个计算方案。

不清楚巴比伦人对抽象的、形式化的系统有何看法。但希腊人绝对热衷于这些。到公元前300年,欧几里得[35]定义了他的几何抽象系统。所以像托勒密[36]这样的人进行天文学时,有点像欧几里得——基本上将沙罗周期等作为公理,然后从中证明出令人惊讶的几何定理,例如某一年中必须至少有两次日食。

托勒密的《天文学大成[37]》约于公元150年完成,是一项令人印象深刻的工作,包含了许多详细的程序和明确的预测日食的表格。(是的,即使在后来的印刷版本中,数字仍然用字母表示[38],就像在古希腊一样。)

托勒密的天文学大成

在托勒密的天文学中,地球被认为是中心。但用现代术语来说,这只意味着他选择了不同的坐标系——这并不影响他想做的大多数事情,如计算日食的几何学。与主流希腊哲学家不同,他不试图制造一个世界的基本理论;他只想用任何必要的本轮和其他工具来符合他的观察结果。

现代科学的曙光

千余年来,托勒密的月亮理论代表了先进水平。在14世纪,伊本·沙提尔[39]修订了托勒密的模型,达到了更好的精度。1472年,雷吉奥蒙塔努斯(约翰内斯·穆勒)[40]——三角学的系统化者——出版了更完整的表格,作为他创办的首个科学出版公司的一部分。即使在1543年,当尼古拉·哥白尼[41]引入他的太阳中心模型时,他得到的结果基本上与托勒密相同,尽管他的基础描述完全不同。

据说第谷·布拉赫[42]在1560年看到一次预测的日食后对天文学产生了兴趣,当时他才13岁。在接下来的几十年里,他的细致观察揭示了月球运动中的一些效应(如在满月前加速),这些最终使得月亮位置的预测精度提高了约5倍。对第谷来说,日食是关键测试,他仔细测量了它们,并努力使其预测时间比几个小时更精确。(他自己从未见过日全食,只有部分日食。)

第谷的页面

第谷的观察数据武装了约翰内斯·开普勒[43],他发展了轨道为椭圆[44]的描述——引入了如轨道倾角[45]偏近点[46]等概念——并在1627年最终出版了他的《鲁道夫星表[47]》,它纠正了许多先前的错误,并包括了大量详细的月亮位置表格以及大大改进的日食预测。

开普勒的鲁道夫星表

使用开普勒的《鲁道夫星表》(和几页计算),在1654年首次发布了已知的太阳日食地图。虽然总体地理有些迷人错误,但日食的几何形态还不错。

添加图片注释,不超过 140 字(可选)

无论是托勒密的本轮还是开普勒的椭圆,计算天体运动都需要大量计算(事实上,除了安提基西拉装置,第一台已知的机械计算器是开普勒朋友[48]开发的,可能是为了这个目的)。但没有真正的基础理论;只是描述效应以便进行预测。

因此,1687年艾萨克·牛顿[49]发表《自然哲学的数学原理[50]》时,这是一个巨大的进步,他声称用他的运动和引力定律,从基本原理出发应该可以计算出月亮的一切运动。(有趣的是,在他的“世界理论”部分,他简洁地以命题XXII声明“月亮的所有运动…遵循我们所提出的原理。”)

牛顿为他能够解释许多已知效应而自豪,这些效应是基于他的新理论。但是,当涉及到实际计算月亮的详细运动时,他遇到了令人沮丧的困难。即使在几年后,他仍然无法得出正确答案——在《原理》的后续版本中加入了承认,实际上“月亮的近点大约是预测的两倍”(即他的答案错误了2倍)。

尽管如此,在1702年牛顿对他的结果足够满意,允许它们被出版,形式为20页的小册子《月亮理论》,宣称“通过这项理论,所有天文学家认为最难的、几乎不可能完成的事情,杰出的牛顿先生现在已经实现了,即使在四分之一月及其轨道的所有其他部分,甚至在合朔时,通过计算确定月亮的位置都非常准确,以至于它与月亮在天空中的真实位置几乎没有两分钟的误差…”

牛顿的月亮理论小册子

牛顿没有解释他的方法(实际上仍然不清楚他到底做了什么,或者它是否具有数学严谨性)。但他的小册子实际上提供了一个逐步的算法来计算月亮的位置。他没有声称它在“合朔时”(即太阳、月亮和地球对齐时)有效——尽管他宣传的误差为两角分,但仍然比天空中月亮的角大小要小得多。

但当时的重点不是日食;而是他那个时代的一个非常实际的问题:在茫茫大海中确定船只的位置。通过测量太阳在天空中的高度,可以确定纬度。但要确定经度,需要校正地球的自转——为此必须精确跟踪时间。然而在牛顿的时代,现有的钟表根本不够精确,特别是在船上颠簸时。

特别是在发生各种海难事故后,经度问题被认为很重要,以至于英国政府在1714年设立了“经度委员会”,提供奖金来解决这一问题。一个早期建议是利用伽利略发现的木星卫星的规律性来计时。但似乎更简单的解决方案(不需要强大的望远镜)可能只是测量月亮的位置,比如相对于某些固定恒星的位置——然后从中反算出时间。

但要做到这一点,需要一个精确的方法来预测月亮的运动——这是牛顿试图提供的。实际上,直到1760年代才产生了足够精确的表格,可以在一分钟内确定时间(因此距离在15英里以内)。恰巧在同一时间发明了一种海洋计时器,能够直接准确计时。

三体问题

牛顿在《原理》中最大的成就之一是解决了所谓的两体问题,并证明了在引力遵循反平方定律时,一天体绕另一天体的轨道必须总是开普勒所说的椭圆。

首先可以认为月亮只是绕地球运行在一个简单的椭圆轨道上。但使一切变得困难的是,这只是一个近似,因为实际上月亮还受到太阳的引力影响。由于这一点,月亮的轨道不再是一个简单的固定椭圆,实际上它变得复杂得多。有一些明确的效应可以描述和推理。地球在其轨道上离太阳越近,椭圆就越被拉长。由于太阳的影响,椭圆的方向像陀螺一样进动。但最终没有办法通过纯粹的推理来计算轨道,只能进入数学领域,开始求解三体问题[51]的方程。

在许多方面,这代表了科学的新情况。过去,在没有新自然规律需要研究时,人们不能走远。但这里假设底层规律已经由牛顿给出,尽管如此,解决它们所暗示的行为仍然需要复杂的数学。

在18世纪和19世纪,试图解决三体问题[52]和确定月亮轨道的努力是数学物理学的核心,并吸引了一大批数学家和物理学家的名人。

早期的参与者是莱昂哈德·欧拉[53],他开发了基于三角级数的方法(包括我们现在使用的大部分符号),其著作中包含许多立即可识别的公式:

欧拉的方法

在18世纪40年代中期,欧拉的“竞争对手”克莱罗[54]达朗贝尔[55]之间曾短暂出现关于反平方引力定律可能错误的争论。但问题出在计算上,1748年欧拉使用大约20个三角项的和,并自豪地宣称[56],他为三体问题生成的表格[57]预测了日全食的时间,误差在几分钟之内。(实际上,他说会有5分钟的全食,而实际只有1分钟,但他将误差归咎于给他的柏林坐标不正确[58]。)

在接下来的几十年里,数学物理学迅速发展,许多现在著名的方法被开发出来,尤其是像拉格朗日[59]这样的人所开发的方法。例如,1770年代,拉格朗日的工作看起来就像来自现代微积分书籍(或来自Wolfram|Alpha步骤解决方案[60]):

拉格朗日的方法

特别是在拉普拉斯[61]的手中,显然在用数学推导出他所称的“天体力学[62]”的观测现象,并确立了数学本身确实可以在科学中产生新结果的观念上取得了成功。

在实际层面上,月亮位置的测量总是比计算精确得多。但现在它们变得更加可比,推动了两者的进步。同时,历表的生成越来越系统化。1767年,标准的英国《航海年鉴[63]》开始每年出版。

年鉴中引用了月亮的位置,精确到弧秒,并系统地达到至少弧分的精度。年鉴的主要用途是导航(它启动了以格林威治为测量时间的“本初子午线)”的惯例)。但在每年的版前,都会预测当年日食的时间——1767年仅有两次日食:

航海年鉴

数学变得更加严肃

在数学层面上,三体问题是关于求解一个系统的三常微分方程[64],给出三个体随时间变化的位置。如果位置用标准的3D直角坐标系表示:

添加图片注释,不超过 140 字(可选)

这些方程可以表示为:

3D直角坐标系方程

这些{x, y, z}坐标并不是天文学中传统使用的。例如,在描述月亮的位置时,可能使用球体上的经度和纬度。或者,鉴于知道月亮有一个大致椭圆的轨道,可以选择用偏离此轨道的变量来描述其运动。原则上,只是代数操作将方程用任何选定的变量重述。但实际上,得出的结果通常很长且复杂,并且可能产生填满许多页面的公式。

好的,那么使用哪些最佳变量来求解三体问题?也许它们应该涉及成对天体的相对位置。或相对角度。或者可能是各种旋转坐标系中的位置。或者可能是纯两体问题中会保持恒定的量。在18世纪和19世纪期间,写了许多探讨不同可能性的论文。

但在几乎所有情况下,解决三体问题的最终方法都是相同的。用选定的变量建立问题。确定一些参数,如果将其设为零,将使问题简化为容易求解的形式。然后对这些参数进行级数展开[65],只保留一定数量的项。

计算很困难,人们的结果往往不一致。例如,在1843年,阿达·洛芙莱斯指出[66],“在求解著名的三体问题时,约295个月球扰动系数中,只有101个…在符号和量上与以前的作品完全一致”(随后她预见性地提到,这将是分析机能够解决的问题)。

到1860年代,查尔斯·德拉奈[67]花了20年时间,使用级数展开发展了最广泛的月亮理论。他确定了五个关于其展开的参数(偏心率、倾角和轨道大小的比率),最终他生成了大约1800页这样的内容(是的,他确实需要Mathematica[68]!):

德拉奈的级数展开

但令人遗憾的是,尽管付出了巨大努力,他没有得到非常好的答案。最终原因变得清晰。基本问题是德拉奈想用类似于sin[69]cos[70]的函数表示他的结果。但在他的计算中,他经常想对这些函数的频率进行级数展开。这里有一个最小的例子:

添加图片注释,不超过 140 字(可选)

问题在于,即使是第二项。是的,δ参数可能很小。但参数t(代表时间)呢?如果你不想做太远的预测,它将保持小。但如果你想计算将来更远的时间会发生什么?

最终,这个项将变大。而且更高阶的项会变得更大。但是,除非月球要逃离它的轨道,否则表示其位置的最终数学表达式的值不会太大。因此,在这些表达式中,随着 t 增长的所谓长期项必须以某种方式相互抵消。

但问题是,在级数展开的任何一阶中,没有保证会以有用的数值方式发生这种抵消。对于德拉奈来说,即使他经常超过7阶,努力达到7阶以上,也没有成功。

德拉奈的计算一个好的特点是它在某种意义上是完全代数的:一切都是符号化的,只有在最后才代入实际参数值。

但是在德劳内之前,彼得·汉森[71]采取了一种不同的方法——尽快用数值代替,并根据数值大小而不是符号形式来删除项。他的表达看起来不那么纯粹(注意诸如这些 t - 1800,其中 t 是以年为单位的时间),并且更难看出发生了什么。但是实际上,他的结果要好得多,实际上从1862年到1922年间的许多国家年鉴中都使用了他的结果,在至少十年左右的时间里,误差达到了1或2角秒。(在较长时间内,由于由于数值偶然导致丢失的项,误差可能迅速增加。)

汉森的方法

德拉奈和汉森都尝试将轨道表示为幂级数和三角函数(所谓的泊松级数)。但在1870年代,乔治·希尔[72]美国航海年鉴办公室[73]提出,使用作为基础的数值计算函数,这些函数来自求解具有周期驱动力的两体运动方程,类似于太阳对月亮轨道的影响。进行了大规模的努力,从1892年开始,欧内斯特·布朗[74](搬到美国,但曾是乔治·达尔文[75]查尔斯·达尔文[76]的物理学家儿子)的学生,接管了这个项目,并在1918年生产了多年公认为权威的《月球运动表[77]》。

布朗的表格由数百页这样的内容组成——最终将月亮的位置表示为约1400项非常精确系数的组合:

布朗的表格

他在开头指出,这些表格并非特别用于独特的事件,如日食,但然后他进行了公元前381年托勒密报道的一次日食的“实际案例”计算:

布朗的表格2

这是对进步的令人印象深刻的指示。但讽刺的是,布朗表格的最终呈现形式与使用许多本轮所得到的形式相同。在某种程度上,这并不奇怪,因为任何函数最终都可以用本轮表示,就像它可以用傅里叶或其他级数表示一样。但历史上使用如此相似的形式是个奇特的巧合。

三体问题能解决吗?

找到三体问题的近似解是好事,但直接找到它的解(如一个数学公式)怎么样?甚至在18世纪,已经发现了一些具体解,如欧拉的共线配置和拉格朗日的等边三角形[78]。但一个世纪后,没有发现更多的解,找到三体问题的完整解开始显得像是三等分角、解五次方程或制造永动机一样无望。(这种观点反映在1843年查尔斯·巴贝奇写给阿达·洛芙莱斯的信中[79],提到“三体问题的可怕问题”,尽管这封信后来被阿达的传记作者误解为关于一个浪漫三角,而不是天体力学的三体问题。)

与三体问题相比,两体问题似乎可解的原因在于它的解可以完全用“运动常数[80]”来表征——这些量随时间保持恒定(在这种情况下,特别是椭圆轴的方向[81])。因此,许多年来,三体问题的一个大目标是找到运动常数。

然而在1887年,海因里希·布伦斯[82]证明了,至少在表达为标准{x, y, z}位置和速度坐标的代数函数时,不可能存在运动常数。然后在1890年代中期,亨利·庞加莱[83]证明,实际上在任何作为位置、速度和质量比的解析函数中都不可能存在运动常数。

这在当时特别令人失望,因为人们希望在n体问题中找到某种运动常数,从而提供太阳系长期稳定性的数学证明。作为他的工作的一部分,庞加莱还看到,在三体问题的特定情况下,存在对初始条件的任意敏感依赖,这意味着即使是微小的测量误差也可以放大到任意大的预测变化(经典的“混沌理论”现象)。

但在发现三体问题的特定解可以具有这种不稳定性后,庞加莱采取了不同的方法,这实际上是现代纯数学的一个特征:他决定不看个别解,而是看所有可能解的空间。毫不奇怪,他发现对于三体问题,这非常复杂,尽管在分析它的过程中他发明了拓扑学领域。

庞加莱的工作几乎终止了寻找三体问题完整解的努力。它也似乎向某些人解释了德拉奈和其他人的级数展开没有成功的原因,尽管在1912年卡尔·桑德曼[84]确实表明,至少原则上,三体问题可以用无限级数解,尽管它收敛非常缓慢。

但说三体问题没有解是什么意思?伽罗瓦表明五次方程(至少在根式中)没有解。但实际上,完全可以用椭圆或超几何函数表示解。那么为什么不能找到某种更复杂的函数类来直接“解决三体问题”呢?

这里是三体问题中实际发生的一些图片,具有各种初始条件:

添加图片注释,不超过 140 字(可选)

这些图片立即显示出为什么“解决三体问题”并不容易。是的,有些情况下发生的事情相对简单。但也有些情况下,它并不简单,三体的轨迹在很长时间内继续复杂和缠绕。

那么这里到底发生了什么?我认为传统数学并不是应该寻找答案的地方。但我认为我们看到的实际上是我在1980年代研究可能程序的计算宇宙时发现的一种称为计算不可约性的现象。

许多程序,如许多三体问题的实例,表现出相对简单的行为。但如果你开始查看所有可能的简单程序,不久你就会看到这样的行为:

添加图片注释,不超过 140 字(可选)

如何确定会发生什么?好吧,你可以继续显式运行每个程序,看看它做了什么。但问题是:是否有某种系统方法可以跳过并预测会发生什么而无需逐步跟踪所有步骤?

答案是,通常没有。我称之为计算等价原理[85]的东西表明,几乎每当你看到复杂行为时,都不会有这样的系统方法。

这里是思考这个问题的方法。你研究的系统实际上是在计算它的行为会是什么。因此,要跳过你需要做一个更复杂的计算。但计算等价原理表明,实际上你不能——无论你使用你的大脑、数学还是图灵机或其他什么,你总是被同等复杂的计算所束缚。

那么三体问题呢?好吧,我强烈怀疑[86],这是一个计算不可约性的例子:实际上它在计算的复杂性上与我们可以做的任何计算一样复杂,因此我们无法期望系统地跳过并解决问题。(我们也不能期望定义某种新类的函数,它们可以直接求解。)

希望有一天[87]有人会严格证明这一点。因为三体问题通常用实数表示,立即有无限位数,因此有一些技术困难,但要与普通计算相比,必须要求有限过程来设置初始条件。最终你希望证明,例如,有一个“编译器”,可以从任何程序(比如图灵机)生成设置三体问题初始条件的指令,这样三体问题的演化将与运行该程序的结果相同,表明三体问题具有通用计算能力。

我不得不说,我认为牛顿在某种程度上非常幸运。如果他发现任何有趣的东西时,总是遇到像月亮运动那样的困难问题——因为他会不断遇到计算不可约性——那么很可能他无法提出任何有用的预测。但事实上,有足够的计算可约性和足够可以容易计算的东西,使他看到他的理论在预测世界特征时是有用的(并且不会像月亮近地点那样出错),即使有些部分可能需要两世纪才能解决,或者永远无法解决。

牛顿自己当然意识到潜在问题[88],他认为,至少如果一个人处理多行星的引力相互作用,“通过易于计算的精确定律来定义这些运动超过了人类头脑的力量”。即使今天,我们也很难知道太阳系的长期演化会是什么。

特别地,不是对初始条件的敏感依赖:我们实际上有足够精确的测量来确定很长时间内会发生什么。问题在于我们必须进行计算——就像计算π的位数一样——来求解我们太阳系的n体问题的行为。

现有的模拟显示,或许在几千万年内,不会发生太大的事情。但之后我们不知道。行星可能改变顺序。可能它们甚至会碰撞或被抛出太阳系。计算不可约性意味着至少在无限时间后,实际上无法判断(在哥德尔定理或停机问题的意义上)会发生什么。

我的一个孩子,在他们很小的时候,问我恐龙存在时地球是否可能有两个卫星。多年来,当我遇到天体力学专家时,我都会问他们这个问题——令人注意到他们发现这个问题有多困难。大多数人现在说,至少在恐龙时代我们不可能有额外的卫星,但一亿年前则不清楚。

我们曾经只有一个行星系统可以研究。9个行星(当时)是经典哲学家的例子[89]的例子,作为一个关于世界的真理,只是碰巧是这样的,并不“必然为真”(像2 + 2 = 4一样)。但现在我们知道很多系外行星[90]。现在看起来可能有一种理论来解释一个太阳系可能有多少行星。

在某种程度上,可能有一个类似自然选择的过程:一些行星配置不够“稳定”——只有那些适应生存的配置才能存活。在生物学中,传统上认为自然选择和适应是导致我们看到的复杂性的原因。但实际上我怀疑其中很多[91]只是反映了在计算宇宙中通常发生的事情——无论是在生物学还是在天体力学中。现在在天体力学中,我们还没有在野外看到任何特别复杂的形式(除了几个复杂的环结构中的空隙[92]和旋转的卫星和小行星)。但或许在其他地方,我们会看到类似那些明显纠缠的三体问题解,更接近我们在生物学中习惯的东西。

令人惊讶的是,在许多不同领域中问题是多么相似。例如,自18世纪以来在天体力学中存在的使用“微扰理论[93]”和级数展开的整个想法现在也是量子场论的核心。但就像在天体力学中,存在收敛问题(也许应该在天体力学中尝试重整化或重求和)。最终,人们开始意识到有些现象——比如湍流或三体问题——不可避免地涉及更复杂的计算,需要通过探索计算宇宙的科学来研究,而不是传统数学。

接近现代

但让我们回到月亮运动的故事。在布朗的表格和庞加莱的理论工作之间,到20世纪初,人们普遍认为可以合理计算的月亮运动已经计算出来了。

有时会有测试。例如,1925年,纽约市有一次日全食,《纽约时报[94]》或许夸张地说“科学家紧张……想知道他们或月亮是否错误,因为日食晚了五秒”。事实上,误差五秒的预测是非常准确的,即使今天我们也不能做得更好。(顺便说一下,实际文章详细讨论了“布朗教授”,以及日食可能“推翻爱因斯坦”和证实“日冕物质[95]”的存在,但没有详细说明所谓的预测误差。)

报纸文章

实际上,布朗的表格并不容易使用:从中找到月亮的位置需要大量的机械台式计算器工作,以及仔细的数字转录。这促使莱斯利·康米[96]在1932年提出使用基于打孔卡的IBM霍勒瑞斯自动制表机,并在托马斯·沃森[97]IBM[98]的CEO的帮助下,建立了可能是第一个“科学计算实验室”——自动化布朗表格的计算。

自动制表

(当我在1960年代末在英国上小学时——在电子计算器出现之前——我总是随身携带我的滑尺,还有一本“小型4位数学表”。我觉得一本书有作者很奇怪——也许因此我还记得这个名字:“L. J. Comrie”。)

到1950年代,布朗表格的计算逐渐被重新安排和改进,使其更适合计算机使用。但然后随着约翰·F·肯尼迪[99]的1962年“我们选择登月”,突然对月亮位置最准确计算的兴趣变得紧迫。然而,实际上只是布朗表格的一个调整版本,运行在大型机上,为阿波罗计划进行了计算。

最初,计算机在天体力学中仅用于数值计算。但到1960年代中期,也有了使用它们进行代数计算的实验,特别是自动生成级数展开。华莱士·埃克特[100]在IBM开始使用FORMAC[101]重新制作布朗表格,而在剑桥,David Barton和Steve Bourne[102](后来创建了Unix中的Bourne Shell[103])建立了他们自己的CAMAL[104]计算机代数系统,以尝试扩展德拉奈所做的工作(到1970年,德拉奈的7阶计算已被扩展到20阶)。

当我自己在1976年开始研究计算机代数时(主要用于粒子物理计算),我当然听说过CAMAL,但我不知道它被用来做什么(除了模糊的“天体力学”)。作为1970年代末的理论物理学实践者,我必须说,曾在18世纪和19世纪如此突出的“月亮问题”在那个时候已经完全被遗忘。

例如,1984年我问某个马丁·古茨维勒[105],他在谈论量子混沌,他的主要兴趣到底是什么。当他回答“月亮问题”时,我大吃一惊;我不知道月亮还有任何问题。实际上,在写这篇文章时我发现古茨维勒实际上是接替埃克特,花了近二十年试图改进月亮位置计算的人。

为什么不直接求解呢?

传统的三体问题方法非常来自数学思维。但现代计算思维立即提出了另一种方法。给定三体问题的微分方程,为什么不直接求解它们呢?实际上在Wolfram语言[106]中,有一个内置函数NDSolve[107]用于数值求解微分方程系统。

那么如果你只输入一个三体问题的方程会发生什么呢?好吧,以下是方程:

添加图片注释,不超过 140 字(可选)

现在作为一个例子,我们将质量设为随机值:

添加图片注释,不超过 140 字(可选)

并且我们定义每个体的初始位置和速度也是随机的:

添加图片注释,不超过 140 字(可选)

现在我们可以直接使用NDSolve[108]求解(它将它们作为关于t的隐含近似数值函数):

添加图片注释,不超过 140 字(可选)

现在我们可以绘制它们。我们得到了三体问题的解,就这样!

添加图片注释,不超过 140 字(可选)

好吧,显然这是使用Wolfram语言和一个现代技术的巨大塔。但即使从一开始,人们也能直接生成三体问题的数值解,而不是做所有的代数计算吗?在18世纪,欧拉已经知道现在称为欧拉方法[109]的方法,用于找到微分方程的近似数值解。那么如果他用该方法计算月亮的运动会怎么样呢?

该方法依赖于以时间为序列进行离散步进。如果他用一分钟的步长,那么他需要40000步才能得到一个月的结果,但他应该能够成功再现月亮的位置,误差在1%左右。如果他尝试扩展到3个月,那么他已经至少有10%的误差了。

任何数值方案求解微分方程,实际上最终都会积累某种误差,但你对所求解的方程及其预期解了解得越多,你就越能够预处理和适应以最小化误差。NDSolve[110]内置了足够的自动适应性,以至于它在典型三体问题上表现相当不错。(这有助于Wolfram语言和NDSolve[111]能够处理任意精度的数字,而不仅仅是机器精度。)

但如果你查看三体系统的总能量,你可以从方程中证明它应该保持不变,那么你通常会看到它的误差逐渐增加。你可以避免这一点,如果你有效地在方程中做变量变化,以“消除”能量。你可以想象做一整个层次的代数变换,以在某种意义上给数值方案尽可能多的帮助。

实际上,自1980年代以来,天体力学和地球-月亮-太阳系统中的实际工作正是这样做的。所以它在某种程度上是传统代数方法与现代数值计算的混合。

实际的地月太阳问题

好吧,那么解决地月太阳系统的实际问题涉及什么呢?标准三体问题给出了非常好的近似物理现象。但显然这不是全部。

首先,地球不是太阳系中唯一的行星。如果你试图获得足够准确的答案,你需要考虑其他行星的引力效应。最重要的是木星,它对月亮轨道的典型效应在0.0001级别,足够大,例如布朗在他的表格中考虑了它。

下一个效应是地球不仅仅是一个点质量,甚至是一个精确的球体。它的自转使得赤道膨胀,影响月亮的轨道,在0.00001级别。

绕地球的轨道最终取决于地球的全质量分布和重力场[112](这就是Sputnik-1[113]名义上发射的目的)——以及这个和月亮的反向效应,在0.000001级别。在0.0000001级别,还有固体潮汐对地球和月亮的变形效应,以及引力红移和其他广义相对论现象。

要尽可能准确地预测月亮的位置,最终你必须对这些不同的效应有某种模型。

但有一个更直接的问题需要处理:你需要知道地球、太阳和月亮的初始条件,换句话说,你需要尽可能准确地知道它们在某个特定时间的位置和速度。

碰巧的是,有一个非常好的方法,因为阿波罗11号[114]阿波罗14号[115]阿波罗15号[116]都在月亮上留下了激光反射器[117]。通过精确计时从地球到这些反射器的激光脉冲的往返时间,现在可以有效地测量月亮的位置,误差达到毫米级。

好的,那么现代巴比伦星历表是如何实际工作的呢?内部它们处理太阳系所有重要天体的方程。它们做符号预处理,以使数值工作尽可能容易。然后它们直接求解系统的微分方程,适当地插入地球质量分布等模型。

它们从特定的测量初始条件开始,但然后它们反复插入新测量,试图校正模型参数,以最优地再现所有已有的测量。这非常像一个典型的机器学习[118]任务——这里的训练数据是太阳系的观测数据(通常拟合只是最小二乘法[119]好的,我继续翻译并保持markdown格式:


Fit.html))。

但好吧,有一个模型可以运行来计算月亮的位置。但你不想每次需要得到结果时都要显式地这样做;相反,你希望只是存储一个预计算结果的大表,然后做类似于插值[120]的事情来获得你需要的任何特定结果。确实,现在就是这样做的。

如何真正做到这一点

回到20世纪60年代,NASA开始直接求解行星运动的微分方程。月亮更难处理,但到1980年代,月亮也以类似的方式处理了。不断地从激光反射器等设备中获取数据,并插入所有可用的历史数据。

所有这些的结果是JPL发展星历[121](JPL DE)。除了使用新的观测数据,基础系统每隔几年更新一次,例如为了某些航天器前往太阳系的新地方(最新的是DE441,接替了DE432,它是为了去冥王星而建立的)。

那么实际的星历是如何交付的呢?好吧,每覆盖一千年,星历大约有100兆字节的结果,以切比雪夫多项式[122]系数的形式给出,这对于插值非常方便。对于任何特定时间段内的任何特定坐标系中的任何给定量,您可以访问这些结果的适当部分。

在Wolfram语言中,这一切都被打包成函数AstroPosition[123]——这里给出了月亮相对于地球赤道的坐标位置:

添加图片注释,不超过 140 字(可选)

好的,但是如何找到日食呢?这是一个迭代过程。首先用沙罗周期获得一个近似。然后插值星历并查看结果。然后继续迭代,直到找到月亮处于适当位置的确切时间。

但实际上还有更多的事情要做。最初计算的是各种天体的质心(质心)的位置。但现在你需要知道这些天体的方向。

地球在旋转,我们非常精确地知道其速率。但月亮基本上是锁定的,总是同一面朝向地球,虽然实际上有小的“天平动[124]”,月亮在前后摇摆,这些天平动特别难预测。

日食将在哪里发生?

好了,假设你知道地球、月亮和太阳的位置。如何确定日食的类型以及它将在地球上的哪个位置出现呢?还有一些几何计算需要做。这是涉及的内容的开始:

添加图片注释,不超过 140 字(可选)

基本上月亮生成了一个阴影圆锥,然后问题是这个圆锥如何与地球相交。如果圆锥的顶点在地球内部,这意味着在地球上将有一个全阴影区(“本影”)——一次全食。(如果顶点在地球之上,将有一个环形食,其中月亮周围将有一个“太阳环”。)

顺便说一下,更完整的几何图如下(同样不是按比例的)

添加图片注释,不超过 140 字(可选)

现在我们包括了半影,在半影中只有部分太阳被月亮遮挡。在特定情况下,本影圆锥“错过了地球”,所以没有全食,但仍有部分日食,其中太阳的部分被遮挡。

好的,假设会有一次全食。要看到全影在地球上的位置,我们必须计算“全影圆锥”(即本影)与地球表面的交点。这是一个有点复杂的3D几何问题:

添加图片注释,不超过 140 字(可选)

从太阳的位置来看,最容易理解发生了什么。浅灰色区域是半影,黑点是全影区(即本影):

添加图片注释,不超过 140 字(可选)

随着地球和月亮在它们的轨道上移动,阴影区域相对于地球移动:

添加图片注释,不超过 140 字(可选)

但现在有另一个问题,即地球的自转。如果我们包括这一点,我们将看到全影区域(至少在这种情况下)在地球表面上描绘出一种S形曲线:

添加图片注释,不超过 140 字(可选)

所有这些棘手的几何计算在1824年由弗里德里希·贝塞尔[125]解决,他引入了现在称为贝塞尔元素的东西——八个变量,指定了全影和半影圆锥的位置、方向和孔径,以及地球的方向,作为时间的函数。对于任何给定的日食,其出现和轨迹在地球表面完全由其贝塞尔元素决定。

日食何时到达?

好了,我们知道日食的轨迹。但是如何确定日食何时会到达地球上的某个点呢?首先我们需要明确时间的定义。立即有一个光速和狭义相对论[126]的问题。说地球和太阳在某个时间的位置是怎样的是什么意思?因为光从太阳到地球大约需要8分钟,我们只能看到太阳8分钟前的位置,而不是现在的位置。

我们需要的是一个经典的狭义相对论[127]设置。我们想象太阳系中充满了通过光脉冲同步的钟表网格。现代星历的作用是引用这些钟表网格上的时间相对的天体位置结果。(广义相对论[128]意味着在不同的引力场中,钟表的运行速率不同,但对我们的目的来说这是一个微小的效应。但一个重要的效应是,在计算

添加图片注释,不超过 140 字(可选)

体问题的方程中加入迟滞,使其成为延迟微分方程[129]。)

但现在还有另一个问题。如果你在观察日食,你将使用某个计时器(手机?)来确定时间。如果它正常工作,它应该显示基于UTC[130]的官方“民用时间”——这是网络时间协议(NTP)[131]同步到的时间。但问题是,UTC与天文星历中使用的时间有复杂的关系。

起点是所谓的UT1[132]:一天的定义是地球相对于太阳旋转一圈的平均时间。但问题是这个平均时间并不恒定,因为地球的自转逐渐减慢,主要是与月亮的相互作用导致的。同时,UTC是由原子钟定义的,其计时与地球的旋转问题无关。

有一个保持UT1与UTC对齐的约定:如果UT1将偏离UTC超过0.9秒,则向UTC添加一个闰秒[133]。你可能认为这是一个微小的效应,但实际上自1972年以来,总共添加了27个闰秒(如Wolfram语言中的GeoOrientationData[134]所规定):

添加图片注释,不超过 140 字(可选)

何时需要新的闰秒是不可预测的;它取决于诸如发生了哪些地震等因素。但我们需要考虑闰秒,以便将日食时间相对于UTC或互联网时间精确到秒。

在精确观察日食的时间上,还有几个其他效应也是重要的。最明显的是地理海拔[135]。在做天文计算时,地球被假定为一个椭球体。(有许多不同的定义,分别对应不同的大地测量“基准”[136]——这是定义诸如“海平面”等问题时的问题,但在这里无关。)但如果你在椭球体之上的不同高度,阴影圆锥将以不同的时间到达你。这个效应的大小每1000英尺的高度可以达到0.3秒。

我们已经讨论的所有效应,我们都可以轻松处理。但还有一个剩下的效应有点困难。就在全影开始或结束时,你通常会看到月亮边缘上的光点。被称为贝利珠[137],这是光线穿过月亮上的山谷到达我们的结果。确切计算所有这些光线何时熄灭需要使用月亮的地理高程数据[138],并有效地进行全3D光线追踪。在这样做时,你得出一个相当奇特的结论,即地球上的阴影区域不是一个完美的圆;相反,它大致是一个多边形[139],其中每个边与特定的贝利珠有关。这个效应可以持续一秒钟,并且可以使全影边缘移动多达一英里。(你也可以想象与太阳日冕有关的效应,日冕不断变化[140]。)

但最终,即使月亮在地球上的阴影移动速度超过1000英里/小时,现代科学仍然能够成功计算阴影到达地球某点的时间,精确到秒。这就是我们的precisioneclipse.com[141]网站的目的。

日食体验

2017年8月15日写

我在50多年前第一次看到部分日食[142]。在我一生中,我见过一次全日食[143],那是在1991年。这是一个多世纪以来最长的日食(6分钟53秒)。

不过,我的经历有一定的讽刺意味,特别是考虑到我们现在努力预测下周日食的确切到达时间。我包租了一架飞机,飞到墨西哥的一个小机场(是的,那是我,带着傻帽子站在左边),我的朋友们和我走到一个美丽的无人海滩,在没有云的天空下等待全日食开始。

1991年日食旅行照片

我为自己的准备感到自豪——有标明日食到达时间的分钟地图。但后来我意识到:我们在一个没有明显现代文明痕迹的海滩上,没有人带着任何正确设置的计时器(在那些日子里,我的手机只是一个手机,在那里甚至没有信号)。

于是我错过了看到科学成就的一个令人印象深刻的演示。而是我体验了日食几乎就像人们历史上一直体验的那样,即使我知道月亮会继续逐渐吃掉太阳,最终覆盖它,并且不会使世界结束。

天文事件总是令人肃然起敬的,让人意识到与它们相比,人类的尺度是多么微小。在地球的历史上,已经发生了数十亿次日食。记录的历史只覆盖了其中的几千次。平均而言,每个地方大约每400年就会有一次日食;在我计划观看下周日食的怀俄明州杰克逊镇,事实证明下一次全日食[144]将在727年后的2744年发生。

在早期文明中,人们建造巨大的纪念碑来庆祝太阳和月亮的运动。今天,对于下周的日食,我们正在创建的是一个网站[145]。但该网站建立在一个巨大的科学史诗之上——从最早的系统科学时代开始,涵盖了过去几个世纪中许多最著名科学家和数学家的贡献。

距离我在1991年看到的日食大约9538天。月亮在地球周围旅行了大约5亿英里,地球在太阳周围旅行了大约150亿英里。但现在——科学的一个了不起的胜利——我们正在计算它们再次对齐的时间,精确到秒。

期待2024年4月8日

在2017年8月21日的前几天,数百万人访问了我们的网站precisioneclipse.com[146]——他们的地理IP越来越集中在全影路径附近。我前往怀俄明州,并在剩余几小时的时间里找到了一个可以看到整个山谷的清晰位置。现在已经是2017年,我发了一条推文:

2017年日食推文

但我们精心进行的计算真的准确吗?日食将会在俄勒冈海岸登陆,方便的是,我们在那里有一个观察员。从我的位置看,部分日食已经开始。然后我收到一条短信:是的,俄勒冈的全食在预定的秒钟到来。月亮的阴影大约需要不到20分钟到达我这里。

与1991年不同,我和其他人都有一个精确计时的手机,并且能够访问我们的网站precisioneclipse.com[147]

2017年怀俄明州杰克逊镇的Precisioneclipse.com信息

在等待的过程中,我用手指做了小太阳月牙图——重复了50多年前我第一次注意到的事情[148],那时我6岁时第一次看到部分日食:

2017年日食阴影

在日食前几分钟,我开始看到奇怪的闪烁(在我拍的视频中看不见):阴影带,一种奇怪且难以理解的日食现象。然后,它来了,扫过山谷:全食。恰在预定的秒钟到达:

2017年日食到达

我设置了一台相机来拍摄日食视频,并在那天晚些时候进行了分析,由于2017年早些时候我开始常规进行直播,我进行了直播:

2017年日食分析

最后,我将我的笔记本发布到Wolfram Cloud,现在它仍然在那里[149]

Wolfram Cloud日食笔记本

现在已经过去六年了。我们的世界发生了很多变化。但月亮只是无情地继续在它的轨道上行进。2422天后,它将再次对齐,形成一次全日食……

全日食……