仪天历日躔盈缩算法

2022-07-02  本文已影响0人  fztransit

因网站公式编辑器bug,输入'无法显示,故改为加点表示。如A'表示为\dot{A}

释文

数:

《仪天》岁差一百一十八、秒九十九,一象度九十一、余三千一百四十二、秒五十,盈初缩末限分八十九万七千六百九十九、秒五十,限日八十八、余八千八百九十九、秒五十,缩初盈末限分九十四万六千七百八十五、秒五十,限日九十三、余七千四百八十五、秒五十,盈缩积二万四千五百四十三,进退率一千八百三十六,秒母一百。

限分为二分二至间定气长的累积值,以分表示,限日则以日表示。

盈初限分=缩末限分=897699.5

缩初限分=盈末限分=946785.5

限日=\frac{限分}{宗法}

盈缩积=24543

术:

《仪天》以宗法乘盈缩积,以其限分除之,为限率分,倍之,为未限平率;日分乘之,亦以限分除之,为日差;半之,加减初、末限平率,在初者减初加末,在末者减末加初,为末定率;乃以日差累加减限初定率,初限以减、末限以加,为每日盈缩定分;各随其限盈加缩减其下先后数,为每日先后定数;冬至后积盈为先,在缩减之;夏至后,积缩为后,在盈减之。其进退率、升平积准此求之,即各得其限每日进退率、升平积也。

又《仪天》有求四正节定日,去冬、夏二至盈缩之中,先后皆空,以常为定;其春、秋二分盈缩之极,以一百乘盈缩积,满宗法为日,先减后加,去命如前,各得定日。若求朔、弦、望盈缩限日,以天正闰日及余减缩末限日及分,余为天正十一月经朔加时入限日及余;以弦策累加之,即得弦、望及后朔初、末限日;各置入限日及余,以其日进退率乘之,如宗法而一,所得,以进退其日下升平积,即各为定数。

这段文字非常简省,其“初”、“末”有三种含义:初末限(即盈初缩末缩初盈末四限)、初末限平率、初末定率。“盈”、“缩”有两种含义:盈缩积、盈缩分。下详。

以宗法乘盈缩积,以其限分除之,为限率分,倍之,为未限平率:末限平率应为初末限平率,在冬至-春分或夏至-秋分为初限平率,在春分-夏至或秋分-冬至为末限平率。例:

冬至-春分:用盈初限分,盈缩积为盈,盈缩分为盈,值为初限平率。

春分-夏至:用盈末限分,盈缩积为盈,盈缩分为缩,值为末限平率。

夏至-秋分:用缩初限分,盈缩积为缩,盈缩分为盈,值为初限平率。

秋分-冬至:用缩末限分,盈缩积为缩,盈缩分为缩,值为末限平率。

限率分=\frac{宗法×盈缩积}{限分} =\frac{盈缩积}{限日}

初末限平率=2×限率分

日分乘之,亦以限分除之,为日差,半之,加减初、末限平率,在初者减初加末,在末者减末加初,为末定率:日分即日法为分。初末限平率既是各限初末平率,也是各限初日的初平率或末日的末平率。“减初加末”即减为初加为末,“减末加初”即减为末加为初。

此处有缺文或简省,对于盈初缩初限,结果为初定率。对于盈末缩末,只求得末定率,下文求每日盈缩定分只用限初定率,故应再以2倍限率分减之,得限初定率。

“在初者减初加末”即在盈初或缩初时,初日平率减半日差为初日定率(初日定率即初日内半日处的平率);末日平率加半日差为末日定率。“在末者减末加初”即在盈末或缩末时,末日平率减半日差为末日定率,初日平率加半日差为初日定率。

日差=\frac{初末限平率×日分}{限分} =\frac{初末限平率}{限日}

冬至-春分(盈初)、夏至-秋分(缩初):在初者减初加末限初定率=初日定率=初日平率-半日差=初限平率-半日差

末限平率=初限平率-限率分×2

限末定率=末日定率=末日平率+半日差=末限平率+半日差

春分-夏至(盈末)、秋分-冬至(缩末):在末者减末加初限末定率=末日定率=末日平率-半日差=末限平率-半日差

初限平率=末限平率-限率分×2

限初定率=初日定率=初日平率+半日差=初限平率+半日差

乃以日差累加减限初定率,初限以减、末限以加,为每日盈缩定分:初限为盈初缩初,末限为盈末缩末。

仪天历并未指出“每日”的范围,按其他分象限计算的历法一般将每日定为二至后。即冬至-夏至共182日的每个整数日,及夏至-冬至共182日的每个整数日。从二至起每日日数为i(整数)。

冬至-春分(盈初)入限日=i

夏至-秋分(缩初)入限日=i-盈初限日

春分-夏至(盈末)入限日=i

秋分-冬至(缩末)入限日=i-缩初限日

冬至-春分(盈初)、夏至-秋分(缩初):盈缩定分_{i} =限初定率-日差×入限日

春分-夏至(盈末)、秋分-冬至(缩末):盈缩定分_{i} =限初定率+日差×入限日

各随其限盈加缩减其下先后数,为每日先后定数;冬至后积盈为先,在缩减之;夏至后,积缩为后,在盈减之:盈初缩初限的限初先后数为0,盈末缩末限的限初先后数为盈缩积。

冬至-春分(盈初,在盈,先):先后定数_{i} =限初先后数+\sum_{i}^n 盈缩定分_{i} =\sum_{i}^n 盈缩定分_{i}

春分-夏至(盈末,在缩,后):先后定数_{i}=限初先后数-\sum_{i}^n 盈缩定分_{i} =盈缩积-\sum_{i}^n盈缩定分_{i}

夏至-秋分(缩初,在盈,先):先后定数_{i}=限初先后数-\sum_{i}^n 盈缩定分_{i} =-\sum_{i}^n 盈缩定分_{i}

秋分-冬至(缩末,在缩,后):先后定数_{i}=限初先后数+\sum_{i}^n 盈缩定分_{i} =-盈缩积+\sum_{i}^n 盈缩定分_{i}

其中∑盈缩定分,即以限初定率为初项、日差为公差的等差数列之和。即:

冬至-春分(盈初)、夏至-秋分(缩初):递减数列\sum_{i}^n 盈缩定分_{i}=入限日×限初定率-\frac{入限日×(入限日-1)}{2} ×日差=入限日×初限平率-\frac{日差}{2}×入限日^2

春分-夏至(盈末)、秋分-冬至(缩末):递增数列\sum_{i}^n 盈缩定分_{i}=入限日×限初定率+\frac{入限日×(入限日-1)}{2}×日差=入限日×初限平率+\frac{日差}{2}×入限日^2

以符号表示,本限盈缩积为Δ1(盈初缩末限用正,盈末缩初限用负),限日为s,所求入限日为t。即有

盈初缩末:  \sum_{t}^s 盈缩定分_{t} =\pm\frac{2Δ_{1} }{s} t\mp  \frac{Δ_{1} }{s^2}t^2

盈末缩初:\sum_{t}^s 盈缩定分_{t} =\mp  \frac{Δ_{1} }{s^2}t^2

代入先后定数公式:

冬至-春分(盈初,在盈)、夏至-秋分(缩初,在盈):f(t)=\pm(\frac{2Δ_{1} }{s} t- \frac{Δ_{1} }{s^2}t^2)

春分-夏至(盈末,在缩)、秋分-冬至(缩末,在缩):f(t)= \pm Δ_{1}\mp \frac{Δ_{1} }{s^2}t^2

至此为仪天历所求每日先后定数,在不同象限表达式不同。

而若在缩时,令\dot{t} =s-t,即得f(t)=\pm(\frac{2Δ_{1} }{s}\dot{t} - \frac{Δ_{1} }{s^2}\dot{t} ^2),二式合并:

f(t) =\pm(\frac{2Δ_{1} }{s} t- \frac{Δ_{1} }{s^2}t^2)=\pm \frac{\Delta }{s^2} t(2s-t),可获得统一的计算公式,此即相减相乘法的一般式。该式在盈初缩初时t为入限日,在盈末缩末时t为限日-入限日。

此亦实为等间距二次插值法的特殊式。仪天历对各限进行插值,以本限盈缩积为Δ1,后限盈缩积为Δ2,则其前后限的盈缩积刚好相反,有Δ2=﹣Δ1,前后限限日相近,皆设为s,代入等间距二次插值公式

f(t)=\frac{Δ_{1}  +Δ_{2}}{2s}t ±\frac{Δ_{1}-Δ_{2}}{s} t\mp \frac{Δ_{1}-Δ_{2}}{2s^2}t^2即得上式。t值在不同象限变化与上相同。

故知在分象限计算时,无论使用相减相乘法或等间距二次插值法,需注意在不同象限t值略异,在末限时需反减限日。而相减相乘法不用初末率,优势在于形式简单,计算方便。

仪天历的术文表达方式与使用等间距二次内插法的历法相同,而不同于相减相乘法,后者更为简洁。仪天历在不同象限的限日取不同值,似乎想要得到如不等间距二次插值法一样更精确的结果。但实际反而不如使用平象限91.3109日的算法。原因在于,定象限法在求盈初缩末象限时,将盈初缩末限分作为缩初盈末限分,前后象限和仅为176.76日;而在求缩初盈末象限时,将缩初盈末限分作为盈初缩末限分,前后象限和则有187.48日。(其后观天历的“倍初末限日及约分于下”即此表达。)与半岁长182.62日相差皆过大。下图中提供了几种计算方法求每日先后定数的对比,可见使用平象限精度要高于定限。唐代《符天历》和《崇玄历》都选用平象限,是正确认识到相减相乘法的等间距插值本质。

其进退率、升平积准此求之:用进退率1836代替以上各式中盈缩积24543,以上所求每日盈缩定分即进每日进退定率,先后定数即升平定积。

求四正节定日:所求定日为冬至到四正节的定积日,即冬至-二分二至的各气定日之和,并非一气内的定日。以冬至气序从0起排,则:

常日=\frac{岁周×10}{宗法} ×气序

定日=常日\mp \frac{各气先后数}{宗法} =\frac{岁周×10×气序\mp 各气先后数}{宗法}

去冬、夏二至盈缩之中,先后皆空,以常为定:冬夏二至的盈积与缩积相等,即先后数为0。此时定日与常日相等。

冬至定日=冬至常日-\frac{冬至先后数}{宗法} =0

夏至定日=夏至常日+\frac{夏至先后数}{宗法} =夏至常日

其春、秋二分盈缩之极,以一百乘盈缩积,满宗法为日,先减后加,去命如前,各得定日:盈缩积与春秋二分的先后数相等,春分为先用减,秋分为后用加。依算理此段应改为:“以盈缩积满宗法为日,加减常日,先减后加,去命如前,各得定日”。

春分定日=春分常日-\frac{春分先后数}{宗法} =春分常日-\frac{盈缩积}{宗法}

秋分定日=秋分常日+\frac{秋分先后数}{宗法} =秋分常日+\frac{盈缩积}{宗法}

各置入限日及余,以其日进退率乘之,如宗法而一,所得,以进退其日下升平积,即各为定数:“各置入限日及余”,所置入限日用以对照前已求的每日进退率及升平积,得到该日的进退率及升平积。所置入限余用以乘下文进退率。“进退率”为该入限日的进退定率,即该日半日处的平率。

进退定率_{t}  =进退率_{t} ×\frac{入限日余}{宗法}

升平定积_{t} =升平积_{t}\pm 进退定率_{t}

以上求每日进退率用二次插值法,最后求不足一日的进退率又改用简单内插法。盖每日盈缩进退皆备为立成,用时查表即可,非每次依术为算。

仪天历各项含义示例

图解

等间距二次插值法 

如图所示,AB为盈初限日,BC为盈末限日,CD为缩初限日、DE为缩末限日。I为AB中点。K为所求点。

S_{△ABG} =盈积=\Delta S_{△BCF} =缩积=-\Delta

S_{△CDF} =缩积=-\Delta S_{△DEH} =盈积=\Delta

盈初限限率分=\frac{S_{△ABG}}{AB} =IJ=\frac{\Delta }{s}

初限平率=2×限率分=2×IJ=AG=\frac{2\Delta }{s}

同理,盈末限末限平率=\frac{2×S_{△BCF}}{BC} =CF初限平率=末限平率-CF=0

缩初限初限平率=\frac{2×S_{△CDF}}{CD} =CF

缩末限末限平率=\frac{2×S_{△DEH}}{DE} =EH初限平率=末限平率-EH=0

盈初限日差 =\frac{初限平率}{限日} =\frac{AG}{AB}=\frac{2\Delta  }{s^2} 盈末限日差 =\frac{末限平率}{限日} =\frac{CF}{BC}

盈初限日差 =\frac{初限平率}{限日} =\frac{CD}{CF} 缩末限日差 =\frac{末限平率}{限日} =\frac{EH}{DE}

以盈初限为例,AA'为入限第一日,A''为AA'中点。AK=t,KK‘为入限第t-1日,K''为KK'中点。

求先后定数即求A点到所求点K的面积之和S_{梯形AGKL}

限初定率=初限平率-\frac{日差}{2} =\ddot{A} \ddot{G} =\frac{2\Delta }{s} -\frac{\Delta  }{s^2}

由梯形面积公式:S_{梯形AG\dot{G} \dot{A} }=\frac{AG+\dot{A} \dot{G}}{2} \times A\dot{A} =\ddot{A} \ddot{G}  \times A\dot{A},即第一日的盈缩定分

同理,S_{梯形KL\dot{L} \dot{K} }=\ddot{K} \ddot{L}×\times K\dot{K},即第t日的盈缩定分

S_{梯形AGKL}=S_{梯形AG\dot{G} \dot{A} }+……+S_{梯形KL\dot{L} \dot{K} },为入限t日内的盈缩定分(即各日梯形面积)的累加值

A\dot{A}=……=\times K\dot{K}=1S_{梯形AGKL}=\ddot{A} \ddot{G}+……+\ddot{K} \ddot{L}

即首项为\ddot{A} \ddot{G}=\frac{2\Delta }{s} -\frac{\Delta  }{s^2} ,公差为\frac{AG}{AB}=\frac{2\Delta  }{s^2} ,项数为t的递减数列,

S_{梯形AGKL}=(\frac{2\Delta }{s} -\frac{\Delta  }{s^2} )×t+\frac{t(t-1)}{2} ×\frac{2\Delta  }{s^2} =\frac{\Delta }{s^2}t(2s-t)

先后定数_{t} =0+S_{梯形AGKL}=\frac{\Delta }{s^2}t(2s-t)

相减相乘法

如图所示,AB为盈初限日,BC为盈末限日,CD为缩初限日、DE为缩末限日。I、K为所求点。

有AB=BC=CD=DE=s,S_{△ABG}  =\Delta S_{△BCF}=-\Delta

以盈初限为例(缩初同)AI=tAG=2\times \frac{S_{△ABG}}{AB} =\frac{2\Delta }{s}

由相似三角形,\frac{JI}{AG} =\frac{BI}{AB} =\frac{AB-AI}{AB}

JI=\frac{AB-AI}{AB}×AG=\frac{s-t}{s} \times \frac{2\Delta }{s} =\frac{2\Delta }{s} -\frac{2\Delta }{s^2} t

S_{梯形AGJI}=\frac{AG+JI}{2} \times AI=(\frac{2\Delta }{s} +\frac{2\Delta }{s} -\frac{2\Delta }{s^2} t)\times \frac{t}{2} =(\frac{2\Delta }{s} -\frac{\Delta }{s^2} t)t=\frac{\Delta }{s^2}t(2s-t)

先后定数_{t} =S_{梯形AGJI}=\frac{\Delta }{s^2}t(2s-t)

以盈末限为例(缩末同)AK=tCK=2s-tCF=2\times \frac{S_{△BCF}}{BC} =\frac{-2\Delta }{s}

同理,S_{梯形CFKL}=\frac{ KL+CF}{2}\times CK=\frac{-\Delta }{s^2}t(2s-t)

S_{△BKL}=S_{△BCF}-S_{梯形CFKL}= -\Delta -\frac{-\Delta }{s^2}t(2s-t)=-\Delta +\frac{\Delta }{s^2}t(2s-t)

先后定数_{t} =S_{△ABG} + S_{△BKL}=\Delta +[-\Delta+\frac{\Delta }{s^2}t(2s-t)]=\frac{\Delta }{s^2}t(2s-t)

参考资料:

中华书局,《历代天文律历等志汇编》

王荣彬,中国古代历法的中心差算式之造术原理

滕艳辉,宋代朔闰与交食研究

上一篇下一篇

猜你喜欢

热点阅读