Suppose we find a set of basis that constitues the principial axis of some three dimensional body with mass. In this set of basis, our inertia tensor becomes a diagonal matrix, let $I' = diag(I_{x'x'},I_{y'y'}, I_{z'z'})$.

enter image description here

From what we know, principial axis are always perpendicular to each other, meaning that we can find this basis through some rotation transformation of our originally used basis $x,y,z$. For simplicity, we let the basis in which the inertia tensor is diagonal, be such that it's rotated $\theta$ degrees with respect to the $z$-axis.

I'm not exactly sure, but what I remember from linear algebra, we have that the new matrix $I = RI'R^T$ where $R$ is our rotation matrix. Suppose $\theta$ is measured counterclockwise seen from above, since we want to rotate "backwards" in some sense, we have that:

$$ R = \begin{pmatrix} \cos(\theta) & \sin(\theta)& 0\\ -\sin(\theta)& \cos(\theta)& 0\\ 0 & 0& 1\\ \end{pmatrix}$$

$R$'s transpose is easy to calculate. We get:

$$ R^T = \begin{pmatrix} \cos(\theta) & -\sin(\theta)& 0\\ \sin(\theta)& \cos(\theta)& 0\\ 0 & 0& 1\\ \end{pmatrix}$$

Therefore $$I = R = \begin{pmatrix} \cos(\theta) & \sin(\theta)& 0\\ -\sin(\theta)& \cos(\theta)& 0\\ 0 & 0& 1\\ \end{pmatrix} diag(I_{x'x'},I_{y'y'}, I_{z'z'}) \begin{pmatrix} \cos(\theta) & -\sin(\theta)& 0\\ \sin(\theta)& \cos(\theta)& 0\\ 0 & 0& 1\\ \end{pmatrix} = \begin{pmatrix} I_{x'x'} \cos^2(\theta) + I_{y'y'} \sin^2(\theta) & (I_{y'y'}-I_{x'x'}) \cos(\theta) \sin(\theta) & 0\\ (I_{y'y'}-I_{x'x'}) \cos(\theta) \sin(\theta) & I_{x'x'} \sin^2(\theta) + I_{y'y'} \cos^2(\theta) & 0\\ 0 & 0& I_{z'z'} \\ \end{pmatrix}$$

I see that in alot of problems, the axis are just rotated with some angle, and I'd like to express the matrix in my original set of basis $xyz$ in the fashion above. So I now wonder, is my idea right, and is there an even more generalized way of doing this?


  • $\begingroup$ Please refer to 3D Rigid Body Dynamics: The Inertia Tensor by MIT OCW (link) $\endgroup$ May 16, 2023 at 12:29

2 Answers 2


You are on the right path. You use the principal axes in the rotating (non-inertial) body system.

Intermediate/advanced physics mechanics texts develop the general details you are looking for. The rotation matrix depends on the order of the rotations and different developments use different orders of rotation.

The text Classical Mechanics by Goldstein has a detailed development using one specific order of rotations and an appendix summarizing different orders of rotation. Also, Goldstein develops the Eulerian angles to evaluate the space (inertial) orientation of the body from the rotating (non-inertial) system.

The text Mechanics by Symon also provides a detailed development.

There are numerous on-line discussions of all this, too.


Yes, the interpretation behind

$$ {\rm I}_{\rm world} = R \, {\rm I}_{\rm local} R^\intercal \tag{1}$$

where ${\rm I}_{\rm local}$ is the diagonal matrix representing the MMOI tensor on the body frame, and $R$ is the changes the basis-vectors from body frame to inertial frame.

When the above is used to calculate angular momentum, for example, the reasoning behind the dance of transformations becomes more obvious.

$$ L_{\rm world} = {\rm I}_{\rm world} \omega_{\rm world} = R \left( \; {\rm I}_{\rm local} \left( R^\intercal \omega_{\rm world}\right)\, \right) $$

where $\omega_{\rm local} = (R^\intercal\, \omega_{\rm world})$ is the rotational velocity in the body frame, $L_{\rm local} = I_{\rm local} \omega_{\rm local}$ is angular momentum in the body frame, and $L_{\rm world} = R\,L_{\rm local}$ is angular momentum in the inertial frame.

Thus the interpretation of (1) is that the ${\rm R}^\intercal$ on the right transforms to the local directions, and the ${\rm R}$ on the left back to the inertial directions.

The same transformation applies for inverse inertia,

$$ {\rm I}_{\rm world}^{-1} = R \, {\rm I}_{\rm local}^{-1} R^\intercal \tag{2}$$

where ${\rm I}_{\rm locall}^{-1}$ is the inverse inertia matrix and it is trivial to calculate when ${\rm I}_{\rm locall}$ is diagonal.

To reverse the process, you reverse the transformations

$$ {\rm I}_{\rm local} = R^\intercal \, {\rm I}_{\rm world} R\tag{3}$$


$$ {\rm I}_{\rm local}^{-1} = R^\intercal \, {\rm I}_{\rm world}^{-1} R\tag{4}$$

In a simulation world, at each time step you have to first calculate the rotation matrix $R$, either from Euler angles, or better yet from a quaternion encoding the orientation. Then you evaluate the inverse MMOI tensor from the local (diagonal) principal MMOI components with (2) and use that to extract angular velocity from angular momentum with $\omega_{\rm world} = I_{\rm world}^{-1} L_{\rm world}$. The reason to keep track of angular momentum is to better take advantage of the conservation laws, and to easily integrate the equations of motion $\tau_{\rm net} = \tfrac{\rm d}{{\rm d}t} L_{\rm world}$.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.