旧暦の計算《朔の計算編》

本ページは旧暦の計算のサブページです。

1873(明治6)年のグレゴリオ暦への改暦まで日本で使われていた旧暦
本ページでは、旧暦の計算で必要となるの時刻の計算方法について記載する。

目次

平朔と定朔

概要編にも記した通り、旧暦の各月は(新月)の日から始まる。

下のアニメーションは、地球の周りを回る月と太陽の位置関係と、月の朔望を表したものである。
これを見るとわかる通り、朔とは「地球から見て月と太陽が同じ方向に来る瞬間」のことである。
(作暦においては「太陽の周りを地球が回る」ではなく「地球の周りを太陽が回る」と捉えた方がわかり易いので、本稿でもそのように表現する)

月と太陽の位置関係と月の朔望

平朔

平均的には、月は1日当たり約 13.2°、太陽は1日当たり約 0.985° だけ進む。
月と太陽が常に一定の速さで進むと仮定すると、朔から次の朔までの間隔(すなわち月が太陽よりも 360° 先に進む時間)T☽︎ は次式で表される。
これを平均朔望月と呼ぶ。

T☽︎ = 360°/( 13.2°/ 0.985°/) =  29.5 

また、第 m  朔の時刻 ν̄m は平均朔望月 T☽︎ を用いて次式で表現できる。これを平朔と呼ぶ。
(朔の番号については節気番号と月番号を参照)

ν̄m = ν̄0 + T☽︎·m

但し、各暦法における第0朔の時刻 ν̄0 と平均朔望月 T☽︎ の値は次表で与えられる。

平朔の計算に用いる定数[注1]
暦法 第0朔の時刻(グレゴリオ暦)
ν̄0
平均朔望月
T☽︎
元嘉暦
儀鳳暦
平朔儀鳳暦
大衍暦
五紀暦
宣明暦
貞享暦
宝暦暦
修正宝暦暦
寛政暦[注2]
天保暦[注2]

定朔

平朔は月や太陽の速さが常に一定と仮定して求めた朔であったが、実際には月や太陽の動きは速くなったり遅くなったりする。
平朔 ν̄m に対し、月や太陽の速さの変動を加味して求めた“真の”朔の時刻 νm定朔と呼ぶ。

定朔 νm を求めるに当たっては、多くの暦法では、まず前項により平朔 ν̄m を求め、これに補正項を加えて定朔とする。
次節以降、各暦法における定朔の求め方を説明する。

元嘉暦・平朔儀鳳暦の朔

元嘉暦・平朔儀鳳暦では、定朔を求めず平朔をその侭作暦に用いる。
これはすなわち、平朔を以てその侭定朔と見做しているのと同じである。

νm = ν̄m

儀鳳暦・大衍暦・五紀暦・宣明暦の定朔

儀鳳暦・大衍暦・五紀暦・宣明暦では、月離げつり(月の動き)による補正値と日躔にってん(太陽の動き)による補正値とをそれぞれ求め、これらを平朔に加減して定朔を求める。

上述の通り、朔とは「地球から見て月と太陽が同じ方向に来る瞬間」のことである。
言い換えると、「月が太陽を追いかけて、追い抜く瞬間」であるとも言える。
従って、月や太陽の動く速さの変化に応じて以下の現象が生ずる。

月離による補正値

月は地球を焦点とする楕円軌道上を周回している(ケプラーの楕円軌道則)。
そして、月は地球に近づいたときほど速く動き、遠ざかるに連れて動きが遅くなる(ケプラーの面積速度一定則)。[注3]

月の軌道と速さ

月が地球に最も近づく点を近地点、地球から最も遠ざかる点を遠地点と呼ぶ。
月が近地点を出発して楕円軌道を一周して再び近地点に戻るまでの時間を近点月 P☽︎ と呼ぶ。
以降、月の周回運動における近地点(遠地点)通過時刻を単に近地点(遠地点)通過時刻と書く。

月の動く速さは地球からの距離に依存するので、各時点において月が平均と比べて何時間分先に進んでいるかをプロットすると、下図のように近点月 P☽︎ を周期とする周期関数となる。
この関数を Δ☽︎(t) と書くことにする。Δ☽︎(t) の具体的な式は計算式編を参照。

月離による補正値 Δ☽︎(t) (図は宣明暦の場合)

月の動きが速い程朔の時刻も早くなるので、月の動き(月離)を加味すると、定朔の時刻は以下のように表せる。

νm = ν̄mΔ☽︎(ν̄m)

日躔による補正値

太陽についても月と同様である。
太陽は地球を焦点とする楕円軌道上を周回している(ケプラーの楕円軌道則)。
そして、太陽は地球に近づいたときほど速く動き、遠ざかるに連れて動きが遅くなる(ケプラーの面積速度一定則)。

太陽の軌道と速さ

太陽が地球に最も近づく点を近日点、地球から最も遠ざかる点を遠日点と呼ぶ。
太陽が近日点を出発して楕円軌道を一周して再び近日点に戻るまでの時間を近点年 P と呼ぶ。
以降、太陽の周回運動における近日点通過時刻を単に近日点通過時刻と書く。[注4]

太陽の動く速さは地球からの距離に依存するので、各時刻において太陽が平均と比べて何時間分先に進んでいるかをプロットすると、下図のように近点年 P を周期とする周期関数となる。
この関数を Δ(t) と書くことにする。Δ(t) の具体的な式は計算式編を参照。

日躔による補正値 Δ(t) (図は宣明暦の場合)

太陽の動きが速い程朔の時刻は遅くなるので、太陽の動き(日躔)を加味すると、定朔の時刻は以下のように表せる。

νm = ν̄m + Δ(ν̄m)

進朔

大衍暦・五紀暦・宣明暦では進朔しんさくという朔日の調整が行われていた。
これは、「朔の時刻が夕方以降である場合、朔のある日ではなくその翌日を朔日と見做す」というものである。

大衍暦・五紀暦では進朔の実施の有無は不規則であったが、宣明暦の時代になると

1日の¾が過ぎて以降(すなわち18時以降)の朔は翌日の朔と見做す

という形で機械的に進朔が行われていたようである。
言い換えると、朔日の計算に於いては定朔に¼日を加えていたとも見做せる。

νm = ν̄m + 1/4

(但しこれはあくまで日単位の計算用であって、進朔とは朔の時刻をずらすことではない)

定朔の計算

以上を纏めると、儀鳳暦・大衍暦・五紀暦・宣明暦の定朔日は、平朔 ν̄m を用いて次式で表現できる。

νm = ν̄mΔ☽︎(ν̄m) + Δ(ν̄m) + j

但し、Δ☽︎(t)Δ(t) はそれぞれ月離と日躔による補正を表す周期関数であり、j  は進朔である。

各暦法における関数 Δ☽︎(t), Δ(t) の周期(近点月・近点年)とその始点(近地点通過時刻・近日点通過時刻)並びに進朔 j  の値は次表で与えられる。
各暦法における関数 Δ☽︎(t), Δ(t) の具体的な式は計算式編を参照。

儀鳳暦・大衍暦・五紀暦・宣明暦の定朔の計算に用いる定数[注5]
暦法 第0月の近地点通過時刻
(グレゴリオ暦)
π0
近点月
P☽︎
西暦0年の近日点通過時刻
(グレゴリオ暦)
p0
近点年
P
進朔
j
儀鳳暦 なし
大衍暦 不規則
五紀暦 不規則
宣明暦 1/4 日

貞享暦・宝暦暦・修正宝暦暦の定朔

貞享暦・宝暦暦・修正宝暦暦では、「平朔の時点において月と太陽がどれだけ離れていて、それを解消するのにどれだけの時間を要するか」を求め、これを平朔に加減して定朔を求める。

黄経

周回軌道における月や太陽の位置は、黄経によって表される。
これは、「周回軌道全周を 360° としたとき、月や太陽が冬至点の方向から何度進んだ位置にあるか」の値である。
(西洋天文学では春分点を とするのが通例だが、本稿では中国暦の慣習に倣い冬至点を基準とする)

時刻 t  における月と太陽の黄経をそれぞれ λ☽︎(t), λ(t) と書く。
例えば下図の状況であれば、月の黄経は λ☽︎(t) = 45°、太陽の黄経は λ(t) = 75° ということになる。

月と太陽の黄経(冬至点基準)

月や太陽の速さが常に一定であると仮定すると、黄経(平均黄経)は以下のように単純な1次関数で表される。
360° の倍数の違いは無視する。例えば 361° と同じ黄経を表す)

λ̄☽︎(t)=a + ω̄☽︎t
λ̄(t)=b + ω̄t

実際には月や太陽の速さは変動するので、真の黄経は平均黄経には従わない。
その誤差を δ☽︎(t), δ(t) とすると、黄経は以下の形で表される。

λ☽︎(t) =λ̄☽︎(t) + δ☽︎(t) =a + ω̄☽︎t + δ☽︎(t)
λ(t) =λ̄(t) + δ(t) =b + ω̄t + δ(t)

誤差項 δ☽︎(t), δ(t) は、平均黄経に対する月離・日躔の進み具合であるから、それぞれと近点月 P☽︎ と近点年 P を周期とする周期関数となる(下図)。
これらの具体的な式は計算式編を参照。

平均黄経に対する月離の進み δ☽︎(t)
平均黄経に対する日躔の進み δ(t)

角速度

月や太陽の位置を黄経で表すとき、その速さ(すなわち単位時間当たりの黄経の変化量)を角速度と言う。
時刻 t  における月と太陽の角速度は、それぞれ黄経の導関数 λ☽︎(t), λ(t) によって表される。

λ☽︎(t) =ω̄☽︎ + δ☽︎(t)
λ(t) =ω̄ + δ(t)

定数項 ω̄☽︎, ω̄平均角速度と呼ばれる。
これらは角速度の平均値であり、また、平均黄経の角速度でもある。

定朔の計算

今、平朔 ν̄m の時点で太陽が月よりも進んだ位置にあるとする。
この時点で太陽と月の黄経の差は λ(ν̄m) − λ☽︎(ν̄m) であり、相対角速度は λ☽︎(ν̄m) − λ(ν̄m) である。
よって、ここから月が太陽に追いつくまでの時間(すなわち平朔から定朔までの時間 νmν̄m)を旅人算[注6]の要領で求めると、次式の通りとなる。

νmν̄m = (λ(ν̄m) − λ☽︎(ν̄m))/(λ☽︎(ν̄m) − λ(ν̄m)) (但し λ(ν̄m) − λ☽︎(ν̄m)±180° 以内の角度で表す)

これに前項までで求めた等式を代入すると次式が得られる。

νmν̄m = ((λ̄(ν̄m) + δ(ν̄m)) − (λ̄☽︎(ν̄m) + δ☽︎(ν̄m)))/((ω̄☽︎ + δ☽︎(ν̄m)) − (ω̄ + δ(ν̄m)))

ここで、平朔 ν̄m とは月と太陽の平均黄経 λ☽︎(ν̄m), λ(ν̄m) が同じ方向となる時刻であったから、次式が得られる。

νmν̄m = (δ(ν̄m) − δ☽︎(ν̄m))/((ω̄☽︎ + δ☽︎(ν̄m)) − (ω̄ + δ(ν̄m)))

斯くして平朔 ν̄m と定朔 νm との関係式が得られた。
これは平朔 ν̄m の時点で月の方が太陽よりも進んだ位置にある場合も同様である。

平朔 ν̄m から定朔 νm を求めるには導関数 δ☽︎(t), δ(t) の値も必要になるが、これらは愚直に微分して求める必要は無い。
貞享暦の原典では以下の近似式で求めている(実際には予め用意された数表を参照する形である)。
※真に必要なのは平朔における瞬間の角速度ではなく平朔~定朔間の平均の角速度であるから、愚直に微分するよりもこちらの方が却って正確である。

δ☽︎(t) =(δ☽︎(⌊t⌋ + 0.1 ) − δ☽︎(⌊t⌋))/0.1   (但し tt0.1 日単位で切り捨てた値)
δ(t) =(δ(⌊t⌋ + 1 ) − δ(⌊t⌋))/1   (但し tt1 日単位で切り捨てた値)

なお、簡便に以下のような形で計算しても、(少なくとも貞享暦・宝暦暦・修正宝暦暦の施行期間においては)朔日が日単位でズレることは無い。

δ☽︎(t) =(δ☽︎(t + 0.5 ) − δ☽︎(t − 0.5 ))/1 
δ(t) =(δ(t + 0.5 ) − δ(t − 0.5 ))/1 

各暦法における関数 δ☽︎(t), δ(t) の周期(近点月・近点年)とその始点(近地点通過時刻・近日点通過時刻)並びに角速度 ω̄☽︎, ω̄ の値は次表で与えられる。

貞享暦・宝暦暦・修正宝暦暦の定朔の計算に用いる定数
暦法 第0月の近地点通過時刻
(グレゴリオ暦)
π0
近点月
P☽︎
月の平均角速度
ω̄☽︎
西暦0年の近日点通過時刻
(グレゴリオ暦)
p0
近点年
P
太陽の平均角速度
ω̄
貞享暦 13.36875 日度/日 1 日度/日
宝暦暦 13.36875 日度/日 1 日度/日
修正宝暦暦 13.36875 日度/日 1 日度/日

表中の「日度」とは、太陽が1日に進む角度を表す単位である。
(例えば貞享暦の場合、1  = 360° = 365.256696 日度 となる)[注7]

寛政暦以降の定朔

寛政暦以降の旧暦では、平朔を介さずに月と太陽の黄経から直接定朔を求める。

抑〻定朔とは、月の黄経 λ☽︎(t) と太陽の黄経 λ(t) とが同じ方向となる時刻 t = νm である。
前節までは一旦平朔を求めてから補正する形で定朔を求めていたが、実のところ関数 λ☽︎(t), λ(t) から定朔を直接求めてしまえばそれでよい。

黄経

前節までは、月や太陽の進み方は地球からの距離のみに依存するものであり、近点月・近点年を周期として周期的に変化するものとしていた。
寛政暦以降の旧暦では、地球からの距離のみならず歳差や他の天体に因る摂動等をも考慮に入れるので、黄経 λ☽︎(t), λ(t) は単純な周期関数にはならない。

1868年近辺における月と太陽の黄経 λ☽︎(t), λ(t) の変動を図示したものが下図である。
これらの具体的な求め方は計算式編を参照。

1868(明治元)年近辺の月と太陽の黄経 λ☽︎(t), λ(t)
(図上部の年月はグレゴリオ暦の年月)

定朔の計算

月と太陽の黄経の差 Δ(t) := λ☽︎(t) − λ(t) を図示すると下図のようになる。

1868(明治元)年近辺の月と太陽の黄経の差 Δ(t)
(図上部の年月はグレゴリオ暦の年月)

定朔とはすなわち Δ(t) = 0 の解(Δ(t) < 0 から Δ(t) > 0 に転ずる t )であるから、あとはこれを二分探索等で求めてやればよい。

細かい時刻は無視して朔の日付だけを求めたければ、次式を満たす日付 d  を探せばよい。

Δ(d 0 ) ≤ 0 < Δ(d + 1  0 )

出典・参考資料

脚注

^ 1.
元嘉暦では752分を以て1日とする単位で月の運行を表現していたので、本稿でも分数表記は敢えて約分・通分をせず固定の分母で表現している。儀鳳暦・大衍暦・五紀暦・宣明暦も同様。
^ 2.
寛政暦・天保暦の作暦においては必ずしも平朔を求める必要は無いが、定朔を探索する手掛かりとしては有用である。
^ 3.
月の公転は中心天体(地球)だけでなく太陽や他の惑星の重力の影響が無視できないので、実際にはケプラー運動からの乖離が小さくない。
^ 4.
「近日点」「遠日点」という表現は「太陽を中心天体とする地球(或いは他の惑星)の運動において最も太陽に近づく/遠ざかる点」という意味なので、本稿で採用している「地球の周りを太陽が回っている」モデルには合わないのだが、気にしないことにする。
^ 5.
儀鳳暦・大衍暦・五紀暦・宣明暦における「近日点」「近点年」はそれぞれ「冬至点」「太陽年」と同じである。実際には太陽年よりも近点年の方が僅かに長いので近日点と冬至点とは一致しないのだが、13世紀前後においては近日点と冬至点とは近くに位置していた。
^ 6.
「旅人算」は小学校の算数におけるの問題の類型。「サトシさんがシゲルさんを追いかけている。追いつくまでの所要時間はどれだけか?」のような形のもの。初期状態における両者間の距離と両者の速度が所与であれば、両者間の距離を両者の相対速度で除すれば所要時間が得られる。
^ 7.
「日度」という呼び方は「おまつのブログ」(おまつさん)によるものである。