瓦伦斯占星选集·卷一第十八节:希帕恰斯式月亮星座算法

15 min

瓦伦斯占星选集·卷一第十八节希帕恰斯式月亮星座算法

瓦伦斯占星选集·卷一第十八节希帕恰斯式月亮星座算法封面
瓦伦斯占星选集·卷一第十八节希帕恰斯式月亮星座算法封面

【原文翻译】

我用下法简便求出月亮所在星座:从下附列王表中取所问年份对应的正确加数并相加。将该数除以 3,不丢弃余数而保留:余 1 时加 10;余 2 时加 20;余 3 时不加,因为此时正好整除。然后,取从透特月至出生日所经过月数的一半,加上〈出生月份中的〉日数。若可能,除以 30;从太阳所在星座起按余数计数。若太阳在星座起始处,每个星座分配 2 1/2;若接近星座末尾,则分配相应数量。计数停止处即为月亮位置。

也可用同一方法求某张命盘的日期:把加数加到所问年份上,依上述方法除以 3;再加所经月数的一半,记下结果。随后估计太阳至月亮的距离,每个星座分配 2 1/2〈日〉。比较两个数字:若由日月距离所得的数字较大,减去先前算出的数字,结果即显示日期;若距离数较小,先加 30,再减去先前的数字。若两个数都能被 30 整除,月亮就与太阳合相。

例如:哈德良三年,阿提尔月二十八日。我把这位国王惯用的加数 2 加到第三年,得 5;除以 3,余 2,故加 20,得 25。从透特月至阿提尔月的月数之半为 1 1/2,再加阿提尔月的 28 日,目前合计 54 1/2。除以 30,商 1,余 24 1/2。月亮距太阳合相便是这么多日。我从太阳所在的射手座起计此数,每个星座分配 2 1/2;在所说的那一天,月亮位于处女座。

求日期如下:再次把 2 加到第三年,再除以 3,余 2;故加 20 得 25,再加月数之半 1 1/2,共 26 1/2。然后估计太阳至月亮(即射手座至处女座)的距离为 24 1/2 日。因无法从 24 1/2 减去先前总数 26 1/2,便先加 30,得 54 1/2;再减 26 1/2,结果为 28,表明出生日为二十八日。

各位国王惯用的加数,按年代顺序附列如下:

君王在位年数运行总数减数余数/加数
奥古斯都1,43443014
提比略2236306
盖乌斯41010
克劳狄乌斯1424195
尼禄1419
维斯帕先1021192
提图斯355
图密善1520191
涅尔瓦122
图拉真1921192
哈德良2123194
安敦宁2327198
安敦宁与卢基乌斯·康茂德32403010
塞维鲁与安敦宁2535305
安敦宁499
亚历山大1322194
马克西米安377
戈尔迪安6
腓力6

表意说明:奥古斯都的余数 14 加到提比略;提比略在位 22 年,合计 36,减 30 余 6。尼禄处十九年周期正好完成。因为这一周期有效,为补足 30,向维斯帕先在位期加入 11 年。至腓力处,十九年周期再次完成。【译注:底本表格排版紧凑,部分“运行总数”是承接上一行余数的累计,并非单纯等于本行在位年数。】

【解读】

这套方法在计算什么

这套方法先估算出生时的“月龄”,再根据太阳的位置推算月亮所在的星座。

月龄指的是:

从上一次日月合相,也就是朔月或新月开始,已经过去了多少天。

整套计算可以理解为:

出生年份和日期

→ 估算月龄

→ 把月龄换成日月之间的距离

→ 从太阳的位置出发寻找月亮

它计算的是月亮在黄道上的星座位置,与前面讲的月纬、月亮阶位和风向不是同一件事。

第一步:把帝王纪年接起来

瓦伦斯使用“哈德良三年”“图拉真十三年”这样的帝王纪年。

问题在于,每换一位皇帝,年份就重新从第一年开始。因此,他需要用王表中的“承接加数”,把不同皇帝的纪年接成一条连续的时间线。

计算方式:

有效年数 = 当前皇帝在位年数 + 上一周期留下的承接加数

原文例子是哈德良三年。

哈德良使用的承接加数是2,因此:

3 + 2 = 5

这个5就是后面计算月相时使用的有效年数。

需要注意:表中的余数会传给下一位君王。哈德良三年使用的2来自图拉真一行留下的余数。哈德良一行最后算出的4,是哈德良完整在位期结束后传给下一位君王的数。

从现代角度看,这张王表相当于一张“纪年转换表”。

第二步:计算年份造成的月相偏移

一个太阳年约有365.24天。

十二个朔望月合计约354.37天。

两者相差约:

365.24 - 354.37 = 10.87天

瓦伦斯把它近似成11天。

也就是说,同一个太阳历日期到了下一年,月相大约会错开11天。

瓦伦斯占星选集·卷一第十八节希帕恰斯式月亮星座算法配图1
瓦伦斯占星选集·卷一第十八节希帕恰斯式月亮星座算法配图1

所以年份造成的月相偏移可以写成:

年份偏移 = 有效年数 × 11

例子中的有效年数是5:

5 × 11 = 55

月相大约每30天循环一次,所以只保留55除以30之后的余数:

55 - 30 = 25

年份部分的月相偏移就是25天。

原文为什么要“除以3,再加10或20”

瓦伦斯没有直接让人把有效年数乘以11,而是使用了一种方便心算的方法:

  • 除以3余1:在原数上加10
  • 除以3余2:在原数上加20
  • 正好整除:不加

例子中的有效年数是5:

5除以3,余2。

因此在5上加20:

5 + 20 = 25

这与“5乘以11,再除以30取余数”的结果相同:

5 × 11 = 55

55除以30,余25。

所以,“除以3再加10或20”只是古人的快捷算法。它实际计算的是每年约11天的月相偏移。

五欢星命札记

原文写“余3时不加”,按照现代数学语言,应理解为“余数为0,也就是正好整除”。除以3不会真正出现余3。

瓦伦斯占星选集·卷一第十八节希帕恰斯式月亮星座算法配图2
瓦伦斯占星选集·卷一第十八节希帕恰斯式月亮星座算法配图2

第三步:计算月份造成的偏移

埃及历每个月固定为30天,但真正的朔望月约为29.53天。

两者每个月相差约半天。

因此,瓦伦斯规定:

月份偏移 = 从透特月至出生月的月数 ÷ 2

原文例子从透特月至阿提尔月按3个月计算:

3 ÷ 2 = 1.5

所以月份造成的月相偏移是1.5天。

第四步:加上出生日期

现在把三部分放在一起:

  • 年份偏移:25天
  • 月份偏移:1.5天
  • 出生日期:28日

相加得到:

25 + 1.5 + 28 = 54.5

这个54.5还不是最终结果,因为月相每约30天会重新循环。

第五步:求出月龄

从54.5中减去一个完整的30天周期:

54.5 - 30 = 24.5

因此,出生时的月龄大约是24.5天。

它表示:

出生时距离上一次日月合相,大约已经过去24.5天。

这个24.5是天数,不是月亮黄经24.5°。

第六步:把月龄换成日月距离

瓦伦斯把一个30天的月相周期平均分给十二个星座:

30 ÷ 12 = 2.5

因此,他认为月亮相对太阳每前进一个星座,大约需要2.5天。

原文例子的月龄是24.5天:

24.5 ÷ 2.5 = 9.8

也就是说,月亮已经从太阳所在的位置向前走了大约9.8个星座。

用角度表示,每个月龄日大约相当于12°:

30° ÷ 2.5天 = 12°/天

所以:

24.5 × 12° = 294°

月亮大约领先太阳294°。

第七步:从太阳所在星座寻找月亮

例子中的太阳位于射手座开头附近。

瓦伦斯从射手座开始,每2.5天分配给一个星座:

  • 0至2.5天:射手座
  • 2.5至5天:摩羯座
  • 5至7.5天:水瓶座
  • 7.5至10天:双鱼座
  • 10至12.5天:白羊座
  • 12.5至15天:金牛座
  • 15至17.5天:双子座
  • 17.5至20天:巨蟹座
  • 20至22.5天:狮子座
  • 22.5至25天:处女座

月龄24.5落在22.5至25之间,因此月亮位于处女座。

原文最后得到:

月亮在处女座。

如果太阳位于一个星座的中间或末尾,就不能机械地给第一个星座分配完整的2.5天,需要按照太阳已经走过的度数缩短第一段。原文只说“分配相应数量”,没有给出完整的换算规则。

反过来推算出生日期

这套方法也可以倒过来使用。

已知:

  • 出生年份
  • 出生月份
  • 太阳位置
  • 月亮位置

就可以估算出生日期。

第一步:只计算年份和月份

前面已经算出:

  • 年份偏移:25天
  • 月份偏移:1.5天

暂时不加入出生日期:

25 + 1.5 = 26.5

这个26.5是出生日期以外的月相偏移。

第二步:由日月距离估算月龄

太阳在射手座,月亮在处女座。

按照每个星座对应2.5天的规则,瓦伦斯估计这段距离相当于24.5天。

所以:

日月距离数 = 24.5

第三步:减去年份和月份偏移

原本应当计算:

24.5 - 26.5

结果是负数。

因为月相是30天循环,所以先给24.5加上一个完整周期:

24.5 + 30 = 54.5

然后再减:

54.5 - 26.5 = 28

因此,出生日期是:

阿提尔月28日。

用现代公式概括

设:

Y = 当前王年加承接加数

M = 从透特月至出生月的月数

D = 出生日期

L = 月龄

E = 月亮领先太阳的角距离

正向计算可以写成:

有效年数:

Y = 当前王年 + 承接加数

月龄:

先计算 11 × Y + M ÷ 2 + D。

如果结果超过30,就不断减去30,直到结果落在0至30之间。

留下的数字就是月龄L。

日月角距离:

E ≈ 12° × L

月亮位置:

月亮黄经 = 太阳黄经 + E

如果结果超过360°,就减去360°。

反推日期的现代写法

先根据太阳和月亮的位置,计算月亮领先太阳多少度。

然后:

月龄 = 日月角距离 ÷ 12°

最后计算:

出生日期 = 月龄 - 11 × Y - M ÷ 2

如果结果小于0,就不断加30,直到结果落在1至30之间。

原文例子:

月龄是24.5天。

年份偏移是25天。

月份偏移是1.5天。

所以:

24.5 - 25 - 1.5 = -2

结果小于0,加上一个30天周期:

-2 + 30 = 28

因此出生日期是28日。

每一步实际在处理什么

计算步骤实际作用
当前王年加承接数把不同皇帝的纪年接成连续时间
有效年数乘以11计算每年累积的月相偏移
月数除以2修正30日月份与29.53日朔望月的差
加出生日期加入出生月已经过去的天数
减去完整的30天周期得到出生时的月龄
每2.5天分配一个星座把月龄换成日月之间的星座距离
从太阳位置向前计数得到月亮所在星座