Application Center - Maplesoft

App Preview:

Kinematics of Our Earth-Moon System

You can switch back to the summary page by clicking here.

Learn about Maple
Download Application




                      Kinematics of Our Earth-Moon System

By:  Ali Mohamed Abu oam                     

International University of Africa ( Sudan )                                                          Faculty of Pure and Applied Sciences


Abstract: The purpose of this worksheet to show the ability of  maple to simplify understanding

                          the " Kinematics of Our Earth-Moon System ". Of course mathematics is the base of all                                                                               sciences and mathsoftware is of great role nowadays.



If we want a global understanding of the earth-moon system, we need not go into all details of the moon's space travel. E.g., we can neglect the influence of our sun and of other bodies in our planetary system. And we can use the Linear Algebra Package of MAPLE (9.01 in this worksheet) with rounded numbers for calculations.  

So we consider the earth  to be a sphere with radius   R ( = 1)  and the moon a point (of mass) in space, at a distance of approximately  r = 60*R  ( actually  60.33*R ) from earth. The common centre of gravity of earth and moon (the barycentre) , around which both actually rotate, lies inside the earth, at  0.73*R from earth's centre, but we neglect this. We let the moon move in a circular path, which lies in a plane, around the earth's centre.

The earth-moon system is moving around the sun in an orbit, which lies also in a plane, the ecliptic. This plane has an angle of inclination towards our equator of  23.45°. The moon's plane is inclined  5.15°  to the ecliptic, so in total  29°  towards our equator, and we take this rounded as  a := Pi/6 = 30° . One full orbit of the moon around the earth lasts 27.322 days, we take 28 days so that the angular velocity of the moon can be taken as omega := Pi/14   rad/day .



Two Coordinate Systems

Defining the Systems

For our calculations we need two coordinate systems. One, the inertial system, we choose as follows:

origin  O  in the centre of the earth;

the 1-axis perpendicular to the drawing plane, its positive direction towards the onlooker of this worksheet;

the 2-axis in the drawing plane, from left to right;

the 3-axis from south- to north-pole.

The second, local system, fixed to and moving with the earth, with an observer in its origin  O' :

the origin  O' , at time  t = 0  on the meridian depicted as the circle in Figure 1 and on the earth's radius R which is inclined    rad  to the equator (i.e. latitude  + theta );

the 1'-axis tangential to the parallel of latitude  and pointing against the direction of earth's rotation, i.e. to the west (or right, when looking down from north to south, so this is towards the onlooker of this worksheet);

the 2'-axis tangential to the meridian, pointing to the south;

the 3'-axis in the same direction as the vector from O to O', i.e. perpendicular to the earth's surface.

Both of these systems then are  "right handed".


Plotting Data

  c:=circle([0,0],1):#the earth
  EQ := line([-1,0], [1, 0], color=black):# the equator  
  l[ecliptic]:=line([-1.4*cos(Pi/180*23.45),1.4*sin(Pi/180*23.45)], [1.4*cos(Pi/180*23.45),-1.4*sin(Pi/180*23.45)],color=red, linestyle=1): # the ecliptic
  l[moon]:=line([-1.4*cos(Pi/180*28.5),1.4*sin(Pi/180*28.5)], [1.4*cos(Pi/180*28.5),-1.4*sin(Pi/180*28.5)], color=blue, linestyle=3):# the plane of moon's orbit
  OR := circle([0,0],0.02,color=blue):# the earth's centre O
  O_R := circle([cos(Pi/6), sin(Pi/6)],0.02,color=red):# centre O' of  local system
  lR:=arrow([0,0],vector([cos(Pi/6),sin(Pi/6)]),.005,.02,.1,color=black):# the radius R(theta)
  l[Omega]:=arrow([0,1],vector([0, 0.4]),.005,.03,.2,color=black):#  vector  of the angular velocity  of the earth in the inertial system
  l2:= arrow([1,0],vector([0.4, 0]),.005,.03,.08,color=black):#  the 2-axis
  l3:= arrow([0, 0],vector([0, .5]), .005, .02, .1, color=black):# the 3-axis
  l_2:= arrow([cos(Pi/6), sin(Pi/6)], vector([1/3*sin(Pi/6), -1/3*cos(Pi/6)]), .005, .02, .08, color=black):# the 2'-axis = tangent to the meridian
  l_3:= arrow([cos(Pi/6), sin(Pi/6)], vector([1/3*cos(Pi/6), 1/3*sin(Pi/6)]), .005, .02, .08, color=black):# the 3'-axis = perpendicular to the meridian


Warning, the names arrow and changecoords have been redefined

  t10:=textplot([-.5,.5,`plane of moon`],color=blue):                              t7:=textplot([-0.5,0.1,`equator`]):
  x1:=(r,phi)->r*cos(phi):x2:=(r,phi)->r*sin(phi):# introduce polar coordinates
  p:=plot([x1(.4,phi),x2(.4,phi),phi=0..Pi/6]): #  the angle theta  

Transformation of Coordinates

restart:  with(LinearAlgebra):

In order to get the laws of transformation between the coordinates  x = (%? )  in our inertial system, and those in the local system, z = (%? ) , we proceed in steps as follows:

In the inertial system the axes have the respective directions


step 1  Together with the earth, the local system is rotating, so that after a time  t  the whole system has turned by an angle of phi := Omega*t   around the inert 3-axis, with | Omega | = 2*Pi    rad/day . After this rotation, the directions of the new axes in the inertial system are given by the following one-vectors (i.e. vectors with lentgh = 1) :



In order to transform the coordinates we need the matrix


step 2   Then we rotate the interim coordinate system around the interim 1-axis through an angle of ( Pi/2-theta ), to bring the interim 3-axis in line with the final 3'-axis (see Figure1) . This will be effected by the following transformation


with its matrix


To combine these two transformations and we need both matrices transposed and get

M:=Transpose(M1).Transpose(M2): MT:=Transpose(M):

By means of this transformation we get coordinates in the inertial system expressed in coordinates of the interim local system,
x  =  M . z_            and vice versa              z_  =  MT . x

step 3  The final step is effected by translating the local system to the surface of the earth through the vector R , which translates the origin  O  to  O' . The inertial coordinates are then expressed by the final local coordinates as :

   x = (Mz)+R

The inverse transformation is obtained by multiplying this vector-equation by MT :

MT.x = (MT.M).z + MT.R  



Matrix(3, 3, {(1, 1) = 1, (1, 2) = 0, (1, 3) = 0, (2, 1) = 0, (2, 2) = 1, (2, 3) = 0, (3, 1) = 0, (3, 2) = 0, (3, 3) = 1})


being, as expected the identity transformation, that means finally

    Formula (1)                                   z = MT.(x - R)

So the local coordinates are  --  or in other words : what the observer, resting in  O'  will see, is  --  expressed by inertial coordinates.

Hence, the coordinates (%? )  of the moon in the local system can be found by subtracting the vector R  from the coordinates of the vector  ( %?)  which determine the point of the moon in the inertial system , and transforming the difference by means of  MT . This is indicated in Figure 2 .


Warning, the name changecoords has been redefined

Warning, the name arrow has been redefined


  RA :=arrow([0,0],[cos(Pi/4),sin(Pi/4)],.02,.08,.1, color=green):
  X:=arrow([0,0],vector([1/2*2^(1/2)+6, 1/2*2^(1/2)+2]), .02, .08, .05, color=red):
  Z :=arrow([cos(Pi/4),sin(Pi/4)], vector([6, 2]), .02, .08, .05, color=red):
  ORI := circle([0,0],0.04,color=blue):
  O_RI := circle([cos(Pi/4), sin(Pi/4)],0.04,color=red):
  Moon := circle([6.7,2.7],0.1,color=blue):
  T4:=textplot([-0.01,-0.15,`O = centre of earth`]):
  T5:=textplot([0.3,0.9,`observer = O'`]):

The Moon Around the Earth

The moon, a point (of mass 7.3510  kg = 0.0123 times the mass of Earth), circling around the earth at an average distance of approximately 60R   (see Introduction) . The plane, in which the moon moves around in our inertial system, has  its one-axis in common with the 1,2-plane of the inertial system and is inclined to it by (approximately) a := Pi/6  = 30°,  a  is the angle between the plane of our equator and the ecliptic plus the angle between the ecliptic and the plane of the moon, see Introduction and Figure 1.

The vector-coordinates   of a circle in the plane of the moon's movement, with radius  r  and angular velocity  omega[m] can be expressed as follows:



y := Vector[row](3, {(1) = 60*cos((1/14)*Pi*t), (2) = 60*sin((1/14)*Pi*t), (3) = 0})


We can take the directions of the coordinate axes of this inclined plane-of-moon-system in coordinates of our inertial system as


so that the transformation from coordinates in this moon system into coordinates of the inertial system is effected by the matrix


Therefore the path of the moon around the earth, in coordinates of the inertial system, is described by  x(t)  as follows:


Vector[row](3, {(1) = 60*cos((1/14)*Pi*t), (2) = 30*sin((1/14)*Pi*t)*sqrt(3), (3) = -30*sin((1/14)*Pi*t)})



and we can extract


This is the motion of the moon around the earth, as seen from space, i.e. in the inertial system:

  display({S,earth,moon},scaling=unconstrained,style=patchnogrid,axes=framed,title=`Figure3 :   Moon circling Earth in Inertial System`);

Down to the Local System on Earth

Final Preparation

By multiplying both vectors, x  and  R  by the matrix  M  we get via Formula (1) to the coordinates ( %? ) of the apparent movement of the moon in the local system



Subtracting R(t) from x(t) renders z(t)

zt:=xt-Rt:    #      see Figure 2

from which we extract the three coordinates  (z[1](t), z[2](t), z[3](t) )  as functions of time  t and receive the equations, which comprise our perceptions as observers in the local system


Global Views

We can now use these equations, choose our position on the globe, i.e. latitude theta  , and the time-frame within the moon's cycle, and look what is happening.

1. Example

Take theta = Pi/4  ,  i.e. 45° northern latitude and watch during the moon's cycle. Each day the moon has a more or less fixed position relative to the earth. It seems then, because of the earth's rotation, as if the moon is spinning around the earth in one circle per day. Since the moon is moving   1/28  of her cycle per day, hence changing slightly her position relative to the earth, she is "turning around" on a spiralling track. The following model can show this, the moon "hopping" each day to her next position on her travel around the earth, as shown in Figure 3 .





  display({s1,s2,Moon,Oberver,tp},scaling=unconstrained,axes=framed,labels=[`z[1]`,`z[2]`,`z[3]`],style=patchnogrid,orientation=[-40,50],title=`Moon's Apparent Movements During Her Cycle`);

2. Example

If we look from the position O' in our local system in the direction of one of its three coordinate axes (which can, of course be done by turning our model hereabove into the appopriate positions), we see, e.g. projections onto the 1'2'- and  2'3'-plane of the local coordinate system.

  display({p1,p2,observer},scaling=constrained,title=`Moon's travel, projected onto 1' 2'-coordinate plane`,labels=[`z[1]`,`z[2]`]);

  display({p3,p4,observer},scaling=constrained,title=`Moon's travel, projected onto 2' 3'-coordinate plane`);

Examples from  Around the Globe

If we plot the z[3]  -coordinate as a function of time, we can see when and how high the moon is above ( 0 < z[3] ) or below ( z[3] < 0 ) the observer's horizon, which lies in the 1'2'-plane. We can do this with our formulae at any desired latitude and for any desired time frame.

We show the graphs first for the equator, then for Amsterdam, Oslo, just above the polar circle, between the polar circle and the north-pole, at the north-pole and at the south-pole. The last two examples illustrate the fact that moving the observing position  --  i.e. our local system  --  from the northern to the southern hemisphere results in a reversal of the high's and low's of the moon's position.

z[3] is -- as above -- in units of  R = 1 , all graphs for a complete moon cycle of 28 days.

Data 1

theta:=0:plot([t,z[3](t),t=0..28],color=blue,labels=[`time in days`,`z[3]`],numpoints=1000,title=`At the equator`):
theta:=Pi/180*51:plot([t,z[3](t),t=0..28],color=green,labels=[`time in days`,`z[3]`],numpoints=1000,title=`In Amsterdam`):
theta:=Pi/3:plot([t,z[3](t),t=0..28],color=magenta,labels=[`time in days`,`z[3]`],numpoints=1000,title=`In Oslo`):
theta:=Pi/2.5:plot([t,z[3](t),t=0..28],color=blue,labels=[`time in days`,`z[3]`],numpoints=1000,title=`Just above the Northern Polar Circle`): theta:=Pi/2.05:plot([t,z[3](t),t=0..28],color=black,labels=[`time in days`,`z[3]`],numpoints=1000,title=`Between Northern Polar Circle and North-Pole`):theta:=Pi/2:plot([t,z[3](t),t=0..28],color=blue,labels=[`time in days`,`z[3]`],numpoints=1000,title=`At the North-Pole`):
theta:=-Pi/2:plot([t,z[3](t),t=0..28],color=red,labels=[`time in days`,`z[3]`],numpoints=1000,title=`At the South Pole`):

Especially the last two graphs illustrate the fact that high positions on the northern hemisphere mean low positions below the equator and vice versa.

As another example we can take, e.g. Amsterdam and show some intervals of the 28-day cycle in more detail ( just for its location ).

Data 2

theta:=Pi/180*51:plot([t,z[3](t),t=1..7],color=green,labels=[`time in days`,`z[3]`],numpoints=1000,title=`Amsterdam`):
theta:=Pi/180*51:plot([t,z[3](t),t=7..14],color=green,labels=[`time in days`,`z[3]`],numpoints=1000):
theta:=Pi/180*51:plot([t,z[3](t),t=14..21],color=green,labels=[`time in days`,`z[3]`],numpoints=1000):
theta:=Pi/180*51:plot([t,z[3](t),t=21..28],color=green,labels=[`time in days`,`z[3]`],numpoints=1000):

The Phases of the Moon

We take again the vector , which shows the moon's path around the earth in the inertial system. One cycle of the moon's travel shows four distint phases, known as new moon, waxing moon, full moon and waning moon. We can visualize the four periods by placing the moon at four equidistant positions referred to the direction of the rays of the sun.

The ecliptic is only 5.15° inclined against the moon's plane of travel,  i.e. the sun's rays (see red arrows), for all practical purposes come almost parallel to it.

Since we can only see that part of the moon which reflects sunlight towards the earth, it will be clear that at position new the moon is not, and at position full she is completely visible from earth. At position waxing one half and at position waning  the other half of her is visible.

restart:  with(plots):  with(plottools):

Warning, the name changecoords has been redefined

Warning, the name arrow has been redefined

Fetch the vector  x(t)  from above and another bit of programming renders the last figure, which illustrates the phases of the moon:

x1 := t-> 60*cos(1/14*Pi*t):
  x2 := t-> 30*sin(1/14*Pi*t)*3^(1/2):
  x3 := t-> -30*sin(1/14*Pi*t):


  display({S,earth,moon,Tp,AR1,AR2,AR3},scaling=constrained,axes=framed,style=patchnogrid,title=`Phases of the Moon`);





All humans are familiar with the apparent movements of the earth's faithful companion during their continuous travel around the sun: The moon. We know her phases, her face --  practically always the same, if visible --, and many of us wonder. At varying times of the day she appears over the horizon in the east, travels across the sky, sometimes lower, sometimes high, to disappear after several hours in the west. And there are periods when she is not visible during all the 24 hours of the day. How come?

Apart from Newtonian forces of attraction between masses and Einstein's theory of gravitation, we have gotten an insight into these apparent movements by using MAPLE's Linear Algebra Package and some key data about our only natural satellite.