算法的乐趣 · 第三十一节
《算法的乐趣》第三十一节
本节介绍黄经章动、光行差修正以及用牛顿迭代法计算二十四节气时间的方法。
本节介绍黄经章动、光行差修正以及用牛顿迭代法计算二十四节气时间的方法。首先,根据儒略世纪数计算太阳平近点角、月球平近点角、月球纬度参数和升交点黄经等基本角距,与系数表组合得到辐角,进而求出各周期项并累加得到黄经章动和交角章动,用于修正地心黄经。其次,为消除观测者运动和光速有限造成的视位置偏差,需进行光行差修正,对太阳视黄经只考虑周年光行差,通过地球与太阳的距离计算修正量并转为弧度。最后,由于历法需要由黄经反求时间,采用牛顿迭代法求解:以儒略千年数为自变量、节气对应黄经为常量定义函数,用差分近似代替求导,按节气与月份的对应关系估算迭代初始值,通常迭代三次即可收敛;结果由力学时转换为协调世界时,再调整至东八区,与紫金山天文台年历分钟级吻合。本节末尾引出农历朔日计算,说明日月合朔是制定农历月首的关键,并给出朔望月与恒星月的定义。