仪天历日躔盈缩算法

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

释文

数:

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

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

盈初限分=缩末限分=897699.5

缩初限分=盈末限分=946785.5

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

盈缩积=24543

术:

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

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

这段文字非常简省,其“初”、“末”有三种含义:初末限(即盈初缩末缩初盈末四限)、初末限平率、初末定率。“盈”、“缩”有两种含义:盈缩限、盈缩积。下表根据术文拟定仪天历日躔表的结构,方便辨别。

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

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

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

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

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

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

初末限平率=2×限率分

下文“减初加末”、“减末加初”之文,各在其限内用到初末限平率,而此次尚缺盈初缩初限之末限平率。在盈末缩末限之初限平率。应以两倍限率分减其初末限平率。皆为0,此处原文省略不言。

日分乘之,亦以限分除之,为日差,半之,加减初末限平率,在初者减初加末,在末者减末加初,为末定率:日分为一日的分数(即日法)。初末限平率既是各限初末平率,也是各限初日的初平率或末日的末平率。“在初者减初加末”即在盈初缩初限,减初限平率得限初定率,加末限平率得限末定率;“在末者减末加初”即在盈末缩末限,加初限平率得限初定率,减末限平率得限末定率。原文“为末定率”当作“为初末定率”。

古人多以小字插入正文中作注,而《宋史》将仪天历原文以注的形式附在应天历之后,则原本仪天历的正文变为与注同一字体,未加区别。此段“在初者减初加末,在末者减末加初”应为“加减初末限平率”的注释。(以下注释部分不再指出,仅以删除线标注。)所求得各限初末定率,各为其限在初日半日处的平率,或末日半日处的平率。

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

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

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

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

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

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

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

乃以日差累加减限初定率,初限以减、末限以加,为每日盈缩定分:初限为盈初缩初,末限为盈末缩末。每日即各限限日内的每日,以入冬至日为n,入限日为t(算外从0起计),则:

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

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

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

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

求入限后每日t的盈缩定分,即:

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

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

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

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

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

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

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

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

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

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

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

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

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

加入限初先后数:

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

春分-夏至(盈末,在缩)、秋分-冬至(缩末,在缩):先后定数_{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的取值,用该式只求得每日盈缩分,犹需加减限初先后数方为先后定数。术文在盈末缩末限时,先求得限末定率,再求限初定率,再累减日差为每日盈缩分,用以减限初先后数才求得先后定数。如果直接从限末定率累加日差,只需以入限日反减限日为每日入算,即求得先后定数。故知只需通过修改t在不同象限内的取值(即在末限时需反减限日),无论使用相减相乘法或等间距二次插值法,都可直接求得先后定数。而相减相乘法不用初末率,优点在于形式简单,计算方便,大量应用相减相乘法的崇玄历即被誉为“能驰骋反覆于乘除间”。

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

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

求四正节定日:此为求二分二至的定气所在日,即定气大小余。自秋分起日行盈(∑实行分>∑平行分),至春分达到盈之极(∑(实行分-平行分)最大),冬至为其中(∑实行分=∑平行分)。达到盈极后转为行缩,夏至为其中。故下文称“冬夏二至盈缩之中”,“春秋二分盈缩之极”。

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

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

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

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

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

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

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

进退定率_{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)


参考资料:

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,376评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,126评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,966评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,432评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,519评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,792评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,933评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,701评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,143评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,488评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,626评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,292评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,896评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,742评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,324评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,494评论 2 348

推荐阅读更多精彩内容