Kinematics of Our EarthMoon System
By: Ali Mohamed Abu oam asam295@hotmail.com
International University of Africa ( Sudan ) aaalll20002000@yahoo.com 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 EarthMoon System ". Of course mathematics is the base of all sciences and mathsoftware is of great role nowadays.
Introduction
If we want a global understanding of the earthmoon 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 earthmoon 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 = 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 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 1axis perpendicular to the drawing plane, its positive direction towards the onlooker of this worksheet;
the 2axis in the drawing plane, from left to right;
the 3axis from south to northpole.
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".
>

restart:with(plottools):

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 2axis
l3:= arrow([0, 0],vector([0, .5]), .005, .02, .1, color=black):# the 3axis
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
 
>

t0:=textplot([1,1.2,`Figure1`],font=[COURIER,BOLD,10]):
t1:=textplot([.3,.3,`R=1`]):
t2:=textplot([.28,.07,`theta`]):
t3:=textplot([1.3,0.75,`3'axis`]):
t4:=textplot([1.2,.3,`2'axis`]):
t5:=textplot([0.1,0.6,`3axis`]):
t6:=textplot([0.2,1.3,`Omega`]):
t8:=textplot([1.3,.1,`2axis`]):
t11:=textplot([0.01,.08,`O`],color=blue):
t12:=textplot([0.98,0.47,`O'`],color=red):
t9:=textplot([1.1,.37,`ecliptic`],color=red):
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
display({EQ,OR,O_R,c,lR,l[Omega],l[moon],l[ecliptic],l2,l3,l_2,l_3,p,t0,t1,t2,t3,t4,t5,t6,t8,t7,t9,t10,t11,t12},scaling=constrained,axes=none);

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
>

e10:=Vector[row]([1,0,0]):e20:=Vector[row]([0,1,0]):e30:=Vector[row]([0,0,1]):

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 around the inert 3axis, with   = rad/day . After this rotation, the directions of the new axes in the inertial system are given by the following onevectors (i.e. vectors with lentgh = 1) :
>

e11:=Vector([cos(phi),cos(Pi/2+phi),cos(Pi/2)]):e21:=Vector([cos(Pi/2phi),cos(phi),cos(Pi/2)]):e31:=Vector([0,0,1]):

In order to transform the coordinates we need the matrix
>

M1:=Matrix([e11,e21,e31]):

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

e12:=Vector([1,0,0]):e22:=Vector([0,cos(Pi/2theta),cos(theta)]):e32:=Vector([0,cos(Pitheta),cos(Pi/2theta)]):

with its matrix
>

M2:=Matrix([e12,e22,e32]):

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 vectorequation by MT :
MT.x = (MT.M).z + MT.R
because
 (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 .
>

with(plots):with(plottools):

Warning, the name changecoords has been redefined
Warning, the name arrow has been redefined
 
Data
>

Earth:=circle([0,0],1):
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):
T0:=textplot([1.6,2.6,`Figure2`],font=[COURIER,BOLD,10]):
T1:=textplot([3.26,1.8,`z(t)`]):
T2:=textplot([0.23,0.5,`R(t)`]):
T3:=textplot([3.9,1.2,`x(t)`]):
T4:=textplot([0.01,0.15,`O = centre of earth`]):
T5:=textplot([0.3,0.9,`observer = O'`]):
T6:=textplot([6.7,3.0,`moon`]):
display({Earth,X,RA,Z,T0,T1,T2,T3,T4,T5,T6,ORI,O_RI,Moon});

 
The Moon Around the Earth
22
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 oneaxis in common with the 1,2plane of the inertial system and is inclined to it by (approximately) = 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 vectorcoordinates of a circle in the plane of the moon's movement, with radius r and angular velocity can be expressed as follows:
>

r:=60:omega[m]:=Pi/14:alpha:=Pi/6:
y:=Vector[row]([r*cos(omega[m]*t),r*sin(omega[m]*t),0]);

 (2) 
We can take the directions of the coordinate axes of this inclined planeofmoonsystem in coordinates of our inertial system as
>

e1:=Vector([1,0,0]):e2:=Vector([0,cos(alpha),cos(Pi/2alpha)]):e3:=Vector([0,cos(Pi/2+alpha),cos(alpha)]):

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

Mt:=Matrix([e1,e2,e3]):

Therefore the path of the moon around the earth, in coordinates of the inertial system, is described by x(t) as follows:
 (3) 
and we can extract
>

x1:=unapply(x[1],t):x2:=unapply(x[2],t):x3:=unapply(x[3],t):

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

S:=spacecurve([x1(t),x2(t),x3(t)],t=0..28,color=blue,labels=[`1axis`,`2axis`,`3axis`]):
earth:=sphere([0,0,0],6):
K2:=seq(sphere([x1(i),x2(i),x3(i)],4),i=1..28):
moon:=display(K2,insequence=true):
tp:=textplot([1.6,2.6,`Figure3`],font=[COURIER,BOLD,10]):
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
>

phi:=2*Pi*t:R:=Vector([0,cos(theta),sin(theta)]):

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

zt:=xtRt: # see Figure 2

from which we extract the three coordinates ( ) as functions of time t and receive the equations, which comprise our perceptions as observers in the local system
>

z[1]:=simplify(unapply(zt[1],t)):z[2]:=simplify(unapply(zt[2],t)):z[3]:=simplify(unapply(zt[3],t)):

Global Views
We can now use these equations, choose our position on the globe, i.e. latitude , and the timeframe within the moon's cycle, and look what is happening.
1. Example
Take , 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 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 .
>

theta:=Pi/4:
s1:=spacecurve([z[1](t),z[2](t),z[3](t)],t=0..7,numpoints=300,color=black,labels=[`z[1]`,`z[2]`,`z[3]`]):
s2:=spacecurve([z[1](t),z[2](t),z[3](t)],t=21..28,linestyle=3,numpoints=300,color=red):
Oberver:=sphere([0,0,0],2,color=blue):
tp:=textplot3d([0,0,6,`observer`],color=black):
K3:=seq(sphere([z[1](i),z[2](i),z[3](i)],4),i=1..28):
Moon:=display(K3,insequence=true):
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.
>

observer:=circle([0,0],1):
p1:=plot([z[1](t),z[2](t),t=0..7],color=black):
p2:=plot([z[1](t),z[2](t),t=21..28],color=red):
display({p1,p2,observer},scaling=constrained,title=`Moon's travel, projected onto 1' 2'coordinate plane`,labels=[`z[1]`,`z[2]`]);

>

p3:=plot([z[2](t),z[3](t),t=0..7],color=black,labels=[`z[2]`,`z[3]`],numpoints=1500):
p4:=plot([z[2](t),z[3](t),t=21..28],color=red,labels=[`z[2]`,`z[3]`],numpoints=1500):
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 coordinate as a function of time, we can see when and how high the moon is above ( ) or below ( ) 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 northpole, at the northpole and at the southpole. 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.
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 NorthPole`):theta:=Pi/2:plot([t,z[3](t),t=0..28],color=blue,labels=[`time in days`,`z[3]`],numpoints=1000,title=`At the NorthPole`):
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 28day 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):
S:=spacecurve([x1(t),x2(t),x3(t)],t=0..28,color=blue,labels=[`1axis`,`2axis`,`3axis`]):
earth:=sphere([0,0,0],6):
K2:=seq(sphere([x1(7*i),x2(7*i),x3(7*i)],4),i=1..4):
moon:=display(K2):
Tp:=textplot3d([[0,50,20,`new`],[80,0,0,`waxing`],[0,40,34,`full`],[80,0,0,`waning`],[0,0,15,`Earth`]],color=black):
AR1:=arrow([0,100,50],vector([0,30,15]),1,4,.2,color=red):
AR2:=arrow([60,70,35],vector([0,30,15]),1,4,.2,color=red):
AR3:=arrow([60,70,35],vector([0,30,15]),1,4,.2,color=red):
display({S,earth,moon,Tp,AR1,AR2,AR3},scaling=constrained,axes=framed,style=patchnogrid,title=`Phases of the Moon`);

 
Conclusion
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.
