### Solving Euler’s equations

We are going to solve now Euler’s equations. In order to solve them in an intelligent way we need some preparation.

In “Angular momentum” we have derived Euler’s equations that govern rotations of a free rigid body about its center of mass:

(Euler) Here are the components of the angular velocity vector in the body frame, while are the three principal moments of inertia.

Euler’s equations follow from conservation of the angular momentum vector with respect to space, as seen from the inertial laboratory frame. This is how we derived them in the previous post. The angular momentum vector in the laboratory frame is where has components Although we do not know (it needs to be found through solving differential equations), we know that it is an orthogonal matrix. And orthogonal matrix preserves the length of the vector. Since the components of the vector are constants, also its length is a constant. But the length of is the same as the length of and the length squared of is

(1) There is also another important constant of motion – kinetic energy. We denote by the doubled kinetic energy:

(2) To see that indeed is a constant of motion, we differentiate with respect to : Now, we use the Euler’s equations and, surprise-surprise, everything on the right hand side cancels out:

(3) Thus we get So, we have identified two important constants of motion. Whenever a rigid body rotates, it will change its orientation in space, its rotation axis may change its direction, but the absolute value of the angular momentum given by Eq. (1) is constant in time. Kinetic energy is also constant in time. Yet these two constants are not completely independent. There are restrictions on the possible values of if is given. To see this let us order so that

(4) We then have: For the same reason we have Let us introduce the constant defined by

(5) Then we have

(6) We can now move to solving the Euler’s equations (Euler) – at the top. To this end we compare them with the properties of the derivatives of Jacobi elliptic functions that we have derived in “Derivatives of Jacobi elliptic am, sn, cn, dn“:

(7) According to our convention (4) on the right hand side of Euler’s equation we have signs . Our guess is that is proportional to We do not know whether to assume proportional to or to ? Let us try proportional and proportional to . So, here is our “Ansatz”:

(8) Question is: can we find such that the Euler’s equation are satisfied automatically, given and ?

The answer has been found long ago. We can see a solution in the 1894 book by Alfred Cardew Dixon, “The elementary properties of the elliptic functions” . But we want to do it in a modern way. Here, for instance, is REDUCE code that provides us with a solution:

%We derive a solution of Euler’s equations
o1(t):=A1*cn(B*t);
o2(t):=A2*sn(B*t);
o3(t):=A3*dn(B*t);
%To solve Euler’s equation we must have e1=e2=e3=0 where
e1:=(I1*DF(o1(t),t)-(I2-I3)*o2(t)*o3(t))/(dn(b*t)*sn(b*t));
e2:=(I2*DF(o2(t),t)-(I3-I1)*o3(t)*o1(t))/(cn(b*t)*dn(b*t));
e3:=(I3*DF(o3(t),t)-(I1-I2)*o1(t)*o2(t))/(sn(b*t)*cn(b*t));
% Here are properties of sn, cn, dn
For all v let DF(sn(v),v)=cn(v)*dn(v);
For all v let DF(cn(v),v)=-sn(v)*dn(v);
For all v let DF(dn(v),v)=-m*sn(v)*cn(v);
For all v let cn(v)**2=1-sn(v)**2;
For all v let dn(v)**2=1-m*sn(v)**2;
% en2 is twice kinetic energy:
en2:=I1*o1(t)^2+I2*o2(t)^2+I3*o3(t)^2;
% ll2 is square of angular momentum:
ll2:=I1^2*o1(t)^2+I2^2*o2(t)^2+I3^2*o3(t)^2;
OFF NAT;
OUT “H:\Reduce MyFiles\eu1.txt”;
e1;
e2;
e3;
% we use the three Euler’s equations in order to express A1,A2,A3 in terms of i1,i2,i3,b,m
xx:=solve({e1=0,e2=0,e3=0},{A1,A2,A3});
% We get four solutions, with different signs, we choose one with all signs plus:
PART(xx,3);
a1:= part(part(part(xx,3),1),2);
a2:= part(part(part(xx,3),2),2);
a3:= part(part(part(xx,3),3),2);
en2;
ll2;
% now we call angular momentum squared l^2 and we introduce d=en2/ll2.
% we then find m,b expressed through l and d
% again there are two solutions, with different signs. We choose both plus signs:
xxx:=solve({ll2=l^2,en2=l^2*d},{b,m});
b:=part(part(part(xxx,1),1),2);
m:=part(part(part(xxx,1),2),2);
% now we find final expressions for a1,a2,a3
a1:=a1;
a2:=a2;
a3:=a3;
SHUT “H:\Reduce MyFiles\eu1.txt”;
END;

The results spilled out by REDUCE are not yet nicely arranged. After the arrangement, taking into account our conventions, the answer takes the following form:

(9) Now I should verify that it is indeed a solution. I was trying to do it using REDUCE, but I did not succeed. So, I will return to this problem in my next post (and I will also try to fix typos in this post). Hopefully I will be able to find a way of verifying for sure the above statements.

##### Update: The following REDUCE code verifies the solution on random data. On output it spits out three zeros.:
a1:=l*sqrt((d*i3-1)/(i1*(i3-i1)));
a2:=l*sqrt((d*i3-1)/(I2*(i3-i2)));
a3:=l*sqrt((1-d*i1)/(i3*(i3-i1)));
b:=l*sqrt((1-d*i1)*(I3-i2)/(i1*i2*i3));
m:=(d*i3-1)*(i2-i1)/((1-d*i1)*(i3-i2));
o1(t):=A1*cn(B*t);
o2(t):=A2*sn(B*t);
o3(t):=A3*dn(B*t);
For all v let DF(sn(v),v)=cn(v)*dn(v);
For all v let DF(cn(v),v)=-sn(v)*dn(v);
For all v let DF(dn(v),v)=-m*sn(v)*cn(v);
For all v let cn(v)**2=1-sn(v)**2;
For all v let dn(v)**2=1-m*sn(v)**2;
e1:=(I1*DF(o1(t),t)-(I2-I3)*o2(t)*o3(t))/(dn(b*t)*sn(b*t));
e2:=(I2*DF(o2(t),t)-(I3-I1)*o3(t)*o1(t))/(cn(b*t)*dn(b*t));
e3:=(I3*DF(o3(t),t)-(I1-I2)*o1(t)*o2(t))/(sn(b*t)*cn(b*t));
for all a,b let sqrt(a)*sqrt(b)=sqrt(a*b);
off rounded;
i1:=random(1000)/1000;
i2:=1.0+random(1000)/1000;
i3:=2.0+random(1000)/1000;
l:=random(10)/2;
d:=1/i3+(1/i1-1/i3)/2;

OFF NAT;
OUT “H:\Reduce MyFiles\eu3.txt”;
e1:=e1;
e2:=e2;
e3:=e3;
SHUT “H:\Reduce MyFiles\eu3.txt”;
END;

##### Update 2:

Both REDUCE and Mathematica are able to do the task in a symbolic mode, but not without human help. These programs have very smart simplification algorithms, but sometimes our eye see that two expressions are the same, though they have different forms, while the programs do not want to see it. Then we need to help the program. For instance with Mathematica, it did not want to see that a particular expression is zero, but it recognized that its square is zero! Like here: Here is the Mathematica notebook verifying Euler’s equations.
So, I consider that the job is done, and that we do have a solution of Euler’s equations.