本帖最後由 秦伊人 於 2022-11-15 20:32 編輯
(第三页)
三、用“八十一日分”是为计算简便
从《历术甲子篇》中有司马迁死后的纪年来看,《历术甲子篇》一定不是司马迁本人 录入《史記》的;但是学界认为后来的纪年是后人所加,《历术甲子篇》的主体数据是司 马迁本人录入《史记》的,这使得问题复杂化。所以只能从《历术甲子篇》的实质内容来 分析《历术甲子篇》的产生年代。
西汉司马迁先写有《史记》,东汉班固再写有《前汉书》,最后在魏晋时期的范晔、 司马彪才写有《后汉书》,这三部著作产生的时间顺序是不容质疑的,这是讨论的基础。 通过对以上三本书所记录的计算数据的不同,可以分析出《历术甲子篇》的产生年代。
年月日是观象历自然的计算单位,在推步历出现前就使用,由于推步计算的需要,在 推步历中有推步历专用计算单位,“章”、“蔀”、“纪”、“统”是推步历的计算单位, 最小的推步历计算单位是“章”,在《前汉书律历志第一》中,有关推步历所使用的计算数据有五条:
1 闰法,十九。 (19×1) 2 章月,二百三十五。 (12×19+7) 3 统法,一千五百三十九。(19×81) 4 月法,二千三百九十二。(81×29.530864) 5 日法,八十一。 (81)
相应地在《后汉书志第三律历下》中,有关推步历使用的计算数据有六条:
1 章法,十九。 (19×1) 2 章月,二百三十五。 (12×19+7) 3 纪法,千五百二十。 (19×80) 4 蔀日,二万七千七百五十九。(940×29.530851)(365.25×19×4) 5 蔀月,九百四十。 (940) 6 蔀法,七十六。 (19×4)
已知:1、《前汉书》“三统历”系统所使用的推步计算单位是“章”和“统”; (1章=19年;1统=81章。)
2、《后汉书》“四分历”系统所使用的推步计算单位是“章”、“蔀”和“纪”; (1章=19年;1蔀=4章;1纪=20蔀。)(1“统”=1“纪”+1“章”。)
3、《历术甲子篇》的成立基础是在“四分历”系统的基础上,对子正月朔日的精 确计算,而计算的基础是对数据的掌握和使用,在《历术甲子篇》中使用的基 本数据和基本计算有:
1年=365.25日; 1章=19年=6939.75日; 1蔀=4章=76年=27759日; “日分”=940;
朔望月=蔀日/蔀月 =27759/940 =(365.25×19×4)/(235×4) =29+(499/940)
推论:1、在《历术甲子篇》里使用的数据是:“蔀法”(=76年),和“蔀月”(=940), 这些概念在《史记》和《前汉书》中并没有出现,所以在“蔀”概念上建立的《历 术甲子篇》是不应该在《史记》中出现的。
推论:2、在《汉书·律历志》中有“其法以律起历,......法,一月之日二十九日八十一分 日之四十三。”明言用数“八十一”为“日分”;但是《历术甲子篇》中“日分” 用数“九百四十”,不能支持“八十一分日”的记录,所以《历术甲子篇》在《史记》 中的出现是与《汉书·律历志》的记录相矛盾的。
从对“日分”数据的使用来看,《前汉书》所用的是“81”,《后汉书》和《历术甲子篇》所用的是“940”;而对“日分”数据的使用是计算能力的标志,可计算能力是随着时代的进步而增加的。古人用算筹计算,比较《四分历》和《太初历》用不同的“朔策”模拟用算筹的算法如下:
《四分历》模拟算筹算法:(朔望月=29+(499/940)=29.530851)
《太初历》模拟算筹算法:(朔望月=29+(43/81)=29.5308642)
对于小馀的计算,《太初历》算法是用十位数加减法,《四分历》是用百位数加减法, 显然《太初历》算法比《四分历》的算法更为简易,更为优越,这在以算筹为计算工具的时 代更是如此。并且用《太初历》算法的计算结果规律性很强,这对于验证计算也很有利。
古人用算筹计算非常烦琐,算筹只能对整数和整数比(分数)进行四则运算,乘法变成 加法运算,除法用分数表示。所以对于499/940这样大分母的分数,从算筹计算方便考虑, 古人希望用分母小的分数来近似表示,而因为对乐律计算的熟悉,这个分母又希望用一个律长数 (宫、商、角、征、羽)来表示。
古律长度有:宫=81(基准律长度) 征=宫+宫/3=108;商=征-征/3=72; 羽=商+商/3=96;角=羽-羽/3=64。(先益后损) 征=宫-宫/3=54;商=征+征/3=72; 羽=商-商/3=48;角=羽+羽/3=64。(先损后益)
征(108)羽(96)宫(81)商(72)角(64) (先益后损,中宫音调) 宫(81)商(72)角(64)征(054)羽(48)(先损后益,低宫音调)
设:499/940=A/81=B/72=C/64=D/54=E/48=F/108=G/96
(宫)A=42.9989取整为43差为0.0011 (商)B=38.2213取整为38差为0.2213 (角)C=33.9745取整为34差为0.0255 (征)D=28.6660取整为29差为0.3340 (羽)E=25.4809取整为25差为0.4809 (征)F=57.3319取整为58差为0.6681 (羽)G=50.9617取整为51差为0.0383
上述计算表示,只有A=42.9989最接近一个整数值(43),而只有整数和用整数表示的分数才能够用算筹进行计算。司马迁对上述历算中律和历的数字关系是认可的,并有所叙述,这个43/81的律历数字关系成了邓平“以律起历”的基础,这是对499/940的简化,而这个简化大大方面了当时的算筹运算,二者的朔望月绝对差值仅为0.000013(十万分之1.3)。
从上述《太初历》和《四分历》的运算过程和计算结果来看,《太初历》算法简便,但是“粗”于《四分历》,《四分历》算法复杂,但是“精”于《太初历》;所以若邓平计算的《太初历》在当时果然粗疏,则不会以“粗疏”为借口废弃其他十七种历法;若司马迁当时果然有“精”于《太初历》的《四分历》在手,邓平也不能以其他历法“粗疏”为借口而自立。所以合理的解释是:由于当时没有能力对三位数进行大规模的历法运算,改用对二位数的运算;对三位数的历法运算是在《太初历》颁布之后和东汉改历之前,所以《历术甲子篇》是在司马迁之后完成的。
天文观象和历法推算是有区别的,不能说唐都是司马迁的父亲司马谈的天文老师,就说司马迁也必然精通历算;其实在制定《太初历》时,唐都的工作也只是“分天部”,历算工作由邓平和落下闳承担。《吕氏春秋·贵因》云:“夫审天者,察列星而知四时,因也。推历者,视月行而知晦朔,因也。”可见“观星者”是分天部、定四时的,是唐都一派;“视月者”才是推历、算历的人,是邓平一派,无怪乎当时多数参与《太初历》制定的人都说“不能为算”。司马迁对《天官书》很熟悉,这并不表示他对历算也精通。
另外,《史记》经历汉武帝和东汉章帝两次大规模删减,后人有增补《史记》的可能,所以《史记》已经不是司马迁时期的原貌。从《汉书》对《太初历》的描述,《历术甲子篇》与《太初历》是不同两种历法,并且《历术甲子篇》比《太初历》先进,而司马迁时期只有《太初历》经过颁布,所以《历术甲子篇》不应该是司马迁时期的历法。
由于不为人知的原因,《历术甲子篇》进入了《史记》,学者们产生了一些误解,在《〈历术甲子篇〉浅释》中,张汝舟说:“尤可怪者,篇末说:‘大馀者,日也。小馀者,月也。’司马迁家学甚深,怎么会有这种谬言迷惑后人,这一妄改,全篇‘大馀’、‘小馀’便成了一天云雾”。(《二毋室古代天文历法论丛·〈历术甲子篇〉浅释》张汝舟著);因为张汝舟主观地认为《历术甲子篇》一定是司马迁录入《史記》的,所以他要批后人“妄改”《历术甲子篇》,同时可以看出张汝舟不认为“小馀”和“月”有关系。
在《汉书律历志第一下》有:“推正月朔,......小馀三十八以上,其月大。”在《后汉书志第三律历下》有:“推天正朔日,......小馀四百四十一以上,其月大。”“天正朔日”是指“子正月”朔日,子正月朔日的“小馀”若小,子正月就是小月,反之“小馀”若大,就是大月,所以说:“小馀者,月也。”的说法不是“妄改”《历术甲子篇》的语言。
其实“小馀者,月也。”就是说大小月的排布规律由“小馀”数值的相对大小来决定,这在《前汉书》和《后汉书》中都有叙述,所不同的是对于“小馀”数大小的界定值,《前汉书》所用的是“38”,《后汉书》所用的是“441”。由于:“38/81=0.469;441/940=0.469”,所以上述两书所用的界定值是完全一致的。
总之,从对“日分”数据的使用来看,《前汉书》所用的是“81”,《后汉书》和《历术甲子篇》所用的是“940”;而对“日分”数据的使用是计算能力的标志,可计算能力是随着时代的进步而增加的。所以,在知道“十九年七闰”后,虽然必有“四分历”的940日分,但是局限于当时的能力,对大规模的历法计算,使用算筹计算三位数日分比计算二位数日分更困难,以至于当时官方有“不能为算”的说法,而要调用“民间治历者”,因此当时邓平选择了使用较为方便的81日分。至于后来“三统术”的81日分被冠以“黄钟律”的名称,也只是一种文化解释,499/940非常接近43/81也只是巧合,其实使用81日分和使用940日分的区别只在于计算的方便程度。另外,“四分术”与“三统术”的基础都来源于“十九年七闰”,两种历术也能互相转换。
|