第四节 《大衍历》的插值算法
今天常用的牛顿插值公式,其不等间距的形式比等间距的形式要复杂得多。天算史界有一种流行的看法,认为在中国古代,唐朝天文学家、数学家一行在其《大衍历》中发明了二次不等间距插值法,且一行还有意识地应用了三次差内插法近似公式①。因此,一行在插值法方面的贡献备受中外天算史研究者的关注。
我国古代非线性插值法,是刘焯在其《皇极历》(604)中考虑到太阳运动不均匀性为计算太阳行度改正值时首创的。有关中国古代插值法的算理研究的新成果表明,刘焯二次等间距插值法的造术原理建立在源于《九章算术》描述匀变速运动的模型基础之上,认为太阳每日的运行速度之值构成一等差数列。质言之,所用数学方法就是构造一等差数列并求其前若干项和。一行的插值法并没有人们所想象那样的推广意义。就插值算法本身,一行算法与刘焯算法实质完全相同②。所不同的是,《皇极历》是在以平气为间隔的日躔表基础上插值。而《大衍历》是在以定气为间隔的日躔表上插值。
《太初历》以后,各历都以平分一回归年365.25日为24等份而得每节气长15.22日,这样规定的二十四气称为“常气”,或叫“平气”。张子信指出“日行春分后则迟,秋分后则速”,于是刘焯造《皇极历》时体会到二十四气皆应有“定日”,他说:“春、秋分定日去冬至各八十八日有奇,去夏至各九十三日有奇。”但刘焯并没有搞清楚太阳速度的加减和季节的关系,他的日躔表是把秋分定日后到春分定日前平均分为12段,每气14.54日;春分定日后到秋分定日前也平分为12段,每气15.45日。这显然不是“定气”。一行则认为,太阳在一回归年365.2444日中共行365.2444度,每气行15.2185度。冬至附近日行速度最急,故二气间所需运行时间最短,夏至附近日行速度最缓,故二气间的时间最长。实际上,《大衍历》这里首先提出了平分黄道为24等份,以太阳实际走完每个等份的时间长度为各节气长度,这就是通常所称的“定气”概念。一行提出正确的定气概念以后,在计算太阳改正时自然就以定气为插值间隔。至于插值法本身则完全是沿用刘焯的方法。
值得一提的是,刘焯在日躔表中规定太阳视运动一年内的变化规律是:冬至最快,冬至后渐慢,到立春时开始加快,春分时又达到最快,冬至到春分这段时间内日速比平均速度快。春分后太阳视运动的速度突变为最慢,之后逐渐加快,到立夏时又开始减慢,夏至达到最慢。春分到夏至时段内比平均速度慢。夏至以后的变化情况以夏至处为镜面对称,如图3所示。
《大衍历》盈缩分一年内的变化趋势则如图4所示。盈缩分在冬至附近最大,以后逐渐变小,夏至时最小,之后又逐渐增大。这相当于把冬至作为太阳视运动的近日点,夏至为远日点。这种认识是正确的,而《皇极历》的规定是不符合实际的。
说一行有意识地应用了三次差内插法的近似公式,是指《大衍历》的月亮极黄纬算法和五星中心差改正算法中所用的插值法。当对我国古代历法中的插值法的构造原理有了深入的认识之后,研究者进一步通过将这两处插值法的有关术文与刘焯二次等间距插值法的术文进行对比研究,证明两者在实质上也是相同的。
人们之所以会认为《大衍历》使用了三次差插值法,是因为《大衍历》在上述两种算法的插值法中都引入了“中差”概念的缘故。但实际上一行引入“中差”的原因在于,刘焯日躔表中的各气陟降率之差是相等的,而《大衍历》月亮极黄纬等数表相邻两栏的差一般不等。这种现象的出现,正是一行受命改历时作了大量天文观测的结果。若仍照搬《皇极历》的做法,就会出现同一点处有可能得到两个不同的值的现象,这就迫使一行必须在计算方法上进行一点细节上的调整。
①严敦杰:《中国古代数理天文学的特点》,《科技史文集》(第1辑),上海科学技术出版社1978年版,第1—4页。
②王荣彬:《中国古代历法中的插值法构建原理》,见曲安京、纪志刚、王荣彬:《中国古代数理天文学探析》,西北大学出版社1994年版,第251—317页。
第四节 《大衍历》的插值算法
中国通史
白寿彝总主编;王桧林,郭大钧,鲁振祥卷主编