アプリ版:「スタンプのみでお礼する」機能のリリースについて

二十四節気の時刻を計算してみましたが、理科年表のようには計算できませんでした。気持ちがどうもスッキリしません。
私の計算方法を下記にまとめました。原因が分かる方、どうか教えて下さい。

JPL天文暦CD-ROM(DE200/405/406)版を”C”で読む
  http://www.kotenmon.com/cal/JPL-CD.htm
で公開されていた「直交座標計算ソース"test1.zip" 」を使って今年の春分を計算してみましたがうまくいきません。

理科年表で春分は 2009/3/20 20:44 となっていて、ユリウス日は2454910.988888888 と計算しました。
その値で、先のtest1.exe を使って、太陽と地球の座標を計算しました。

【太陽の座標計算】
 入力値を
  Julian date = 2454910.988888888
  Target nr. = 11
  Centre nr. = 12
  Units (Km & Km/s)=1 else AU & AU/Day?2
  Barycentre (Solar-sys. Barycentre)=1 else Sun?1
 として
  X [AU]= -0.0025423129061832891
  Y [AU]= +0.0039186867578048712
  Z [AU]= +0.0016761100992659754
 を得ました。

【地球の座標計算】
  Target nr. = 11
 として(他の値は太陽と同じ)
  X [AU]= -0.99850625589861797
  Y [AU]= +0.0059487115778656067
  Z [AU]= +0.0025604933086195618
 を得ました。

【黄道直行座標への変換】
 黄道傾斜 θ=23°26'21.7'' = 23.43936111 として
  X = Xs
  Y = Cosθ * Ys + Sinθ * Zs
  Z = -Sinθ * Ys + Cosθ * Zs
  の式に代入して。

 太陽の黄道直行座標
  Xs = -0.002542312906183
  Ys = 0.004262043089855
  Zs = -0.000020968330396
 地球の黄道直行座標
  Xe = -0.998506255898617
  Ye = 0.006476341890359
  Ze = -0.000017062804465

【黄経の計算】
  arctan( (Ys-Ye) / (Xs - Xe) ) = 179.872616 度

となり、180度に対してかなり違っています。
分単位くらいの精度で計算するとしたら、180±0.00001 くらいの精度が必要になりますが、かなり違います。

何かとんでもない間違いをしているのでしょうか。

DE405を使った別の方法でも結構です。
分かる方がいらっしゃったらご教授願います。

A 回答 (5件)

●太陽・月・惑星位置計算ソースも動かしてみました。


データは別の目的で使用しているDE405用を使用し、ソースを
DE405用に変更

Sun Position on 2009/ 3/20: H= 11.7333 : JD= 2454910.988889

RA(D ) = 359.999591746 Dec(D )= -0.000311669 Distance = 0.995966404
RA(HMS) = 23.595990202 Dec(DMS)= -0.000112201 Distance = 0.995966404

結果は、こちらはまともに計算しているようですが・・
#他の日時では未検証

この回答への補足

> ●太陽・月・惑星位置計算ソースも動かしてみました

試して下さってありがとうございました。
たしかに、こちらは良い結果を返していましたので乗り換えました。
このプログラムは黄経の計算もしてくれていたので、少しだけ改変して黄経が0度~15度刻みになる値を求めてみました。

(2009年)
黄経 月/日   計算値   理科年表
285  01/05  14:15:13  14:14
300  01/20  07:41:25  07:40
315  02/04  01:50:54  01:50
330  02/18  21:47:12  21:46
345  03/05  19:48:38  19:48
000  03/20  20:44:43  20:44
015  04/05  00:34:52  00:34
030  04/20  07:45:30  07:44
045  05/05  17:51:55  17:51
060  05/21  06:52:16  06:51
075  06/05  22:00:09  21:59
090  06/21  14:46:37  14:46
105  07/07  08:14:35  08:13
120  07/23  01:36:48  01:36
135  08/07  18:02:14  18:01
150  08/23  08:39:39  08:39
165  09/07  20:58:41  20:58
180  09/23  06:19:41  06:19
195  10/08  12:41:08  12:40
210  10/23  15:44:34  15:43
225  11/07  15:57:21  15:56
240  11/22  13:23:39  13:23
255  12/07  08:53:19  08:52
270  12/22  02:47:53  02:47


理科年表は秒の表示がないのですが、およそ1分程度、計算値のほうが遅い時刻になっているようです。
よく考えてみると、理科年表(二十四節気)は「黄経」ではなく「視黄経」での値でした。この1分はその差なのかもしれません。

おかげさまで、ものすごく理科年表の値に近づいたのですが、欲が出るもので、もう少し正確に計算したくなりました。

黄経と視黄経の差が概算式でもいいから求められれば、精度を高められるのでしょう。
歳差を調べてみると約50秒となっており
「天文学的根拠 -歳差運動-」
http://www2.synapse.ne.jp/haya/cosmsurf/saisa.html
には、概算式もありました。
関係がありそうですが、何をどう計算したらいいのか分かりませんでした。

どうしたら精度をもう少し高められるのでしょうか?

補足日時:2009/08/25 09:58
    • good
    • 0

>二十四節気)は「黄経」ではなく「視黄経」



太陽・月・惑星位置計算ソースも視黄経を計算しているものだと
思っていましたが・・未確認

黄経を高精度で比較しようとすると、理科年表や天文年鑑では
情報不足で、海上保安庁の「天体位置表」が必要になります。
#なかなかそこまでは踏み込めない・・
    • good
    • 0
この回答へのお礼

すこし調べてみましたが、1分の違いについては、分かりませんでした。視黄経って予想していたより難しいことがわかりました。

でも、おかげさまで非常にスッキリしました。
1ヶ月前は、何が何だか全く分からない状態で、「黄経ってなんだ?」というところから苦戦していました。計算結果も大幅にずれているし、とても混乱していました。

今回、かなりの精度で太陽の位置計算が出来る環境が手元に出来ましたので、これからは、この環境を元にして理解が深まっていくと思います。
約1分の違いは、将来の課題とします。

ありがとうございました。

お礼日時:2009/08/26 17:08

●test1.cを使ってみました。


ただし、別の目的で使用していたDE405のデータを使用するため、ソースを変更

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X JD = +2454910.9889
X Target = +3
X Centre = +12
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

X [AU]= -0.998506255898617967 Xdot [AU/DAY]=-0.000329864746434760869
Y [AU]=+0.00594871157786560668 Ydot [AU/DAY]=-0.0158491218203253258
Z [AU]=+0.00256049330861956182 Zdot [AU/DAY]=-0.00687156972546563733


●ご提示されたサイトの「地球の位置の計算結果例」を上記の条件の
 test1.cを使用して計算してみました。

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X JD = +2451178.5000
X Target = +3
X Centre = +12
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

X [AU]= -0.164015346031517323 Xdot [AU/DAY]=-0.0172588936607903677
Y [AU]= +0.890994868415613039 Ydot [AU/DAY]=-0.00256886566085575471
Z [AU]= +0.38654108491507122 Zdot [AU/DAY]=-0.0011139395489954088

小数点以下5桁くらいまでは同じようです。

これらの結果から言えることは、test1.cとしては正しそうな値を表示していますが
2009/3/20の位置データとしては正しくないように思えます。


●別のソフトでDE405を使用して、「太陽の位置」を計算してみました。
#赤道座標では、秒までは理科年表と一致する精度のソフトです。

元は以下のソフトの旧版ですが、目的が違うので、私は作者と
何度か連絡をとって許可をいただき、赤経、赤緯、距離が計算できる
ように変更しています。(X,Y,Zの表示はさきほど追加)
(黄道座標の表示も試行したが、数秒の誤差がなくならず断念)

http://www.toyama-cmt.ac.jp/~mkawai/almanac/nado …

             赤経    赤緯
2009/3/20 11:44:0(UT) 0: 0: 0.07 0: 0: -0.02
 X: 1.0000000000 Y: 0.0000049780 Z:-0.0000001198
    • good
    • 0

【訂正】


>協定世界時(UT)に変換して計算してください。
失礼いたしました。JDの値は合っておりました。

2009年3月20日 MJD=54910.48888888889
で、海上保安庁の略算式で地球の日心黄道座標を計算して、
座標変換したら、

X: -0.9959694979352357
Y: -0.000003560031028005969
Z: 0
になりました。

test1.cでは確かめていませんので、値があっているかの検証は
できておりません。

この回答への補足

ありがとうございました
ところで、春分は180度じゃなくて0度でした。だから私の計算では、
-0.127384 度となっていることになります。

提示頂いた値でatan(Y/X)を計算すると、0.000204800 度となり、
かなりいい精度ですね。私は何か考え違いをしているのかな。

補足日時:2009/08/22 23:50
    • good
    • 0

>理科年表で春分は 2009/3/20 20:44 となっていて、ユリウス日は


>2454910.988888888 と計算しました。

2009/3/20 20:44 は日本標準時(JST)ですが、ユリウス日を計算する際には
協定世界時(UT)に変換して計算してください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!