书城科普读物求知文库-天文探索精神
26390100000006

第6章 一行(2)

负责这四处测量工作的南宫说也是一位天文学家。705年,唐中宗李显复位后,南宫说当时担任太史丞,就奉诏编造新历。到景龙年间(公元707-710年)新历编成,却因睿宗李旦即位而未予采用。新历名为神龙历,因神龙元年岁在乙巳,所以又称为乙巳元历。

乙巳元历的回归年值为3652448日,朔望月为295306日,它的数据测定都用黄道坐标而不用传统的赤道坐标。为便于计算,乙巳元历首次废除了繁复的分数数据,而一律行用余、奇、小分形式的百进位制。

一行、南宫说等人作出这些安排的主要用意是:验证前人关于地南北距千里,夏至午中晷影差一寸的说法。例如东汉的张衡(公元78-139年)在他的天文学名著《灵宪》中也是这种说法。对测量结果进行了简单计算,一行得到的结论是大约南北相距200余里,夏至晷影便相差一寸,从而证实了前人的说法是错误的,测量的目的已经达到了。

一行又对所有的测量结果作了更深入的分析研究,他发现了这样重要的事实:

第一,A地至B地、C地至D地的里差相同,但它们冬至(或夏至)的晷差却不同;

第二,E地至F地、G地至H地的里差不同,但它们冬至(或夏至)的晷差却一样。

这个事实说明了各地的里差和晷差之间并不存在线性关系,这是从更深的层次上否定了前人千里差寸的错误说法,同时也促使一行作进一步的探索。当对各地里差与北极出地高度差之间的关系进行比较分析时,一行得出了北极高度一度,南北两地相距35127唐里(约合子午线1°长13111公里)的结论,这比现代的测量结果偏大约2017公里,精度并不高。他们在这四处地点进行测量时,并不知道这个工作巨大的天文学意义,但是,在客观上,他们则是在世界上第一次对子午线1°进行了实测工作。

南宫说等人完成这次实测的时间是公元725年。

公元814年,阿拉伯天文学家阿尔·花刺子模等人进行了同样的工作,时间上比中国晚90年。

公元725年,一行在大规模实地观测和吸收前人研究成果的基础上,开始制定新历。

公元726年,一行继续撰写新历,除此以外,还为他的叔祖父张太素撰写的《后魏书》补续《天文志》。今传本《后魏书·天象志》第三、四卷就是出于一行的手笔。

计算太阳的运行

公元727年,一行完成了新历的初稿,取名大衍历。

大衍历全书共计52卷,其中包括:

《开元大衍历经》1卷(新历法本身):

一步中朔术(计算24节气和朔望弦晦的平均时间)

二步发敛术(计算72候,5日算1候,用鸟兽草木的变化来描述气候的变化)

三步日躔(chán)术(计算太阳的运行)

四步月离术(计算月亮的运行)

五步轨漏术(计算时刻)

六步交会术(日食和月食的计算)

七步五星术(计算五大行星的运行)

《立成法》12卷(新历法本身的各种数值表格)。

《历议》10卷(对传统历法的得失、演进进行综述和评论的专题论文集):

第一议历本

第二议日度

第三议中气

第四议合朔

第五议卦候

第六议九道

第七议日晷

第八议分野

第九议五星

第十议日食

《略例奏章》1卷(关于新历法的理论说明)。

以上24卷大部分内容收载于新、旧唐书的历志和天文志中。

《长历》3卷(大约是依新历法推算而得的古今若干年代的日、月、五星位置的长编)。

《古今历书》24卷(可能是对前代23家历法连同新历本身共计24家历法的异同、疏密进行比较研究的论集)。

《天竺九执历》1卷(关于印度历法的译著及其研究)后28卷的内容已佚而不存。

从大衍历的目录中可以看出,大衍历有对古今中外历法的详细考证、评议与研究,有对新历法立论、数据、表格以及计算方法的详细说明,有依据新历法推算而得的具体结果,构成了十分严谨和完善的有机整体。

从《开元大衍历经》的七章编次法来看,内容系统,结构合理,逻辑严密,在明朝末年以前一直被沿用。

大衍历最突出的贡献是比较正确地掌握了太阳在黄道上视运行速度变化的规律。

中国古代的天文学家一直认为太阳运动的速度是均匀的,他们把黄道等分为36525度,认为太阳每天均速地走过一度。从这里出发,把全年365天多均分为24个节气,叫做“平气”或“恒气”。

在古希腊,天文学家们却早就发现太阳的运动是不均匀的(公元前2世纪,依巴谷)。

这是因为,中国古代的浑仪主要以测量天体的赤道坐标为主,当用浑仪观测太阳时,太阳每日行度的较小变化往往被赤道坐标与黄道坐标之间存在的变换关系所掩盖。

刘洪(公元129-210年)在关于交食的研究中,发现对交食食时的预推和实测纪录之间的时间差与交食所发生的月份有稳定的关系,但是他没有意识到这是由于太阳运动的不均匀性所造成的。

张子信(6世纪20-60年代)经过30年的观测,发现了太阳运动的不均匀性,他说,太阳在春分后运行的就慢,秋分后就快,他还绘制了我国最早的一份太阳运动不均匀性改正的数值表格。

刘焯在编制皇极历的时候考虑到了这一情况,改用“定气”,以太阳所在位置为准,而不是以均分的时间为准。由于太阳运动速度是变化的,因而两气相隔的日数是不同的。但是太阳在天球上恒星间的视位置是不能直接观测到的,因为白天太阳太亮而看不到其他的星。这就需要靠计算来确定每日太阳的位置和运动速度。为了解决这个问题,刘焯第一个采用多项式内插法,提出了等间距二次内插法公式,成为天文计算的转折点。

但是,刘焯对太阳运动速度在一年中变化规律的认识并不正确,存在着三个大缺陷:

第一,它以春分、秋分和夏至、冬至的太阳的盈缩度相同;第二,对春分、秋分前两个节气太阳盈缩度的测算存在着较大的误差;第三,对太阳中心差极值的测算偏大。

一行在大衍历中,对太阳运动的不均匀性现象进行了新的描述,他指出太阳在一回归年内视运动迟疾的总体状况应该是:冬至时最快,后渐慢,抵春分时辰平,后仍渐慢,达夏至时最慢,后渐快,抵秋分时辰平,后仍渐快,冬至时最快,如此循环往复。而且一行还认为太阳运动速度的快慢是渐变的,而不是突变式的。这些都纠正了刘焯以来对太阳视运动迟疾总体规律描述的失误。

但是,一行对若干节气段太阳视运动实际速度的定量描述存在着较大的缺欠,致使大衍历日躔表的平均精度稍逊于刘焯的皇极历。虽然如此,一行毕竟是把对太阳视运动迟疾的总认识引上正确轨道的第一人,后世历家无不循其说,并不断有所改进。

根据一行等人的测算,从冬至到春分,太阳运行36525的1/4,大约9131度,交了6个节气,共用了8889日。从春分到夏至,太阳也走过9131度,共需9337日。秋分前后的情况和春分前后相同。这就用具体数据表明,每二气之间黄道上的度数相同,而时间间隔是不等的。一行进一步创造了不等间距的二次内插法公式,把刘焯的定气计算又推进了一步,不仅对天文计算有重要意义,而且在世界数学发展史上也具有一定的意义。

一行在阳城(今河南登封)对冬至时刻的测定,做了十分认真的测影工作。

祖冲之(公元429-500年)关于冬至时刻的测定,首创了巧妙的测量与计算方法,并取得相当好的测算结果。一行在测影工作的基础上,依据祖冲之的冬至时刻计算法,推求得开元十二年十一月癸未日九十九刻(公元724年12月18日23时45分36秒)为冬至时刻,这一结果与理论值完全吻合。

大衍历对于每年冬至时刻的计算,正是建立在这样准确的测算前提之下的,所以具有很高的准确度,这也就大大提高了二十四节气时刻等一系列与太阳运动有关的历法问题的计算精度。

一行对于冬至时太阳所在恒星间位置的测算,也做了相当出色的工作。

由于太阳的光芒强烈炫目,只要太阳处于地平线之上,便将背景中的恒星全部隐去,而失去直接判断太阳位置的参照物。人们最早时是当太阳落下之后或升起之前的短暂时刻,通过观测昏旦中星(过子午圈的恒星)来间接推测得知。

后秦时的姜芨首创了在月食时测量月亮在恒星间的位置,由此可知与之正相对的太阳的位置,这样就可以消除在昏旦时进行间接测量由于时刻不准确等原因所导致的误差,得到较为准确的结果。姜芨的这种方法称为月食冲法。

一行利用姜芨发明的月食冲法,得到开元十二年冬至时太阳在赤道斗宿105度的结果,这个数值与理论数值的误差为19度,这个误差主要是由于二十八宿距度测量的累积误差造成的,而用月食冲法测量的偶然误差仅01度。

由于地球绕日时自转轴与公转轴倾斜,使地球上日照的倾角发生周期性变化,从而发生季节变化,其变化周期可用中午日影长度的变化度量。然而,中国天文学产生的初期,却是利用季节星象判断季节的。日照倾角的变化为回归年,季节星象为恒星年,回归年和恒星年每年相差不到1分,叫做岁差。

由于中国古时的度量系统是赤道式的,而且采用二十八宿入宿度这种以赤径差计量的特殊表达方式,致使古人不知存在差异,发现岁差较晚。

约公元330年,虞喜(公元281—356年)发现,依照《尧典》的记载,冬至时的昏中星为昴星,而到了虞喜的时代,冬至昏中星为壁9度。这就是说,从帝尧到东晋这段时间内,冬至昏中星已从昴宿,经胃宿14度、娄宿12度、奎宿16度,退行至壁宿9度,合计退行51度。虞喜估计唐尧时代相距2700年,由此可求得约53年岁差1度。

一行应用冬至时太阳所在恒星间位置的测算工作得到的客观结果,又基于对大量的历史纪录的详尽考查,对岁差现象确信无疑。为此,他写成了洋洋万余言的《大衍历议·日度议》,他说:

“古历,日有常度,天周为岁终,故系星度于节气。其说似是而非,故久而益差。虞喜觉之,使天为天,岁为岁,乃立差以追其变,使五十年退一度。”

这段话告诉我们,虞喜曾指出,古历将节气与星度相等同是不正确的,寒暑变化1周不等于太阳在恒星间运行1周。因此便分清了周天与周岁的不同概念,并且求出了二者具体的差数为50年退1度。这个差数便称之为岁差,其含义是,太阳在黄道上运动,经过1岁之后并未回到原处,尚差1/50度(赤经差)。这个岁差概念,与近代所理解的赤道岁差相当。

但是唐初的李淳风和王孝通不相信有岁差。

李淳风由于不相信有岁差,所以在他撰写的《晋书·天文志》和《律历志》中,对虞喜的这个重大发现并未予以记载。

王孝通在公元626年校正傅仁均历时,还根据远远落后于当时天文学发展水平的隋张宾开皇历来指责傅仁均,说他不应该在计算时使用岁差。

一行在《日度议》中驳正了李淳风、王孝通这两位历算名家对岁差现象的怀疑,从而结束了虞喜发现岁差现象以后约400年间的一些历家对这一重要天文概念的犹疑以至反对的状况,使岁差成为定论。

一行推算得每经1年太阳沿赤道西退3675分(3040分为1度),即赤经岁差为每8272年退1度(约等于429″),该值偏小,但却对唐宗一些历法产生了较大的影响。

一行对太阳运动的研究成果还反映在关于每日晷长和昼夜漏刻长度的测算上。在大衍历中,一行列出了阳城二十四节气中午日影长和昼夜漏刻长度的数值表(晷漏表),它们是经由实测,再经一定的推算得到的。这个表与以前不同的地方是,把平气改为定气,而且精度大为提高,他的晷长表的误差是0022尺,漏刻表的误差是05刻。

一行在晷漏问题上,更主要的贡献是创立了晷漏长度随地理纬度不同而不一样的近似算法,也就是所谓“九服晷漏”计算法。

大衍历的九服晷长计算法包括以下五个步骤:

第一,先给出太阳天顶距(Z)为1至78度时,8尺表的各相应影长(L)的数值表格(Z—L表)。这个表格的天文和数学含义应是:L=8×tgZ。根据这个含义可以认为它是一份正切函数表,而且是世界上最早的正切函数表。

但是,它不是纯正的正切函数表,而是为解决特定的天文学问题而编制的数值表格,而且它不是由纯数学的方法导出的。这个表中与Z<44度相应L值的准确度较高,而与Z>44度相应的L值的准确度骤减,这可能是由于Z<44度相应的L值是参用了在阳城测影的实际结果,而Z>44度相应的L值是应用某种数学方式或者是经验方法外推得到的。

第二,以某地实测得到的夏至和冬至的影长值为引数,由Z—L表依一次差内插法反推出相应的Z值,它就是某地夏至和冬至时太阳午中天顶距的度值(Z1)。

第三,在大衍历的晷漏表中还载有阳城在二十四节气时太阳去极度的数值,任意节气与夏至、冬至太阳去极度的差,也就是夏至、冬至两节气时太阳午中天顶距的差(Z0),它不但适用于阳城,而且也适用于其他任意地点。于是,某地二十四节气时午中天顶距的度值。Zh=Z1±Z0第四,以Zh为引数,由z—L表依一次差内插法求得相应的L值,这就是某地二十四节气时午中的影长值(Lh)。

第五,欲求某地任意时日的影长值,由诸Lh值依一次差内插法计算。

这个五步推法的思路十分清晰,天文和数学意义也是合理的,但是由于Z—L表、某地实测夏至、冬至影长值、阳城二十四节气时太阳去极度值以及应用一次差内插法等都存在或大或小的误差,所以,一行的九服晷长计算法还仅仅是一种近似算法。

大衍历的九服漏刻计算法是建立在太阳视赤纬变化和昼夜漏刻长度变化成正比的大胆假设基础上的。已知夏至、冬至时太阳视赤纬的差是478度,某地夏至、冬至时昼(或夜)漏刻值(K1)可由实测得到,二者的差为,K0。

又已知夏至、冬至时太阳午中天顶距之差(Z0),那么某地二十四节气时Z0昼(或夜)漏刻值由于这种假设带有比较大的偏差,所以,一行的k=Kn=K1±K0Z047.8°九服漏刻计算法也只能是一种近似算法。

日月食、五星运动的计算