中华农历论坛知识讨论区历法知识 → 张培瑜 中历二十四节气时刻计算


  共有34776人关注过本帖树形打印

主题:张培瑜 中历二十四节气时刻计算

帅哥哟,离线,有人找我吗?
lucky1909
  1楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:22 积分:355 威望:0 精华:0 注册:2008/7/24 16:23:00
张培瑜 中历二十四节气时刻计算  发帖心情 Post By:2009/1/7 15:46:00

张培瑜  等在《中历二十四节气时刻计算》提出二十四节气时刻简化计算方法,称对近三四百年的计算误差5~10分钟。3500年内误差10~20分钟。

      但是我按照日梭万年历上的节气时刻进行验证,发现出现较大偏差,不知道问题出在哪里。请各位大虾帮忙验证并指教。

Lo=(1006908.04+129602768.13T+1.089T2)/3600

DL1=((6910.057″-17.24T)×sinM+72.338″×sin(2M))/3600

DL2=(20.49+17.2sinQ)/3600

L= Lo+ DL1+ DL2

其中:T=(JD2415020)/36525

      M=357.528°+35999.05°E

      Q=125.045°-1934.136E

      E=(JD2451545)/36525.

JD——所要求太阳黄经的日期时刻对应的儒略日及小数。

L——太阳黄经

Lo——太阳平黄经

DL1——中心差修正

DL2——光行差、章动修正

 

注:我把公式E进行了编辑,以便后来的朋友可以直接看到正确的公式。--浪淘沙

 


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
浪-淘-沙
  2楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:2068 积分:4263 威望:5 精华:4 注册:2008/11/13 21:03:00
  发帖心情 Post By:2009/1/7 16:41:00

也许原始数据本身有误吧.

我把2415020(对应的是1899年12月31日12点格林尼治时间)代进去,算出来的太阳黄经为277.7988415度(277°47'55.83").

查寿星万年历,太阳黄经为279°38'36.47".相差1°50'41".转换为时间就是相差近2天了.你说还能准确吗?

是不是你引用的公式有误啊?能把网址提供一下吗?我来校对一下你引用的公式.


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
lucky1909
  3楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:22 积分:355 威望:0 精华:0 注册:2008/7/24 16:23:00
  发帖心情 Post By:2009/1/7 17:27:00

king-wave@163.com 是你的信箱吧,我发给你原文,请查收。我自己验证2009年1月5日13:14小寒节气,按这公式算出黄经L=283.9左右。

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
xjw01
  4楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:866 积分:3804 威望:3 精华:20 注册:2008/3/20 22:14:00
  发帖心情 Post By:2009/1/7 20:50:00

关于中心方程 

  如果离心率比较小,解第29章的开普勒方程可以使用29.1式,那么,关于C(即v-M)的中心方程,可以使用以下关于e和M的多项式直接计算:

C = (2e - e3/4+ 5/96*e5) sinM + (5/4*e2 - 11/24*e4) sin 2M
     + (13/12*e3 - 43/64*e5) sin 3M + (e4*103/96) sin 4M + (1097/960*e5) sin 5M

  结果表达为弧度单位,乘上180/π或57.29577951后可转为度单位。此公式推导自一个级数展开式,在e的5次方之后截断。因此该式适合于小离心率。如果离心率很小,那么e的4次方及5次方项可以忽略。

  最大误差为:

e的值

算到e4(")

忽略e4和e5(")

0.03
0.05
0.10
0.15
0.20
0.25
0.30
0.0003
0.007
0.45
5
29
111
331
0.24
1.8
30
152
483
1183
2456


  还有一个距离的展开式,保留到离心率e的5次方项:

r/a = 1 + e2/2 
      - (e - 3/8*e3 + 5/192*e5) cos M
      - (e2/2 -e4/3) cos 2M
      - (3/8*e3 - 45/128*e5) cos 3M
      - (e4/3) cos 4M
      - (125/384*e5)cos 5M


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
xjw01
  5楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:866 积分:3804 威望:3 精华:20 注册:2008/3/20 22:14:00
  发帖心情 Post By:2009/1/7 20:51:00

这里说的“中心方程”就是楼主说的中心差

v是真近点角,M是平近点角

把e、M、v等参数的多项式代入就可以得到中心方程,进而知道张培瑜的公式是否正确。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
xjw01
  6楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:866 积分:3804 威望:3 精华:20 注册:2008/3/20 22:14:00
  发帖心情 Post By:2009/1/7 20:55:00

太阳位置计算

一、低精度计算:

  当计算精度要求为0.01度,计算太阳位置时可假设地球运动是一个纯椭圆,也就说忽略月球及行星摄动,计算表达如下。

  设JD是儒略日数,可以用第7章表述的方法计算。T为J2000起算的儒略世纪数:

    T = (JD-2451545.0)/36525

  计算时要保留足够的小数位数,5位小数是不够的(除非所需的太阳黄经的精度要求不高),注意,T表达为儒略世纪数,所以T误差0.00001相当于0.37日。

  接下来,

  太阳几何平黄经:Lo = 280°.46645 + 36000°.76983*T + 0°.0003032*T^2 (Date平分点起算)

  太阳平近点角: M = 357°.52910 + 35999°.05030*T - 0°.0001559*T^2 -0°.00000048*T^3

  地球轨道离心率: e = 0.016708617 - 0.000042037*T - 0.0000001236*T^2

  太阳中间方程:C = +(1°.914600 - 0°.004817*T -0°.000014*T*T) * sin(M)+(0°.019993 - 0°.000101*T) * sin(2M)+ 0°.000290*sin(3M)

  那么,太阳的真黄经是:Θ = Lo + C

  真近点角是: v = M + C

  日地距离的单位是"天文单位",距离表达为:R = 1.000001018 (1-e^2) / (1+e*cos(v)) ……24.5式

  式中的分子部分的值变化十分缓慢。它的值是:
0.9997190 1800年
0.9997204 1900年
0.9997218 2000年
0.9997232 2100年

  太阳黄经Θ可由上述的方法算出,它是Date黄道分点坐标中的真几何黄经,需通过计算地心坐标星体位置也可算出。

  要取得Date黄道坐标中太阳的视黄经λ,还应对Θ进行章动修正及光行差修正。如果精度要求不高,可用下式修正:

    Ω = 125°.04 - 1934°.136*T
    λ = Θ - 0°.00569 -0°.00478*sin(Ω)

  某此时候,我们需要把太阳黄经转到J2000坐标中,在1900-2100年范围内可利用下式进行: Θ2000 = Θ - 0°.01397*(year-2000)

  如果还想取得更高的转换精度(优于0.01度),那么你可以使用第25章的方法进行坐标旋转。

  Date黄道坐标中的太阳黄纬不超过1".2,如果对精度要求不是很高,可以置0。因此,太阳的地心赤经α及赤纬δ可以用下式(24.6式,24.7式)计算,式中ε是黄赤交角(由21章的21.2式计算)。

  tanα = cosεsinΘ / cosΘ ……24.6式
  sinδ = sinεsinΘ ……24.7式

  如果要想得到太阳的视赤经及赤纬,以上二式中的Θ应换为λ,ε应加上修正量:
    +0.00256*cos(Ω)

[译者注]:实际上就是对Θ补上黄经章动及光行差,ε补上交角章动后再转到赤道坐标中。也可在赤道坐标中补章动及光行差,但公式不同。

  公式24.6当然可以转为:tan(α) = cos(ε)*tan(Θ),接下来,我们要注意α与Θ应在同一象限。然而,如果你使用计算机语中有ATN2函数(C语言是atan2),那最好保持24.6式不变,这样就可直接利用ATN2函数算出α,即:α = ATN2( cos(ε)*sin(Θ),cos(Θ) )

用以上内容也可以验证楼主引用的公式是否正确


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
xjw01
  7楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:866 积分:3804 威望:3 精华:20 注册:2008/3/20 22:14:00
  发帖心情 Post By:2009/1/7 21:02:00

《寿星万年历》中低精度太阳真黄经算法(精度比楼主提供的略好):

  L = 48950621.66 + 6283319653.318*t + 53*t*t //平黄经
    +334166 * cos( 4.669257+  628.307585*t) //地球椭圆轨道级数展开
      +3489 * cos( 4.6261  + 1256.61517*t ) //地球椭圆轨道级数展开
    +2060.6 * cos( 2.67823 +  628.307585*t ) * t  //一次泊松项
      - 994 - 834*sin(2.1824-33.75705*t)  //光行差与章动修正

 

t = (JD-2451545.0)/36525,力学时

 


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
浪-淘-沙
  8楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:2068 积分:4263 威望:5 精华:4 注册:2008/11/13 21:03:00
  发帖心情 Post By:2009/1/7 21:27:00

回复楼主,我看了你发的邮件,你的公式与原文是一样的.

但算出来相差太大.大约差1天20小时.

我把T这一项加上1.833333日(1天20小时),计算结果相对好多了.误差在2'到3'(即误差在一小时之内).

T=(JD2415020+1.833333)/36525

我也知道胡乱加上1.833333是不合理的.

所以最好请你有空去问一下张培瑜先生,他的公式的由来.我们才能判断问题出在哪了.


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
lucky1909
  9楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:22 积分:355 威望:0 精华:0 注册:2008/7/24 16:23:00
  发帖心情 Post By:2009/1/8 8:50:00

谢谢两位的讲解。

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
浪-淘-沙
  10楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:2068 积分:4263 威望:5 精华:4 注册:2008/11/13 21:03:00
  发帖心情 Post By:2009/1/8 11:37:00

还是许兄的公式计算结果精确高啊.

张培瑜先生的公式计算出来的修正值在1.8度以上.这肯定是不合理的.

按说平黄经与真黄经不会差太大的,即计算出来的Lo(平黄经)数据应当接近真黄经(L)的.

也就是说DL1这一项出了较大偏差.

我用许兄给的公式计算了一下,儒略日2451545(世界时公元2000年1月1日12点)的太阳平黄经为280.466450度.

用张培瑜的公式计算得到太阳平黄经为280.465905度.二者相差1.98"(在时间上大约相差0分48秒钟).这说明张培瑜先生的平黄经公式计算精度还是不错的.

但由于张先生的"中心差修正"公式出了错误,最后算出来的真黄经却相差近2度,这是无法接受的.


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
总数 16 1 2 下一页

返回版面帖子列表

张培瑜 中历二十四节气时刻计算








签名