一行
一行(683年~727年)中国唐代天文学家,佛学家。原名张遂。魏州昌乐(今河南南乐)人。祖父张公谨是唐代开国功臣,被封为郯国公。父亲张擅为武功县令。
一行自幼勤奋好学、博览经史。他常到藏书丰富的长安城南玄都观去看书,颇受观主尹崇赏识。一次,他从尹崇处借得西汉扬雄《太玄经》,此书意旨深奥,尹崇自称研读数年尚不能晓,张遂仅数日就读完,并能究其义而撰《大衍玄图》一卷。尹崇大惊,对人说:“此后生颜子也。”年轻的张遂成了长安城里的知名学者。
时值武则天之侄武三思任春官尚书,封为梁王。武三思有权有势,但没有才学,想与张遂结交。为逃避武三思的拉拢,张遂21岁出家为僧,取法名一行。先后在嵩山、天台山学习佛经和天文历算,后成为中国佛教密宗之祖。曾译《大日经》等印度佛经,并著《宿曜仪轨》、《七曜星辰别行法》、《北斗七星护摩法》和《梦天火罗九曜》等,为把印度佛教中的天文学和星占学纳入中国古代天文学和星占学的体系作出了贡献。
经唐王朝多次召请,开元五年(717年)回到长安,4年后奉命主持修编新历。他主张在实测基础上制订历法。
开元十一年,他和梁令瓒制成黄道游仪,并用它观测日、月、五星的运动以及恒星的赤道坐标和它们对黄道的相对位置。两人还设计制造了附有自动报时装置的水运浑象。
开元十二年,他主持了全国大规模的天文大地测量,其中南宫说等人在白马、浚仪、扶沟、上蔡(今河南南北方向上的4个地方)所测的当地北极出地高度、夏至日影长度以及它们之间的南北距离最有价值。经一行归算,得出北极出地高度差1度,南北两地相距351唐里80步(约合129.22千米)。这次测量还发现中国古代“日影千里差一寸”的传统观念是错误的。
在大量天文观测的基础上,开元十三年开始编制《大衍历》,开元十五年(727年)完成初稿后去世,后经张说、陈玄景等人整理,开元十七年颁行全国。《大衍历》分历术7篇、略例3篇,历议9篇,编排得条理分明、结构严谨。堪称后来其他历法的楷模。
《大衍历》以定气(见二十四节气)来计算太阳的视运动,在计算中一行发明了不等间距的二次差内插法,还提出“食差”的概念,并对不同地方、不同季节分别创立了被称为“九服食差”(九服是各地的意思)的经验公式,这实际上是对周日视差影响交食的一种改正,由于这种改正,日月食的预报更加精确了。
一行于开元十五年(727)十月去世,玄宗亲自撰塔铭,谥一行“大慧禅师”号。
天文学的发展离不开天文观测的新成果。一行十分重视天文实测工作。他受命改治新历,首先就策划为配合改历所需的一系列实测工作。他奏请朝廷:“今欲创历立元,须知黄道进退,请太史令测候星度。”但是,当时太史局所用测候星度的浑仪上没有黄道环,不能直接测出天体的黄道入宿度。
于是,一行提出要制造一架新的仪器,并与率府兵曹参军梁令瓒先用木料做了一件黄道游仪的模型,后于开元十一年(723年)制成了铜仪。一行、梁令瓒所制的黄道游仪的结构为三重环组。最外一重有三个环,包括地平、子午和卯酉环。
其中卯酉环为过天顶和正东、西方向的一个圆环,这一重环组是固定不动的,起骨架作用。最里一重环组是夹有窥管的四游环,它的外圆周是一丈四尺六寸一分,即以四分弧长为角的一度。中间的一重与李淳风的三辰仪相当,所不同的是在赤道环上每隔一度打一个洞,使黄道环能沿赤道环移动,以适应古人所理解的冬至点沿赤道退行的岁差现象。这是浑仪发展过程的一个创举,第一次在仪器上体现了岁差现象。
同时,这也是黄道游仪的名称由来。由于黄道和白道的交点也是在不断移动的,因而也在黄道上每隔一度穿一个孔,过一定时间后,就把白道环移动一孔。
此外,为了能更方便地进行中天观测,黄道游仪中的四根支柱安放在四个斜角方向。
一行用黄道游仪做了许多工作,主要有月亮的运动和恒星的黄、赤道度数(即经度)及去极度(相当于纬度)的测定。其中月亮运动的观测对《大衍历》的制定有很大意义,特别是为交食计算的准确性提供了基础。而在恒星观测中则发现了恒星位置和南北朝以来的星图、浑象所标的位置已经有所不同。
根据这些实测结果,《大衍历》革除了沿用了数百年的陈旧数据,取而代之以新的观测数值。一行在恒星观测方面是成绩卓著的。
一行在天文仪器制造方面的第二件创作,是他与梁令瓒及诸术士合作制造的一台名叫“水运浑天俯视图”的浑天象。它不但能演示天球和日月的运行,而且立了两个木人,按刻击鼓,按辰撞钟,集浑天象与自鸣钟于一体。
《旧唐书》对此台仪器的结构有详细的记载:“铸铜为圆天之象,上具列宿赤道及周天度数。注水激轮,令其自转,一日一夜,天转一周。又别置二轮络在天外,缀以日月,全得运行。每天西转一匝,日东行一度,月行十三度十九分度之七,凡二十九转有余而日月会,三百六十五转而日行匝。仍置木柜以为地平,令仪半在地平下,晦明朔望,迟速有准。又立二木人于地平之上,前置钟鼓。以辰刻,每一刻自然击鼓,每辰则自然撞钟。当时共称其妙。”
一行还创造了一种测量北极出地高度(即所测地的地理纬度)的专用新仪器——“覆矩”(又叫“覆矩图”)。关于覆矩的式样,史料没有详细记载。
根据我们的考证,“矩”在中国古代天算典籍中有两种含义:一是形似木工曲尺的平面区域,即所谓的“积矩”;一是勾股形中的勾边加股边夹一直角构成的直角折线,即所谓的“矩线”。“覆矩”当理解为将积矩开口向下。
《旧唐书·天文志》有“以覆矩斜视,北极出地”多少度的记载,又说:“以图(即覆矩图)校安南,日在天顶北二度四分”。这说明一行的覆矩是一种用“角度”表示地平高度的测量工具。在覆矩的直角顶点系以重锤,在两直角边间安装一个0度到91.31度(因中国古代历法多取圆周为365.25度,故直角当为91.31度)的量角器。使用时,把覆矩的一个特定边指向北极,使此边恰好在人眼和北极的连线上,则重锤线即能在量角器上直接读出北极的地平高度。
一行发明的覆矩是一种简便的测量北极高度的仪器,它在一行领导的开元年间天文大地测量活动中,起到了非常重要的作用。
一行受诏改历后组织发起了一次大规模的天文大地测量工作。这次测量,用实测数据彻底地否定了历史上的“日影一寸,地差千里”的错误理论,提供了相当精确的地球子午线一度弧的长度。
一行发起这次大规模的天文测量主要目的有二。
其一,中国古代有一种传统理论:“日影一寸,地差千里。”刘宋时期的天算家何承天根据当时在交州(今越南河内一带)的测量数据,开始对此提出了怀疑,但长期未能得到证实。
隋朝天算家刘焯则提出了用实测结果来否定这一错误说法的具体计划,他说:“交爱之州,表北无影,计无万里,南过戴日,是千里一寸,非其实差。”他建议:“请一水工,并解算术士,取河南北平地之所,可量数百里,南北使正。审时以漏,平地以绳,随气至分,同日度影。得其差率,里即可知。则天地无所匿其形,辰象无所逃其数,超前显圣,效象除疑。”但这个建议在隋朝没有被采纳。一行的测量则实现了这一计划。
其二,当时发现,观测地点不同,日食发生的时刻和所见食象都不同,各节气的日影长度和漏刻昼夜分也不相同。这种现象是过去的历法所没有考虑到的。这就需要到各地进行实地测量。
这次测量过程中,由太史监南宫说及太史官大相元太等人分赴各地,“测候日影,回日奏闻”。而一行“则以南北日影较量,用勾股法算之”。可见,一行不仅负责组织领导了这次测量工作,而且亲自承担了测量数据的分析计算工作。
当时测量的范围很广,北到北纬51度左右的铁勒回纥部(今蒙古乌兰巴托西南),南到约北纬18度的林邑(今越南的中部)等十三处,超出了现在中国南北的陆地疆界。这样的规模在世界科学史上都是空前的。
其中最值得注意的是由南宫说亲自率领的测量队,按刘焯的计划在黄河两岸平原地区测量的四个点,由北向南有滑州白马(今河南滑县)、汴州浚仪太岳台(今开封西北)、许州扶沟(今河南扶沟)、豫州上蔡武津馆(今河南上蔡)。其中白马在黄河北,其他三点都在黄河以南。它们均介于东经114.2度—114.5度之间,差不多在同一经度上(即刘焯所说的“南北使正”)。总计白马至上蔡526里270步,北极高度相差1.5度,从而得出大约三百五十一里八十步,北极高度相差一度的结论。这实际上给出了地球子午线一度的长度。
由于对唐尺数值的大小,人们目前的看法还不一致,故评价一行这次子午线测量的精度受到限制。初步的估计结果是,一行的测量值与现代值相比,相对误差大约为11.8%。
国外最早的子午线实测是在公元814年,由天文学家阿尔·花剌子米(约783—850)参与组织,在幼发拉底河平原进行了一次大地测量,测算结果得出子午线一度长为111.815公里(现代理论值为110.6公里),相当精确。但这已在一行之后九十年了。
中国古代历法从东汉《四分历》开始,就有各节气初日晷影长度和太阳去极度的观测记录,漏刻、晷影成为古代历法的重要计算项目。隋朝刘焯发明二次等间距插值法之后,李淳风首先将二次插值法引入到漏刻计算中,由每气初日的漏刻、晷影长度数求该气各日的漏刻、晷影数。
但是,各历法中所记载和计算的漏刻和晷影大多是阳城(今河南登封东南告成镇)的数值。一行在编制《大衍历》时,曾进行了大规模的天文测量,通过观测知道,随去极度变化的影长,又因地方而异,但同太阳的天顶距有固定的对应关系。一行在《大衍历》中发明了求任何地方每日影长和去极度的计算方法,叫做“九服晷影”。
历法中已给出阳城各气初日的太阳去极度,则各气的去极度差即为已知,同样各气的太阳天顶距差亦为已知,而这个差数对于任一地点都是相等的。
这样一来,对于任一地方,只要知道某一节气(如夏至)的太阳天顶距,其他各气的太阳天顶距都可以通过加减这个差数求出。剩下还要解决以下两个问题:其一,如何求某地夏至(或冬至)的太阳天顶距;其二,已知天顶距如何换算出晷影长。这两个问题都可以通过建立一个影长与太阳天顶距的对应数表来解决。
如果列出一张以天顶距为引数,每隔一度的影长的数值表,则以上两个问题都可以解决:先在所测地测出(冬)夏至晷影长度(在一行领导的大地测量中,在每处都进行了这样的测量),由影长查表得出太阳天顶距,再加减一个如前所述的差数即可求出该地各气的天顶距,返回再查表得影长。
一行在《大衍历》“步晷漏术”中就建立了这样一个从0度到80度的每度影长与太阳天顶距对应数表,这是世界数学史上最早的一张正切函数表。
在国外,大约920年左右,阿拉伯学者阿尔·巴坦尼(约858年—929年)根据影长与太阳仰角之间的关系,编制了0度—90度每隔一度时12尺竿子的影长表,这实际上是一个12ctgα的数表。另一位阿拉伯学者阿尔·威发(940—998)在980年左右编成了正切和余切函数表,每隔15度和10度给出一个值。他还首次引进了正割和余割函数。
一行和阿尔·巴坦尼差不多沿着相同的途径编成正切和余切函数表。一行用太阳天顶距,阿尔·巴坦尼用太阳仰角,两者互为余角,所以他们两人的发现是相同的。而一行的正切函数表比阿尔·巴坦尼的余切函数表早近两百年,比阿尔·威发的正切表要早二百五十年。尽管一行的正切函数表只从0度到80度,误差也相应大一些,但它毕竟是世界上最早的正切函数表。
今天常用的牛顿插值公式,其不等间距的形式比等间距的形式要复杂得多。天算史界有一种流行的看法,认为在中国古代,唐朝天文学家、数学家一行在其《大衍历》中发明了二次不等间距插值法,且一行还有意识地应用了三次差内插法近似公式。因此,一行在插值法方面的贡献备受中外天算史研究者的关注。
中国古代非线性插值法,是刘焯在其《皇极历》(604年)中考虑到太阳运动不均匀性为计算太阳行度改正值时首创的。有关中国古代插值法的算理研究的新成果表明,刘焯二次等间距插值法的造术原理建立在源于《九章算术》描述匀变速运动的模型基础之上,认为太阳每日的运行速度之值构成一等差数列。换言之,所用数学方法就是构造一等差数列并求其前若干项和。
一行的插值法并没有人们所想象那样的推广意义。就插值算法本身,一行算法与刘焯算法实质完全相同。所不同的是,《皇极历》是在以平气为间隔的日躔表基础上插值。而《大衍历》是在以定气为间隔的日躔表上插值。
《太初历》以后,各历都以平分一回归年365.25日为24等份而得每节气长15.22日,这样规定的二十四气称为“常气”,或叫“平气”。张子信指出“日行春分后则迟,秋分后则速”,于是刘焯造《皇极历》时体会到二十四气皆应有“定日”,他说:“春、秋分定日去冬至各八十八日有奇,去夏至各九十三日有奇。”但刘焯并没有搞清楚太阳速度的加减和季节的关系,他的日躔表是把秋分定日后到春分定日前平均分为12段,每气14.54日;春分定日后到秋分定日前也平分为12段,每气15.45日。这显然不是“定气”。
一行认为,太阳在一回归年365.2444日中共行365.2444度,每气行15.2185度。冬至附近日行速度最急,故二气间所需运行时间最短,夏至附近日行速度最缓,故二气间的时间最长。
实际上,《大衍历》这里首先提出了平分黄道为24等份,以太阳实际走完每个等份的时间长度为各节气长度,这就是通常所称的“定气”概念。一行提出正确的定气概念以后,在计算太阳改正时自然就以定气为插值间隔。至于插值法本身则完全是沿用刘焯的方法。
值得一提的是,刘焯在日躔表中规定太阳视运动一年内的变化规律是:冬至最快,冬至后渐慢,到立春时开始加快,春分时又达到最快,冬至到春分这段时间内日速比平均速度快。春分后太阳视运动的速度突变为最慢,之后逐渐加快,到立夏时又开始减慢,夏至达到最慢。春分到夏至时段内比平均速度慢。夏至以后的变化情况以夏至处为镜面对称。
《大衍历》盈缩分一年内的变化趋势将盈缩分在冬至附近最大,以后逐渐变小,夏至时最小,之后又逐渐增大。这相当于把冬至作为太阳视运动的近日点,夏至为远日点。这种认识是正确的,而《皇极历》的规定是不符合实际的。
说一行有意识地应用了三次差内插法的近似公式,是指《大衍历》的月亮极黄纬算法和五星中心差改正算法中所用的插值法。当对中国古代历法中的插值法的构造原理有了深入的认识之后,研究者进一步通过将这两处插值法的有关术文与刘焯二次等间距插值法的术文进行对比研究,证明两者在实质上也是相同的。
人们之所以会认为《大衍历》使用了三次差插值法,是因为《大衍历》在上述两种算法的插值法中都引入了“中差”概念的缘故。
但实际上一行引入“中差”的原因在于,刘焯日躔表中的各气陟降率之差是相等的,而《大衍历》月亮极黄纬等数表相邻两栏的差一般不等。这种现象的出现,正是一行受命改历时作了大量天文观测的结果。若仍照搬《皇极历》的做法,就会出现同一点处有可能得到两个不同的值的现象,这就迫使一行必须在计算方法上进行一点细节上的调整。
一行作为科学家,在中国科技史上具有重要的地位,作为佛教高僧,一行传承胎藏和金刚两大部密法,在密宗史上的作用,不只系统组织密教的教义教规,也把两大部融合起来。集科学家与高僧于一身这个特殊身份本身,也说明佛法和科学技术在一定条件下的相融性。