« プログラミング講座(59) 日の出、日の入りの計算 | トップページ | プログラミング講座(61) ランタイムエラー »

2011/05/14

プログラミング講座(60) ケプラーの第2法則

日の出、日の入りの計算の前提として、黄経(公転軌道面での太陽と地球の位置関係)と日数の関係を計算する必要があるのですが、これに結構手間取っています。

1年(365.2422日)をかけて地球が太陽の周りを回っていますが、春分、夏至、秋分、冬至をそれぞれ0°、90°、180°、270°とする黄経と日付(日数)の関係は単純な比例にはなりません。これは地球の公転軌道が楕円で、ケプラーの第2法則にしたがって地球が運行しているからです。つまり、冬至を過ぎた1月初旬の黄経13°あたりの近日点を通る時が一番速く、反対の遠日点を通る時が一番遅くなる、というようにずれていきます。実際、今年の春分(0°)は3/21、夏至(90°)は6/22、秋分(180°)が9/23、冬至(270°)が12/22でなので、春分~夏至(90°)と夏至~秋分(90°)は93日、秋分~冬至(90°)が90日になります。

Photo_2
【図63 楕円軌道の面積速度】

ケプラーの第2法則は「惑星と太陽とを結ぶ線分が単位時間に描く面積は、一定である(面積速度一定)」というものです。

面積速度A(上図グレーの部分)が一定になります。公転軌道の中心をC、太陽をS、地球をE、近日点をNとしたとき、扇NSEの面積Aは軌道の中心Cを含む扇CNE面積から三角形SCE(図のピンクの部分)の面積を引いたものです。楕円軌道上の地球Eを仮想円軌道上のE'に投影したとき、面積速度Aを∠NCE'=θc.の式で表すと以下のようになります。

A = (b / a * a2 θc / 2) - (eay / 2)
= (θc-e sinθc)* a * b / 2

(太陽黄経の基準を春分から近日点へと回転した)角度θの間地球が移動にかかる日数dは面積速度Aに比例し、公転楕円軌道全体(年間)の面積速度をAyとすると、

d = 365.2422 * A / Ay

となります。

前回の影の計算の前提となる太陽黄経θsは、上図のθから近日点と春分点の間の角度(仮に77.1°としておきます)を引いたものです。以上のことから、ようやく太陽黄経θsと日数dの関係が求まるわけです。

この他にも自転軸がスリコギを回すように方向を変える歳差運動や、地球が地球と月の共通の重心を中心に回転していることなどで、さらに複雑な動きをしますが、今回の計算では無視することにします。

なお、近日点Nと春分点Pのなす角度∠NSPを仮に77.1°としたのはウェブ上の文献の情報を元にしたのですが、これだと計算が合わない(2日ずれる)ので次回までに上記の関係を元に再計算する予定です。

(つづく)

|

« プログラミング講座(59) 日の出、日の入りの計算 | トップページ | プログラミング講座(61) ランタイムエラー »

Small Basic」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: プログラミング講座(60) ケプラーの第2法則:

« プログラミング講座(59) 日の出、日の入りの計算 | トップページ | プログラミング講座(61) ランタイムエラー »