以文本方式查看主题 - 中华农历论坛 (http://bbs.nongli.net/index.asp) -- 历法知识 (http://bbs.nongli.net/list.asp?boardid=2) ---- 张培瑜 中历二十四节气时刻计算 (http://bbs.nongli.net/dispbbs.asp?boardid=2&id=16602) |
||||||
-- 作者:lucky1909 -- 发布时间:2009/1/7 15:46:00 -- 张培瑜 中历二十四节气时刻计算 张培瑜 等在《中历二十四节气时刻计算》提出二十四节气时刻简化计算方法,称对近三四百年的计算误差5~10分钟。3500年内误差10~20分钟。 但是我按照日梭万年历上的节气时刻进行验证,发现出现较大偏差,不知道问题出在哪里。请各位大虾帮忙验证并指教。 Lo=(1006908.04″+129602768.13″T+1.089″T2)/3600 DL1=((6910.057″-17.24″T)×sinM+72.338″×sin( DL2=-(20.49″+17.2″sinQ)/3600 L= Lo+ DL1+ DL2 其中:T=(JD-2415020)/36525 M=357.528°+35999.05°E Q=125.045°-1934.136E E=(JD-2451545)/36525. JD——所要求太阳黄经的日期时刻对应的儒略日及小数。 L——太阳黄经 Lo——太阳平黄经 DL1——中心差修正 DL2——光行差、章动修正
注:我把公式E进行了编辑,以便后来的朋友可以直接看到正确的公式。--浪淘沙
|
||||||
-- 作者:浪-淘-沙 -- 发布时间: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天了.你说还能准确吗? 是不是你引用的公式有误啊?能把网址提供一下吗?我来校对一下你引用的公式. |
||||||
-- 作者:lucky1909 -- 发布时间:2009/1/7 17:27:00 -- king-wave@163.com 是你的信箱吧,我发给你原文,请查收。我自己验证2009年1月5日13:14小寒节气,按这公式算出黄经L=283.9左右。 |
||||||
-- 作者:xjw01 -- 发布时间: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 结果表达为弧度单位,乘上180/π或57.29577951后可转为度单位。此公式推导自一个级数展开式,在e的5次方之后截断。因此该式适合于小离心率。如果离心率很小,那么e的4次方及5次方项可以忽略。 最大误差为:
r/a = 1 + e2/2 |
||||||
-- 作者:xjw01 -- 发布时间:2009/1/7 20:51:00 -- 这里说的“中心方程”就是楼主说的中心差 v是真近点角,M是平近点角 把e、M、v等参数的多项式代入就可以得到中心方程,进而知道张培瑜的公式是否正确。 |
||||||
-- 作者:xjw01 -- 发布时间: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式 式中的分子部分的值变化十分缓慢。它的值是: 太阳黄经Θ可由上述的方法算出,它是Date黄道分点坐标中的真几何黄经,需通过计算地心坐标星体位置也可算出。 要取得Date黄道坐标中太阳的视黄经λ,还应对Θ进行章动修正及光行差修正。如果精度要求不高,可用下式修正: Ω = 125°.04 - 1934°.136*T 某此时候,我们需要把太阳黄经转到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式 如果要想得到太阳的视赤经及赤纬,以上二式中的Θ应换为λ,ε应加上修正量: [译者注]:实际上就是对Θ补上黄经章动及光行差,ε补上交角章动后再转到赤道坐标中。也可在赤道坐标中补章动及光行差,但公式不同。 公式24.6当然可以转为:tan(α) = cos(ε)*tan(Θ),接下来,我们要注意α与Θ应在同一象限。然而,如果你使用计算机语中有ATN2函数(C语言是atan2),那最好保持24.6式不变,这样就可直接利用ATN2函数算出α,即:α = ATN2( cos(ε)*sin(Θ),cos(Θ) ) 用以上内容也可以验证楼主引用的公式是否正确 |
||||||
-- 作者:xjw01 -- 发布时间:2009/1/7 21:02:00 -- 《寿星万年历》中低精度太阳真黄经算法(精度比楼主提供的略好): L = 48950621.66 + 6283319653.318*t + 53*t*t //平黄经
t = (JD-2451545.0)/36525,力学时
|
||||||
-- 作者:浪-淘-沙 -- 发布时间:2009/1/7 21:27:00 -- 回复楼主,我看了你发的邮件,你的公式与原文是一样的. 但算出来相差太大.大约差1天20小时. 我把T这一项加上1.833333日(1天20小时),计算结果相对好多了.误差在2\'到3\'(即误差在一小时之内). T=(JD-2415020+1.833333)/36525 我也知道胡乱加上1.833333是不合理的. 所以最好请你有空去问一下张培瑜先生,他的公式的由来.我们才能判断问题出在哪了. |
||||||
-- 作者:lucky1909 -- 发布时间:2009/1/8 8:50:00 -- 谢谢两位的讲解。 |
||||||
-- 作者:浪-淘-沙 -- 发布时间: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度,这是无法接受的. |