Easter

Easter Sunday is March 31 this year. Why? How is the date of Easter determined?

内容

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. Easter is linked to the Jewish Passover. The informal rule is that Easter Day is the first Sunday after the first full moon after the vernal equinox. But the ecclesiastical full moon and equinox involved in this rule are not always the same as the corresponding astronomical events, which, after all, depend upon the location of the observer on the earth. The date varies between March 22 and April 25. There is aneaster程序中的程序Experiments with MATLAB。让今年的检查。
datestr(easter(2013))
ans = 31-Mar-2013
明年怎么样?
datestr(easter(2014))
ans = 20-Apr-2014

Don Knuth

Theexmprogram is based on the algorithm presented in the first volume of the classic series by Donald Knuth,计算机编程的艺术。Knuth has used it in several publications to illustrate different programming languages. The task has often been the topic of an exercise in computer programming courses. Knuth says that the algorithm is due to the Neapolitan astronomer Aloysius Lilius and the German Jesuit mathematician Christopher Clavious in the late 16th century and that it is used by most Western churches to determine the date of Easter Sunday for any year after 1582.

Metonic循环

地球围绕太阳的轨道和月球围绕地球的轨道不同步。它需要大约365.2425天才能绕太阳绕。这被称为热带年。月球周围的轨道很复杂,但平均轨道大约需要29.53天。这被称为会议月。分数
year = 365.2425; month = 29.53; formatrat比率=年/月
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.

MATLABprogram

Here is the complete MATLAB program.
%addpath ../../exm类型easter
function dn = easter(y) % EASTER Date of Easter. % EASTER(y) is the datenum of Easter in year y. % Ref: Donald Knuth, The Art of Computer Programming, % Fundamental Algorithms, pp. 155-156. % Golden number in 19-year Metonic cycle. g = mod(y,19) + 1; % Century number. c = floor(y/100) + 1; % Corrections for leap years and moon's orbit. x = floor(3*c/4) - 12; z = floor((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,d);

参考

[1]唐纳德·努斯(Donald E.[2] Wikipedia,有关复活节的主要文章。> [3] Wikipedia,Computus,有关复活节计算的详细信息。> [4] Wikipedia,Metonic循环。>

Published with MATLAB® R2012b

|
  • print
  • send email

注释

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