Easter, Revisited

今天是复活节星期天。为什么?如何确定复活节的日期?

This is a revision of ablog post from 2013

Contents

Easter Day

Easter Day is one of the most important events in the Christian calendar. It is also one of the most mathematically elusive. In fact, regularization of the observance of Easter was one of the primary motivations for calendar reform centuries ago.

复活节与犹太逾越节有关。非正式规则是,复活节是春分之后的第一个满月之后的第一个星期日。但是,该规则所涉及的教会满月和春分并不总是与相应的天文事件相同,毕竟这取决于观察者在地球上的位置。

I am using a revision of theeaster我的程序blog post from 2013Experiments with MATLAB。让今年的检查。

easter_2018 = datestr(easter(2018))
easter_2018 = '01-Apr-2018'

Don Knuth

My MATLAB® program is based on the algorithm presented in the first volume of the classic series by Donald Knuth,计算机编程的艺术。Knuth在几个出版物中使用了它来说明不同的编程语言。该任务通常是计算机编程课程中练习的主题。

诺斯说,该算法是由于那不勒斯天文学家Aloysius Lilius和16世纪后期的德国耶稣会数学家Christopher Clavious造成的,并且大多数西方教堂都使用它来确定1582年后的任何一年的复活节星期日。

日期在3月22日至4月25日之间有所不同。

Metonic循环

The earth's orbit around the sun and the moon's orbit around the earth are not in sync. It takes the earth about 365.2425 days to orbit the sun. This is known as a tropical year. The moon's orbit around the earth is complicated, but an average orbit takes about 29.53 days. This is known as a synodic month. The fraction

year = 365.2425; month = 29.53; formatratratio = year/month
ratio = 6444/521

is not the ratio of small integers. However, in the 5th century BC, an astronomer from Athens named Meton observed that the ratio is very close to 235/19.

格式shortratio meton = 235/19
ratio = 12.3685 meton = 12.3684

In other words, 19 tropical years is close to 235 synodic months. This Metonic cycle was the basis for the Greek calendar and is the key to the algorithm for determining Easter.

MATLAB program

Here is the revised MATLAB program. Try other years.

Can you spot the change made to my old program in theblog post from 2013?

typeeaster
功能dn =复活节复活节日期。复活节%(y)是y年复活节的大数据。%示例:%Datest(复活节(2020))%Ref:Donald Knuth,计算机编程的艺术,%基本算法,第155-156页。%版权2014-18 Cleve Moler%版权2014-18 The Mathworks,Inc。在19年的Metononic Accile中的黄金数量。g = mod(y,19) + 1;百分比的人数。C =地板(Y/100) + 1;leap年和月亮轨道的校正%。x =地板(3*c/4)-12;Z =落地((8*C+5)/25)-5; % Epact. e = mod(11*g+20+z-x,30); if (e==25 && g>11 || e==24), e = e + 1; end % Full moon. n = 44 - e; if n < 21, n = n + 30; end % Find a Sunday. d = floor(5*y/4) - x - 10; % Easter is a Sunday in March or April. d = n + 7 - mod(d+n,7); dn = datenum(y,3,32);

参考

[1]唐纳德·E·努斯(Donald E.PDF available

[2] Wikipedia,有关复活节的主要文章。>

[3] Wikipedia, Computus, details on calculation of Easter.>

[4] Wikipedia,Metonic循环。>




与Matlab®R2018A一起出版

|

注释

To leave a comment, please click这里to sign in to your MathWorks Account or create a new one.