「奎一入戌」到底是什么意思
戌宫的宫界落在奎宿的起点,还是奎宿中间?《元史·授时历》里有明文的一行,以及一次比对到 0.054 度的过程——顺带写下我们中间弄错的四个地方。
中国星命盘的第一步是分十二宫。宫一分,星曜落在哪个宫、吉凶应到什么事上,就全跟着走。所以宫界画在哪儿不是细节问题,它决定整张盘。
而这件事在公开资料里出奇地模糊。最常见的说法是一句口诀:
奎一入戌
我们一开始的理解很直白——戌宫从奎宿的起点开始,「奎一」就是奎宿的头一个。后来发现这句话至少还有另一种读法:「奎一」指的是奎宿内部的第一个刻度,宫界落在奎宿中间的某一点。按后一种读法,界在奎宿初度往里 1.71 度处,两种读法差的就是这么多。
(有一笔账先挂着:如果"奎宿的头一个"按字面理解成距星本身,还要再叠上零点位置的 2.18 度。那是另一件事,后面会说到。)
1.71 度听起来可以忽略。可宫宽只有 30 度,而对一张具体的盘来说,宫界整体移动 δ,单个星曜换宫的概率大约是 δ/30——1.71 度对应 5.7%。一颗星换了宫,原本说"事业"的那句话就得改口说"财帛",不是小数点后的事。
于是我们需要把它弄清楚。
这件事不是从古籍入手的。我们手上有一个第三方排盘接口,本来是想复刻它的口径,那就得先知道它的宫界长什么样。做法很笨:把它一次调用返回的十二个宫头全读出来——只看命宫会漏掉宫宽信息。在 1930、1960、1990、2026 四个年代各取一次,十二个宫宽完全相等,最小值等于最大值,都是 30.0000 度。
另一组数字更有意思。所谓"宫头 mod 30"的相位,四个年代分别是 10.1073、10.1071、10.1070、10.1069 度;这个相位减去同年代的 Lahiri 岁差量之后,成了一个常数,四十年的飘动只有 0.0004 度。
所以它是严格等分 30 度,而且锚在恒星系上——跟着星空走,不跟着春分点走。恒星系只排除了回归黄道这条可能,并没有说明它用的是哪一套恒星约定;是哪一套,是后面的事。
于是问题变成:这个锚点是从哪儿来的。
《元史·卷五十四·志第六·历三·授时历经上》里有一节,标题叫「黄道十二次宿度」,十二个宫界逐条写明:
危,十二度六十四分九十一秒。 入娵訾之次,辰在亥。
奎,一度七十三分六十三秒。 入降娄之次,辰在戌。
胃,三度七十四分五十六秒。 入大梁之次,辰在酉。
毕,六度八十八分五秒。 入实沈之次,辰在申。
井,八度三十四分九十四秒。 入鹑首之次,辰在未。
柳,三度八十六分八十秒。 入鹑火之次,辰在午。
张,十五度二十六分六秒。 入鹑尾之次,辰在巳。
轸,十度七分九十七秒。 入寿星之次,辰在辰。
氐,一度一十四分五十二秒。 入大火之次,辰在卯。
尾,三度一分一十五秒。 入析木之次,辰在寅。
斗,三度七十六分八十五秒。 入星纪之次,辰在丑。
女,二度六分三十八秒。 入玄枵之次,辰在子。
答案在第二行:「奎,一度七十三分六十三秒,入降娄之次,辰在戌」。奎宿 1.7363 度处进入戌宫(降娄)。界在宿的中间,不在宿的起点。
读这段原文得先过一道体例的坎。元制 1 度 = 100 分,1 分 = 100 秒,所以「一度七十三分六十三秒」是 1.7363 度。分的下面还有「少」「半」「太」三个字,即 1/4、2/4、3/4 分——这个体例我们读漏过一处,后面会说。
再往下走,会遇到整件事里最隐蔽的一环。「入宿度」是某个天体相对于某个宿的位置,那零点是哪个点?两种可能:距星本身(把星投影到黄道上),或者距星所在的赤道经圈与黄道的交点。后一种是传统做法——古人测的是赤经差,宿界本质上是一个过天极的平面——但它不直观,我们一开始就想当然了。
我们没有凭印象判断,而是让同一部历书里的两张表对了一次账。卷内有一张「赤道宿度」表,还有一张「黄道宿度」表:拿赤道宿度去比现代星表的赤经差,平均差 0.299 元度;拿黄道宿度去比经圈交点的黄经差,平均差 0.306 元度;拿黄道宿度去比星自身黄经差,平均差 2.098 元度。
第三种比法差出一个量级,所以零点是经圈交点。同历元下,这两个候选点对奎宿一自身就差 2.18 度——开头挂的那笔账在这里还清。让我们放心的是,前两种比法本来就同源:距星定义的是一条经圈,赤道和黄道两套宿度都从它量起,残差理应同级,而它们是同级。
(顺便一提,那两个大偏差——娄 −2.95、壁 +2.76——正好是历史上换过距星的两宿。)
有了那十二行界度和零点定义,就能只用这部历书自己把十二个宫界累加成绝对度数。同卷「黄道宿度」表的四象分计是 78.12 / 94.1075 / 83.95 / 109.08,合计 365.2575 度,正好是授时历的周天常数——表本身是自洽的。
然后把十二个宫界各取 mod 30 的圆均值。那个值的意思是:最贴近这十二个宫界的等分 30 度网格,相位应该是多少。得到 349.947 度(奎宿距星取 ζ And,即元代用的那颗),而那个接口实测的相位是 349.893 度。差 0.054 度。
对照一下尺度:元代这十二宫界自身偏离等分的散布,极差有 4.27 度。0.054 度是它的八十分之一。所以那款接口的等分 30 度网格,与《元史·授时历》所载的元代十二次宫界,在相位上高度相容。再往下走一步就不在数据里了——比如"元代官定宫界就是等分的"这句话,恰恰是错的。
那十二个次本身就是不等分的。按原文累加,实际宽度在 27.89 度到 32.23 度之间,离 30 度最远 2.23 度。用等分去近似它是合理的简化,但那不是它本来的样子。
这个近似的代价可以量化。某个位置落在两条宫界之间就会换宫;把等分网格与元代官定宫界逐对边界相比,偏差绝对值之和是 17.217 度,除以周天 360 度,得到 4.78%。这是几何测度,成立的前提是"点在 360 度上均匀分布"。真实的星曜黄经不均匀(轨道有偏心率),所以它只能当量级参考。再往前推一步容易出错:有人说一张盘 11 颗星里至少有一颗换宫的概率是 41.7%,那个做法是错的——罗睺与计都严格相隔 180 度,水星距日不超过 28 度,金星不超过 48 度,十一颗星彼此高度相关,独立假设不成立。星盘级的真值要按真实星历做模拟,我们还没做。真正能用的是 4.78% 这个几何测度,加上它的适用边界。
到这里是结论。下面是四个错——它们当时看起来都很合理,其中两个还写进了别的地方。
第一个错,是把十二个次当成"整宿相加"。最早的版本里,我们按"哪几个宿属于哪一次"把整个宿加起来:降娄 = 奎 + 娄,实沈 = 觜 + 参,以此类推。得到十二次宽度 11.60 到 44.30 度(实沈只有 11.6 度,大梁 44.3 度),并据此写下结论:"十二宫就是十二次,与等分 30 度完全不相容。"错在宫界落在宿的中间,不在宿首——前面那十二行原文就是答案。实沈是"半个毕宿 + 觜 + 参 + 半个井宿",不是觜 + 参。正确值是 27.89 到 32.23。
这个错值得多说一句,因为当时它毫无破绽:二十八宿合计 365.70 度,对周天 365.25 只差 0.45 度,数据自洽;输出也整整齐齐。我们检查了数据对不对,没检查模型对不对。三个不同的错误模型,自洽性都可以很好。
第二个错,是把一个"相位差"当成了"两朝之差"。我们一度写过:那 10.1 度的锚点差,意味着"凡是太阳黄经距宫界 10.1 度以内的盘,换朝代口径就会差一整格,19 个样本里有 10 个如此"。可 10.1 度是网格相对 Lahiri 恒星黄道的相位差,说的是"这套软件跟今天通行的 Lahiri 标准差多少",跟宋元两代的差别没有任何关系。两代的十二次都锚在恒星(宿)上,差别只来自宿度测量的精度,量级是角分到一度,不可能是 10 度——那是三分之一个宫,七百年的岁差量。拿一个跨千年的量去代表两朝之差,这才是错误的本质。
这种错误不需要逻辑出错,只需要两个数字长得像:都以"度"为单位,都跟"口径"有关,堆在同一段话里读起来顺理成章。它也不是只写错过一次——同一个错数字被复制进了代码注释、口径说明和三条待办,一共五处。
第三个错,是拿 J2000 的星历去对 1280 年的历表。计算经圈交点的黄经时,公式是 λ = atan2(sin α, cos α·cos ε)。我们第一次用的 α 是现代赤经(J2000),而历表是 1280 年的。赤经本身随岁差变化,大约每世纪 1.28 度,所以那条经圈与黄道的交点在星空里并不静止;用今天的赤经去对七百年前的历表,是历元混用。改过来之后,前面那两组残差里的第二项从 0.618 降到 0.306 元度,相位一致性从 0.44 度变成 0.054 度。这两个量不是两个独立指标,它们由同一个修正驱动,"同时改善"只能说明修正方向一致,不构成互相印证。
第四个错,是百分制里的「太」字读漏了。最后一步要用同卷的「黄道宿度」表,北方七宿里有一项写作「虚九〈分空太〉」,我们第一次直接记成 9.00 度。元制里 1 分 = 100 秒,另有太 = 3/4 分,所以「分空太」是 0 分又 3/4 分,写作 9.0075 度。漏掉这个「太」,北方七宿就凑成 94.10 而不是 94.1075,全天合计也就对不上授时历的周天常数 365.2575。这个错只差 0.0075 度,不改变任何结论,但它不是数值问题,是没读懂体例——而体例读错,是古籍转录里最容易犯、也最容易被同行一眼看出的错。
后面这两个错,是交叉复核的时候被抓出来的。我们把自己的推导和原始数据摊开交给另一方去攻击,对方抓住了这两处,也提了一条替代解释,我们复核之后否掉了。
有几件事我们还没弄清楚。结论依赖一颗星的选择:元代奎宿距星取 ζ And,相差 0.054 度;取 η And,变成 2.678 度。我们有两条独立证据支持元代用 ζ And(一条是从卷内赤道宿度表反查,一条是壁宿到奎宿那一段的距度双向锁死),但史料对这件事本身有分歧记载,所以还没到"确证"的程度。
"同源"这样的话我们也不能说。上面用的统计量是"最佳等分拟合相位",它是一个构造出来的量,能说明两者不是毫不相干,不足以说明两者同源。所以全篇用的词是「相容」。
史料自身还有半度量级的单宿误差,就是那个 0.306 元度。0.054 度之所以能小于它,是因为相位是十二个界的平均量,随机误差按 √12 收敛——0.30/√12 ≈ 0.09 度,跟实测的 0.054 度同量级。这不是史料特别准,是平均量对随机误差不敏感。
还有一件事我们没查:少、半、太这三个字在别处是不是还有别的用法。我们只确认了它们在《授时历》里的含义。
如果你知道我们漏掉的既有工作,或者发现我们对原文的解读有误,都欢迎告诉我们。我们会在这篇文章里更正并注明。