《宣明历》中的五星平见加减历

时间:2023-10-03 08:40:06 来源:网友投稿

唐 泉

(西北大学科学史高等研究院,西安 710127)

唐代徐昂所撰《宣明历》从唐穆宗长庆二年(822)开始行用,至唐昭宗景福元年(892)被边冈《崇玄历》所取代,共行用七十年。《新唐书·历志六上》对《宣明历》评价甚高:

自敬宗至于僖宗,皆遵用之。虽朝廷多故,不暇讨论,然《大衍历》后,法制简易,合望密近,无能出其右者。([1],页2324)

《宣明历》受《大衍历》的影响非常大,关于二者的继承关系,《新唐书·历志六上》有一个简要的概括说明:

(《宣明历》)上元七曜,起赤道虚九度。其气朔、发敛、日躔、月离,皆因《大衍》旧术;
晷漏、交会,则稍增损之;
更立新数,以步五星。([1],页2319)

由上述引文可知,《宣明历》中气朔、发敛、日躔、月离四章均沿袭《大衍历》算法,步晷漏和步交会两章内容相比《大衍历》稍微有一些增损。从“更立新数,以步五星”这句评价来看,《宣明历》行星理论相比《大衍历》确实有一些创新之处。

《宣明历》的最大创新,是在步交会术中首创日食三差算法。日食三差包括气差、刻差和时差,是中国古代历法家为修正月亮视差对日食计算的影响而设计的一套算法,在中国古代日食理论中占有非常重要的地位。宋代历法家周琮在历数《明天历》以前各部历法的重要创新时,特别提到了《宣明历》首创日食三差算法之功[2]。关于《宣明历》中的日食三差算法,薮内清[3]、陈美东([4],页404—406)、曲安京[5]和唐泉[6,7]等学者均有较为详细的讨论。

需要指出,《宣明历》除了在日食理论中首创日食三差算法,在行星理论中也有很多创新,正如《新唐书·历志六上》以“更立新数,以步五星”来评价《宣明历》的行星理论。那么,在《宣明历》行星理论中,徐昂究竟设计了哪些不同于《大衍历》行星理论的“新数”?《新唐书》不载《宣明历》全文,只记载了《宣明历》的天文常数与算表,以及《宣明历》中与《大衍历》不同的一些算法。传入日本和朝鲜的《宣明历》虽然气朔、发敛、日躔、月离、晷漏和交会等六章内容都比较完整,但是不载步五星术,这对学者全面了解《宣明历》步五星术的全貌及所立“新数”造成了很大困难。

虽然我们无法了解《宣明历》行星理论全貌,但是根据《新唐书》所载《宣明历》行星理论中的天文常数、算表以及一些算法的简要说明,我们仍然可以大致了解《宣明历》行星理论的核心思想与主要算法。五星平见加减历是《宣明历》行星理论中最重要的天文算表,《宣明历》行星理论中的主要创新,基本都与这张天文算表密切相关。例如,《宣明历》行星理论中的天文常数“差率”“差数”和“变差”,五星定见算法以及推求日度定率的算法,五星动态表中的加减数,都与五星平见加减历有直接关联。从这个意义上来说,全面理解《宣明历》五星平见加减历的内容与天文意义,是理解《宣明历》行星理论的核心思想与主要算法的关键所在。

长期以来,《宣明历》在行星理论方面的创新一直未引起学者的高度重视。大多数天文学史的通史类著作在专门研究《宣明历》的章节中,就没有涉及《宣明历》的行星理论[8]。少数通史类著作即使关注过《宣明历》中的行星理论,论述也都比较简略([4],页406—407)。陈美东曾深入研究过中国古代历法中的五星盈缩历及其精度,但是他对《宣明历》五星平见加减历的评价并不高,甚至认为《宣明历》中的五星平见加减历与《大衍历》中的五星爻象历相比是一种退步([9],页461—464)。

本文中,我们将从《新唐书》所载《宣明历》行星理论的天文常数、算表和部分算法的说明文字出发,将《宣明历》行星理论置于唐代行星理论发展的大背景中,深入考察《宣明历》在行星理论创新方面所做的努力。本文的讨论将按照以下次序展开:首先,深入考察《宣明历》五星平见加减历的结构与天文意义;
其次,讨论与五星平见加减历密切相关的五星动态表;
最后,讨论《宣明历》五星平见加减历的精度。由于中国古代行星理论中内行星算法的原理尚未被很好地揭示,因此本文的讨论仅限于三个外行星而不包括内行星,后面的讨论将不再为此进行特别说明。

从唐代《大衍历》开始,绝大多数历法都会在“步五星术”章设计修正行星中心差的天文算表。这类天文算表在不同的历法中称谓不同,例如在《大衍历》中称为“五星爻象历”,在《宣明历》中称为“五星平见加减历”,而在宋代《崇天历》及其以后的历法中,通常称为“五星盈缩历”。《宣明历》中的五星平见加减历是《宣明历》行星理论中最重要的创新,《宣明历》行星理论中的其他创新,基本都与这张天文算表密切相关。

《新唐书》所载《宣明历》五星平见加减历采取横排形式,本文为排版方便,在不改变原表结构及内容的前提下,按照现代习惯对其进行重新编排,结果如表1所示。

表1 《宣明历》五星平见加减历 (1)表1中数据显示,对于木星、火星、金星和水星而言,标识“加空”和“减空”的两变均相距12变。不过,表1中并未直接标识土星平见加减差“加空”所在位置,仅在阳历十变标识“加七十六”,根据其他四星加空与减空相距十二变的原则,可以将土星九变“76”改为“加空”,十变“加76”改为“76”。(2)根据对称性,此处应为227。

续表1

由于《宣明历》在行星理论中所立“新数”是与《大衍历》行星理论相比较而言的,因此,为了更好地考察《宣明历》五星平见加减历的特别之处,我们有必要简要介绍一下《大衍历》五星爻象历的结构与意义,这是一张与《宣明历》五星平见加减历功能类似的天文算表。《大衍历》五星爻象历是中国历法中最早出现的行星中心差表,在中国行星理论发展史上具有首创之功。《大衍历》五星爻象历包括三栏内容([1],页2093—2097)。第一栏为爻目,《大衍历》将行星在一个近点周期内运行的度距均分为四段,称为四象,从近日点起,依次称为少阳、老阳、少阴、老阴,每象又均分为六爻。第三栏为进退积,其意义相当于行星中心差,进退积除以辰法760,化为度数。在少阳和老阳两象,进退积为“进”;
在少阴和老阴两象,进退积为“退”。第二栏为损益率,损益率意为相邻两爻进退积之差,进退积绝对值增加,称为“益”,进退积绝对值减小,称为“损”。

从表1可以看到,《宣明历》将五个行星的平见加减历列在同一张表中,每个行星的平见加减历只有两栏内容。第一栏为变数,与《大衍历》类似,《宣明历》将行星在一个近点周期内运行的度距等分为两段,分别称为阳历和阴历,阳历和阴历又分别等分为12变。第二栏为行星的加减差,其数值除以《宣明历》刻法84,可以化为日数或度数。每个行星的加减差,都会在阳历或阴历的某一变,用“加空”或者“减空”进行标识,所谓“加空”就是“加0”,即从标识“加空”的这一变开始,五星平见加减差均为正,所谓“减空”就是“减0”,即从标识“减空”的这一变开始,五星平见加减差均为负。

从形式上看,《宣明历》五星平见加减历与《大衍历》五星爻象历既有相同之处,也有不同之处。二者的相同之处是,两部历法均采取24段划分法,这种划分法被《宣明历》以后的历法所采纳。二者的不同之处有两点:其一,《大衍历》五星爻象历列出了相邻两爻进退积之差——损益率,而《宣明历》五星平见加减历则不载相邻两变加减差之差——损益率;
其二,《大衍历》五星爻象历中少阳初变对应行星近日点,而《宣明历》五星平见加减历中阳历初变则不一定对应行星近日点。自唐代《大衍历》始,各部历法中修正行星中心差的天文算表的第一栏,通常都是从近日点起算的,但是《宣明历》五星平见加减历却是一个例外,其阳历初变并非对应行星近日点。在《宣明历》五星平见加减历中,标识“加空”的诸变起点对应行星近日点,标识“减空”的诸变起点对应行星远日点。根据《宣明历》行星平见入阴阳历各变算法,上元时五星平见加减历中阳历起点均位于冬至点,因此根据表1中“加空”的标识位置,可推算出上元时五星近日点距离冬至点的度距:火星、金星和水星的近日点均在冬至点;
木星的远日点在冬至点;
土星近日点在阳历九变,则土星近日点在冬至点后(8×土星变策)度,变策为一变的长度,五个行星的变策略有差别。

《大衍历》五星爻象历中的进退积,通常被认为等同于行星中心差。那么,《宣明历》五星平见加减历中加减差的天文意义究竟是什么?为了回答这个问题,我们首先需要了解在《宣明历》行星理论中,究竟哪些算法用到了五星平见加减差,然后通过分析五星平见加减差在这些算法中的具体应用,来阐明其天文意义。在《宣明历》中,五星平见加减差在五星常见算法中的应用,最能体现其天文意义。

《大衍历》中,行星在一个会合周期内的运动是从“合”开始的,因此《大衍历》专门设计了五星定合算法。与《大衍历》不同,在《宣明历》中,行星在一个会合周期内的运动是从“见”开始的,因此《宣明历》设计了五星定见算法。该算法包括三个步骤:第一步,根据行星会合周期求出行星始见时刻,称为平见;
第二步,假定太阳做匀速运动,行星做不均匀运动,对平见进行行星中差修正,得到常见;
第三步,假定行星做匀速运动,太阳做不均匀运动,对常见进行太阳中心差修正,得到定见。这个思路与《大衍历》五星定合算法思路完全相同。事实上,隋代及其以后的历法,都是按照以上思路计算五星定合与定见伏的时刻以及行星的位置[10,11]。

《宣明历》推五星平见的算法比较简单,其术文称:

因平合加中伏,得平见。金、水加夕,得晨;
加晨,得夕。([1],页2323)

术文中,“平合”意为行星平合时刻距离所求年天正冬至的时距,“中伏”是一个常数,意为从行星平合至始见的时距,根据术文,得

平见日=平合+中伏

(1),

式(1)中的“平见日”即术文中的“平见”,其意为行星始见时刻距离所求年天正冬至的时距,因与时间有关,此处称其为“平见日”,以区别后文中用“平见”表示的其他变量。

《宣明历》推五星常见算法称:

又以变差乘年,满象数去之;
不尽为变交。三百约为分,统法而一,以减平见三十六乘平见秒,十二乘变交秒,同以三千六百为母。余如交率已下,星在阳历;
已上,去之,为入阴历。各以变策除,为变数,命初变算外;
不尽为入其变度数及余。自此百约余分,母同刻法。以所入变下数,加减平见,为常见。([1],页2323)

术文中,最后一句“所入变下数”指的是根据五星平见时刻所入阳历或阴历的变数及入变度数而求出的五星平见加减差,由此可得到《宣明历》中平见日与常见日的关系如下:

常见日=平见日±平见加减差

(2)。

根据术文,要计算五星平见加减差,首先需要判断行星平见入历,即行星平见时入阳历或阴历的变数及入变度数。行星平见入历算法与行星“变差”密切相关,变差这个概念最早出现在《大衍历》中,其涵义为行星近日点每年相对于冬至点的进动值,《宣明历》中行星变差的涵义与《大衍历》相同,但取值不同。“象数”920446199意为周天对应的秒数,象数除以秒法300化为周天分,周天分除以统法8400,即可化为周天度。设变差为q,上元积年为Nn,则根据术文,变交可由下式求出

qNn≡变交(mod 象数)

(3),

从《宣明历》算法分析,根据式(3)所求变交,即为五星平见加减历中阳历初变至所求年天正冬至点的距离,其单位为秒。术文“又以变差乘年,满象数去之;
不尽为变交。三百约为分,统法而一,以减平见”中的“平见”应该指行星平见时刻的位置与天正冬至点的距离,为了与表示时间的“平见日”区别,本文以“平见度分”表示行星平见时位置与天正冬至点的距离。很显然,“平见度分”与“变交”之差,即为平见入历。根据《宣明历》算法,若设平见时刻行星距离阳历初变起点的距离为λ,则有

(4)。

由于《宣明历》中平见秒的秒法为100,变交秒的秒法为300,为计算方便,《宣明历》均将其化为以3600为分母,术文中“三十六乘平见秒,十二乘变交秒,同以三千六百为母”,就是为计算方便进行通分的步骤,如式(4)所示。

术文中,“交率”意为五星平见加减历中行星阳历或阴历的长度,其值为回归年长度与行星变差之和的一半,单位为度,由于《宣明历》中五星变差取值不同,因此每个行星的交率也不相同。若λ<交率,称λ′=λ为行星平见入阳历度;
若λ>交率,称λ′=λ-交率为行星平见入阴历度。“变策”等于交率的1/12,以行星入阳历度或阴历度除以变策,即可求出行星平见时入阳历或阴历的变数及度数,即有

(5)。

根据式(5)所求入变数k及入变度分,即可确定平见时行星在阴阳历中的位置,由此利用五星平见加减历即可求出行星的平见加减差。由于平见加减差是以刻法84为分母的,而平见余分是以8400为分母的,故需要将平见余分除以100,即得到以84为分母,方可与平见加减差进行运算,此即术文所称“自此百约余分,母同刻法”的意义。以火星为例,平见加减差最大值为2268,除以刻法84,得到27日,即火星平见与常见的时间差最大为27日。

《宣明历》在求出常见日后,又给出了从常见日到定见日的修正算法,其术文称:

凡常见计入定气,求先后定数,各以差率乘之,差数而一,为定差。晨见先减、后加,夕见先加、后减常见,为定见。([1],页2323)

根据术文,可以得到《宣明历》中常见日与定见日的关系为

(6),

式(6)中,先后定数意为常见时刻太阳中心差,先后数除以刻法84,即可化为日或度,符号法则为:晨见,“先”取“-”,“后”取“+”;
夕见则反之。

五星定见算法是中国古代行星理论中的主要算法之一,此前已有学者讨论过这个算法的数学模型[12]。已有研究结果表明,外行星平见日与常见日之间的关系为

(7),

式(7)中,cp表示行星中心差,vs和vp分别表示地球和行星绕日公转角速度,其符号规则为:若cp>0,取“+”;
cp<0,取“-”。常见日与定见日之间的关系为

(8),

式(8)中,cs表示太阳中心差,其符合规则为:若cs>0,取“-”;
cs<0,取“+”。

比较式(6)和式(8),可以发现两式中的修正项都可以表示为太阳中心差与一个常数的比值,且两式中修正项的分母相当,即有

(9),

《宣明历》中的差率和差数在更早的《大衍历》和《五纪历》中分别称为乘数和除数。

(10),

这就是《宣明历》中五星平见加减差的天文意义。利用式(9),进一步可将式(10)变形为

(11)。

在前文的讨论中,我们已经指出,《大衍历》中的进退积相当于行星中心差,而《宣明历》中五星平见加减差的天文意义如式(10)所示。那么,《宣明历》中的五星平见加减历究竟是如何构造的?或者说,《宣明历》是否就是按照式(10)或(11)计算五星平见加减差的呢?下面我们通过梳理从《大衍历》到《宣明历》的行星理论,来回答上述问题。

在《大衍历》中,直接用于修正行星不均匀运动的变量并不是进退积,而是进退变率。《大衍历》“求变行初日入进退定数”算法对二者的关系有明确的说明:

求变行初日入进退定数:各置其变行初日入爻算数及余,如平合求进退术入之,即得变行初日所入进退定数也。置进退定数,各以其下乘数乘之,除数除之,所得各为进退变率。([1],页2098—2099)

术文中“变行初日入进退定数”意为行星在各段目初日的进退积,根据术文,进退定数和进退变率的关系如下:

(12)。

式(12)中的进退变率为《大衍历》中行星诸变“日度中率”与“日度变率”之间的修正项,其意义与《宣明历》中五星平见加减差完全相同。式(12)中的乘数与除数列在《大衍历》五星动态表的最后一栏,不同的段目对应不同的乘数和除数。

比较式(11)与(12),由于《大衍历》中进退定数相当于行星中心差,因此二式的结构完全相同,于是《宣明历》五星平见加减差进一步可以表示为

(13)。

从理论上讲,对外行星而言,乘数与除数的比值不会因为段目不同而变化,《大衍历》之后的《五纪历》已认识到这一点。因此,《五纪历》在行星理论中虽然也设计了五星爻象历,但每个行星只设一组乘数与除数,这比《大衍历》是一个很大的进步。《宣明历》沿袭《五纪历》的做法,每个行星也只设一组乘数与除数,称为差率和差数。同时,《宣明历》比《五纪历》更进一步,直接设计了五星平见加减历,不再出现从进退积到平见加减差的转化步骤。由此可以很清楚地勾勒出《宣明历》五星平见加减差的演变过程。显然,相比《大衍历》和《五纪历》中的五星爻象历,《宣明历》中的五星平见加减历使用更加快捷方便,这也符合《新唐书·历志》对《宣明历》“法制简易”的评价。关于唐宋时期五星盈缩历的演变历程,以及唐代行星理论中的乘数与除数,已有学者进行过专门的讨论[13,14],此处不再展开详细论述。

徐昂在《宣明历》中设计的五星动态表,其结构与内容均与包括《大衍历》在内的其他历法中的五星动态表有很大区别。特别需要指出,《宣明历》中的五星动态表与五星平见加减历有密切的关系,这也是《宣明历》五星动态表与其他历法中五星动态表的重要区别之一。很显然,五星动态表也是《宣明历》在行星理论中所立“新数”之一。

为讨论方便,我们以《宣明历》木星动态表(表2)为例,来讨论《宣明历》中五星动态表的结构。

表2 《宣明历》木星动态表

续表2

表2所示《宣明历》木星动态表是一个26行6列的天文算表。第1行给出了木星在一个会合周期内各段目运行的时间与度距,其内容对应于《大衍历》动态表中的变行目、变行日中率与变行度中率等3栏内容。第2行第1列为木星伏见度,意为木星始见时与太阳的角距离,2—6列给出了木星在各段目内的加速度,其意义与《大衍历》中的“差行损益率”相同。第3行至26行分别给出了木星各段目节点位于阴阳历24变的加减数,加空意为加0,从加空至减空,加减数均取正值;
减空意为减0,从减空至加空,加减数均取负值。加减数除以刻法84,即可化为日数或度数。《宣明历》五星动态表中的加减数,并不见于《大衍历》等其他历法,这是《宣明历》五星动态表的主要特征。

陈美东在研究《宣明历》行星理论时曾指出,《宣明历》五星动态表中的加减数“当是相应时日五星运动不均匀性改正有关的数值”([4],页407),但是对加减数的具体天文意义,他并未给出进一步的解释和说明。那么,《宣明历》五星动态表中加减数的天文意义究竟是什么?为了回答这个问题,我们需要考察表2中的加减数在《宣明历》行星理论中的使用情况。《宣明历》五星动态表中的加减数,主要用于计算行星诸段日度变率,其术文称:

以所入变下差数加减日度【中率,为日度变】(3)根据《大衍历》算法进行校补。率。……各加减变【率】讫,为日度定率。([1],页2323—2324)

上述引文中的“差数”就是五星动态表中的加减数。根据引文,日度中率和日度变率的关系为

日度变率=日度中率±加减数

(14)。

《宣明历》在给出日度变率的修正算法之后,又给出了从日度变率到日度定率的修正算法,引文中省略的内容即为从日度变率到日度定率的修正法则,该项修正与太阳中心差有关。上述引文中日度变率和日度定率的意义及其用途,《新唐书》所载《宣明历》行星理论并没有明确的交代。不过,在《大衍历》行星理论中,有专门计算日度变率和日度定率的完整算法,考虑到《宣明历》和《大衍历》的继承关系,我们可以通过简单梳理《大衍历》中相关算法,来理解《宣明历》中的日度变率和日度定率的意义,并进一步阐明五星动态表中加减数的天文意义。

《大衍历》五星动态表中的日中率与度中率,分别给出了行星在一个会合周期内各段目的平均运行时间与距离。由于行星中心差和太阳中心差影响,行星在各段目内运行的时间与距离均会发生变化。《大衍历》处理这个问题的基本思路是,首先对日中率和度中率进行与行星中心差有关的修正,得到日变率和度变率,然后对日变率和度变率进行太阳中心差以及一些其他补充修正,得到日定率和度定率。根据《大衍历》“求变行日度变率”算法([1],页2103),从日度中率到日度变率的修正算法为

日度变率=日度中率±Δ

(15)。

式(15)中的修正项Δ及其符号,与本段段首的进退变率y1和次段段首的进退变率y2的进退及大小有关,具体规则如下:(a)若y1和y2同为进或同为退,则Δ=|y1-y2|。若y1和y2同为进且y1y2,取“+”;
若y1和y2同为进且y1>y2,或y1和y2同为退且y1若y1为进,y2为退,取“-”。上述法则仅适用于顺行段,对于逆行段的度率,则与此相反。< p>

通过比较《大衍历》和《宣明历》求日度变率的算法,我们发现,《宣明历》动态表中的“加减数”,即式(14)中的“加减数”与式(15)中修正项Δ的功能完全相同。前面的讨论已经指出,《宣明历》五星平见加减差与《大衍历》中进退变率的意义相同,因此,从算理上讲,《宣明历》五星动态表中的加减数,就是根据行星运行至各段段首和段末的平见加减差计算得到的,其计算方法及符号法则与式(14)中的Δ相同。根据《大衍历》修正算法,每个段目对应的修正项Δ都需要计算该段目首尾的进退变率,《宣明历》则根据各段目所入各变,直接给出修正项“加减数”。显然,《宣明历》所设“加减数”确实简化了计算,但是由此引起的误差也是显而易见的。这是因为,若五星各段段首入阴阳历各变度数不同,则所求“加减数”应该不同,而《宣明历》显然只根据段首入变设计了相应的加减数,而未考虑入变度数不同而导致的“加减数”的变化。此外,分析《宣明历》五星动态表中的加减数,通常会在阴阳历的某些区间呈现出以某一常数为公差的等差数列,这显然并非实际计算所得,而应该是在计算的基础上进行人为调整的结果。

关于《宣明历》五星平见加减历的精度,学者关注较少。陈美东曾详细考察过自《大衍历》至《授时历》共20部历法中五星盈缩历的精度,他指出:“大衍历既有首创五星盈缩历之功,且盈缩历均不同程度地对五星运动不均匀性的改正起了好的作用。而自宣明历以后,水星的盈缩历仅小有补益,而金、火二星的盈缩历则起反作用。对于木、土二星,宣明历较大衍历有相当大的进步,但到崇玄等四历却发生了倒退现象,崇天历亦不如大衍历。”([9],页464)由此可见,陈美东对《宣明历》五星平见加减历的精度评价并不高,这其中的主要原因是,陈美东认为《宣明历》中的五星平见加减差与《大衍历》中的五星进退积均为行星中心差,以火星为例,《大衍历》火星进退积最大值的误差为4.28°,而《宣明历》火星平见加减差最大值的误差为16.03°。然而本文的讨论表明,《宣明历》中的平见加减差并非行星中心差,它与行星中心差的关系如式(10)所示。

根据现代天文学理论,若设五星中心差为c,轨道偏心率为e,平近点角为M,则行星中心差可近似表示为[15]

(16)。

利用式(16),可以讨论《宣明历》五星平见加减历的精度。我们首先讨论《宣明历》中五星平见加减差和进退积的最大值及其误差,结果如表3所示。表3中,平见加减差历法结果采自《宣明历》五星平见加减历,进退定数的历法结果根据式(13)得到,进退定数的理论结果即为中心差由式(16)得到,平见加减差的理论结果由式(10)得到,其中木星轨道偏心率为0.048,公转周期为4332.589日,火星轨道偏心率为0.093,公转周期为686.980日,土星轨道偏心率为0.055,公转周期为10759.2日[16]。为方便讨论,表3中各栏数值单位均化为“°”,转换关系为365.2564度=360°,误差均为历法结果与相应理论结果之差。

表3 《宣明历》进退积和平见加减差最大值及误差

从表3可以看到,对于木星和土星而言,《宣明历》进退定数与平见加减差的差别并不算大,但是对于火星而言,进退定数和平见加减差之差达到了15.95°,其差别非常大。此外,就《宣明历》平见加减差的最大值而言,木星和土星的取值均比较理想,其中木星和土星的误差分别为0.02°和0.48°,而火星取值误差稍大,误差达到3.52°,这应该是火星偏心率较大导致计算比较困难的直接反映。

显然,仅仅讨论五星平见加减差最大值的误差,还无法对《宣明历》五星平见加减历的精度做出全面评价,这是因为,当历法中的平见加减差取最大值时,相应的理论结果不一定取最大值。为了更全面地讨论《宣明历》五星平见加减历精度,我们以平近点角为自变量,以15°为间隔,分别计算出木星、火星和土星平见加减差的理论结果,并与相应的历法结果进行对比。进一步的计算结果表明,《宣明历》木星平见加减历以远地点为中心对称,最大误差为0.50°;
火星和土星的平见加减历并不对称,其中火星和土星的平见加减差的最大误差分别为11.69°和1.62°。为了更直观地考察《宣明历》五星平见加减历的精度,我们根据计算结果绘出《宣明历》外行星平见加减差与相应理论结果的曲线,如图1—图3所示。

图1 《宣明历》木星平见加减差误差

图2 《宣明历》火星平见加减差误差

图3 《宣明历》土星平见加减差误差

图1—图3比较直观地反映了《宣明历》外行星平见加减差的精度。总体来说,《宣明历》木星平见加减差曲线与理论曲线吻合程度非常高,土星平见加减差曲线虽然在前半段不够光滑,但是大体与理论曲线也比较吻合,火星平见加减差曲线不够光滑,且曲线形状与理论曲线相差较大,特别是阴历诸变的误差尤其明显。

五星平见加减历是《宣明历》在行星理论方面最重要的创新,相比《大衍历》和《五纪历》中的五星爻象历,《宣明历》五星平见加减历的优点是显而易见的。在《大衍历》五星动态表中,每个段目都对应一组乘数与除数,《五纪历》为每个行星只设一组乘数和除数,不再区分段目,大大简化了计算,《宣明历》沿袭《五纪历》做法,每个行星也只设一组差率和差数,不仅如此,《大衍历》和《五纪历》在进行与行星中心差相关的修正时,需要将行星的进退积乘以与乘数与除数相关的转换系数,而《宣明历》直接将行星进退积与转换系数的乘积列入平见加减历,查取更加方便。《宣明历》以后各部历法中的五星盈缩历,均沿袭《宣明历》五星平见加减历的设计思路,不再直接出现乘数与除数。从这个意义上说,在中国行星理论发展史上,《宣明历》五星平见加减历具有承前启后的重要地位。

本文的计算结果表明,就《宣明历》所取外行星平见加减差最大值来说,木星和土星的取值都比较理想,误差分别为0.02°和0.48°,火星取值误差稍大,其误差达到3.52°。就整个五星平见加减历的精度来说,木星、火星和土星的最大误差分别为0.50°,11.69°和1.62°,由于平见加减差的误差只是影响行星视位置计算的主要因素,因此《宣明历》行星视位置计算的最大误差应该还要大于平见加减历的最大误差,以火星为例,视位置计算的最大误差应该不会低于12°。

在《宣明历》的行星理论中,徐昂不仅设计了使用更加方便的五星平见加减历,在行星理论的其他方面也有一些创新之处。例如,本文的讨论就指出,《宣明历》上元时五星并不都过近日点,其中,火星、金星和水星近日点均在冬至点,木星远日点在冬至点;
《宣明历》为简化日度变率的计算,在五星动态表中设计了加减数。除此之外,《宣明历》所取行星变差数值与《大衍历》相比偏小,《宣明历》在计算行星定见及诸段入历时,以各段行度作为诸段入历度的增量。徐昂在《宣明历》行星理论中所做的种种努力,都充分体现了徐昂的创新精神。

总体来说,《宣明历》在行星理论方面做了有益的尝试和探索,并取得了重要进展,其中最突出的例子,就是《宣明历》设计的五星平见加减历大大简化了与行星中心差相关的修正项,从而得到后世历法的沿袭。当然,《宣明历》在行星理论方面的改革,也有一些不合理的地方。例如,《宣明历》在五星动态表中设计的加减数,尽管能够在一定程度上简化从日度中率到日度变率的计算,但由于该算法的设计本身就存在缺陷,由此产生的误差也是显而易见的,因此,《宣明历》在五星动态表中设计的加减数,也再未在其他历法中出现。

猜你喜欢变率减数历法正确的差是多少数学小灵通·3-4年级(2022年10期)2022-12-31研究显示降水变率将随气候增暖而增强中国科学探险(2022年3期)2022-07-19从走马楼西汉简歧异干支谈汉初历法混用问题社会科学战线(2022年4期)2022-06-15一天下完一年的雨语文世界(小学版)(2022年4期)2022-05-01发明新历法小天使·四年级语数英综合(2020年10期)2020-12-16加、减法的巧算小学生学习指导(中年级)(2020年9期)2020-10-24新疆奎屯柳沟垦区降水量变化特征分析新疆农垦科技(2018年2期)2018-04-1220以内的退位减法小学生学习指导(低年级)(2017年3期)2017-09-11历法术语“执徐“”大荒落”“敦牂”“协洽”词义及相关考索语言与翻译(2014年2期)2014-07-12铜仁西部不同时间尺度温度降水变率分析中低纬山地气象(2012年6期)2012-09-29

推荐访问:加减 宣明历

版权所有:天海范文网 2010-2024 未经授权禁止复制或建立镜像[天海范文网]所有资源完全免费共享

Powered by 天海范文网 © All Rights Reserved.。鲁ICP备10209932号