Deriving 4D relativistic Lorentz transformations
Freddy Baudine(1), Edgardo S. Cheb-Terrab(2)
(1) Retired, passionate about Mathematics and Physics
(2) Physics, Differential Equations and Mathematical Functions, Maplesoft
Lorentz transformations are a six-parameter family of linear transformations that relate the values of the coordinates of an event in one inertial reference system to the coordinates of the same event in another inertial system that moves at a constant velocity relative to the former. An explicit form of can be derived from physics principles, or in a purely algebraic mathematical manner. A derivation from physics principles is done in an upcoming post about relativistic dynamics, while in this post we derive the form of mathematically, as rotations in a (pseudo) Euclidean 4 dimensional space. Most of the presentation below follows the one found in Jackson's book on Classical Electrodynamics [1].
The computations below in Maple 2022 make use of the Maplesoft Physics Updates v.1283 or newer.
|
Formulation of the problem and ansatz
|
|
The problem is to find a group of linear transformations,
that represent rotations in a 4D (pseudo) Euclidean spacetime, and so they leave invariant the norm of the 4D position vector ; that is,
For the purpose of deriving the form of , a relevant property for it can be inferred by rewriting the invariance of the norm in terms of . In steps, from the above,
!["g[alpha,beta] x^(' alpha) (x^(' beta))[]=g[mu,nu] x^( mu) (x^( nu))[]"](/view.aspx?sf=218129_post/1cd31150ffe1bc163133d851adb498cd.gif)
![g[alpha, beta]*`#msubsup(mi("Λ",fontstyle = "normal"),mi("μ",fontstyle = "normal"),mrow(mo("⁢"),mi("α",fontstyle = "normal")))`*x^mu*`#msubsup(mi("Λ",fontstyle = "normal"),mi("ν",fontstyle = "normal"),mrow(mo("⁢"),mi("β",fontstyle = "normal")))`*x^nu = g[mu, nu]*x^mu*`#msup(mi("x"),mrow(mo("⁢"),mi("ν",fontstyle = "normal")))`](/view.aspx?sf=218129_post/0f9bb49ac58642dffbadc3772805a34a.gif)
from where,
![g[alpha, beta]*`#msubsup(mi("Λ",fontstyle = "normal"),mi("μ",fontstyle = "normal"),mrow(mo("⁢"),mi("α",fontstyle = "normal")))`*`#msubsup(mi("Λ",fontstyle = "normal"),mi("ν",fontstyle = "normal"),mrow(mo("⁢"),mi("β",fontstyle = "normal")))` = g[mu, nu]](/view.aspx?sf=218129_post/2c0b521574871c7768f4cf8ee3ce67f4.gif)
or in matrix (4 x 4) form, , ![`≡`(g[alpha, beta], g)](/view.aspx?sf=218129_post/d8347e9a5fd46f59469e3e1ce68f004e.gif)
where is the transpose of . Taking the determinant of both sides of this equation, and recalling that , we get
The determination of is analogous to the determination of the matrix (3D tensor ) representing rotations in the 3D space, where the same line of reasoning leads to . To exclude reflection transformations, that have and cannot be obtained through any sequence of rotations, because they do not preserve the relative orientation of the axes, the sign that represents our problem is +. To explicitly construct the transformation matrix , Jackson proposes the ansatz
Summarizing: the determination of consists of determining entering such that followed by computing the exponential of the matrix .
|
|
Determination of
|
|
In order to compare results with Jackson's book, we use the same signature he uses, , and lowercase Latin letters to represent space tensor indices, while spacetime indices are represented using Greek letters, which is already Physics' default.

|
(1) |
Start by defining the tensor whose components are to be determined. For practical purposes, define a macro to represent the tensor and use to represent its components
|
(2) |
|
(3) |
Next, from (see above in Formulation of the problem) one can derive the form of . To work algebraically with representing matrices, set these symbols as noncommutative
|
(4) |
From
|
(5) |
it follows that
|
(6) |
|
(7) |
Expanding the exponential using , and taking into account that the matrix product can be rewritten as , the left-hand side of (7) can be written as
|
(8) |
Multiplying by
|
(9) |
Recalling that , and that for any matrix , ,
|
(10) |
|
(11) |
To allow for the combination of the exponentials, now that everything is in tensor notation, remove the noncommutative character of 
|
(12) |
|
(13) |
Since every tensor component of this expression is real, taking the logarithm at both sides and simplifying tensor indices
|
(14) |
|
(15) |
So the components of
|
(16) |
satisfy (15). Using TensorArray the components of that tensorial equation are
![{2*L[1, 1] = 0, 2*L[2, 2] = 0, 2*L[3, 3] = 0, 2*L[4, 4] = 0, -L[1, 2]+L[2, 1] = 0, L[1, 2]-L[2, 1] = 0, -L[1, 3]+L[3, 1] = 0, L[1, 3]-L[3, 1] = 0, -L[1, 4]+L[4, 1] = 0, L[1, 4]-L[4, 1] = 0, L[3, 2]+L[2, 3] = 0, L[4, 2]+L[2, 4] = 0, L[4, 3]+L[3, 4] = 0}](/view.aspx?sf=218129_post/4e5036e16ba7229e14f1c84e6c12153c.gif)
|
(17) |
Simplifying taking these equations into account results in the form of we were looking for
|
(18) |
This is equation (11.90) in Jackson's book [1]. By eye we see there are only six independent parameters in , or via
|
(19) |
|
(20) |
This number is expected: a rotation in 3D space can always be represented as the composition of three rotations, and so, characterized by 3 parameters: the rotation angles measured on each of the space planes . Likewise, a rotation in 4D space is characterized by 6 parameters: rotations on each of the three space planes, parameters and , and rotations on the spacetime planes , parameters . Define now using (18) for further computing with it in the next section
|
(21) |
|
|
Determination of
|
|
From the components of in (18), the components of can be computed directly using the command. Then, following Jackson's book, in what follows we also derive a general formula for in terms of and shown in [1] as equation (11.98), finally showing the form of as a function of the relative velocity of the two inertial systems of references.
An explicit form of in the case of a rotation on the plane can be computed by taking equal to zero all the parameters in (19) but for and substituting in
|
(22) |
|
(23) |
Computing the matrix exponential,
|
(24) |
|
(25) |
This is formula (4.2) in Landau & Lifshitz book [2]. An explicit form of in the case of a rotation on the plane can be computed by taking equal to zero all the parameters in (19) but for
|
(26) |
|
(27) |
|
(28) |
|
Rewriting
|
|
Following Jackson's notation, for readability, redefine the 6 parameters entering as
|
(29) |
(Note in the above the surrounding backquotes '...' to prevent a premature evaluation of the left-hand sides; that is necessary when using the command.) With this redefinition, becomes
|
(30) |
where each parameter is related to a rotation angle on one plane. Any Lorentz transformation (rotation in 4D pseudo-Euclidean space) can be represented as the composition of these six rotations, and to each rotation, corresponds the matrix that results from taking equal to zero all of the six parameters but one.
The set of six parameters can be split into two sets of three parameters each, one representing rotations on the planes, parameters , and the other representing rotations on the planes, parameters . With that, following [1], (30) can be rewritten in terms of four 3D tensors, two of them with the parameters as components, the other two with matrix as components, as follows:
|
(31) |
|
(32) |
The 3D tensors and satisfy the commutation relations
|
(33) |
|
(34) |
|
(35) |
|
(36) |
The matrix components of the 3D tensor , related to rotations on the planes, are
|
(37) |
|
(38) |
|
(39) |
The matrix components of the 3D tensor , related to rotations on the 3D space planes, are
|
(40) |
|
(41) |
|
(42) |
The tensor is now expressed in terms of these objects as
|
(50) |
where the right-hand side, without free indices, represents the matrix form of . This notation makes explicit the fact that any Lorentz transformation can always be written as the composition of six rotations
|
(51) |
![`%𝕃`[`~μ`, nu] = (array( 1 .. 4, 1 .. 4, [( 3, 1 ) = (0), ( 4, 2 ) = (0), ( 1, 2 ) = (zeta__1), ( 3, 2 ) = (0), ( 1, 3 ) = (0), ( 4, 3 ) = (0), ( 4, 4 ) = (0), ( 1, 1 ) = (0), ( 2, 1 ) = (zeta__1), ( 3, 3 ) = (0), ( 2, 4 ) = (0), ( 1, 4 ) = (0), ( 2, 2 ) = (0), ( 2, 3 ) = (0), ( 4, 1 ) = (0), ( 3, 4 ) = (0) ] ))+(array( 1 .. 4, 1 .. 4, [( 3, 1 ) = (zeta__2), ( 4, 2 ) = (0), ( 1, 2 ) = (0), ( 3, 2 ) = (0), ( 1, 3 ) = (zeta__2), ( 4, 3 ) = (0), ( 4, 4 ) = (0), ( 1, 1 ) = (0), ( 2, 1 ) = (0), ( 3, 3 ) = (0), ( 2, 4 ) = (0), ( 1, 4 ) = (0), ( 2, 2 ) = (0), ( 2, 3 ) = (0), ( 4, 1 ) = (0), ( 3, 4 ) = (0) ] ))+(array( 1 .. 4, 1 .. 4, [( 3, 1 ) = (0), ( 4, 2 ) = (0), ( 1, 2 ) = (0), ( 3, 2 ) = (0), ( 1, 3 ) = (0), ( 4, 3 ) = (0), ( 4, 4 ) = (0), ( 1, 1 ) = (0), ( 2, 1 ) = (0), ( 3, 3 ) = (0), ( 2, 4 ) = (0), ( 1, 4 ) = (zeta__3), ( 2, 2 ) = (0), ( 2, 3 ) = (0), ( 4, 1 ) = (zeta__3), ( 3, 4 ) = (0) ] ))+(array( 1 .. 4, 1 .. 4, [( 3, 1 ) = (0), ( 4, 2 ) = (0), ( 1, 2 ) = (0), ( 3, 2 ) = (0), ( 1, 3 ) = (0), ( 4, 3 ) = (omega__1), ( 4, 4 ) = (0), ( 1, 1 ) = (0), ( 2, 1 ) = (0), ( 3, 3 ) = (0), ( 2, 4 ) = (0), ( 1, 4 ) = (0), ( 2, 2 ) = (0), ( 2, 3 ) = (0), ( 4, 1 ) = (0), ( 3, 4 ) = (-omega__1) ] ))+(array( 1 .. 4, 1 .. 4, [( 3, 1 ) = (0), ( 4, 2 ) = (-omega__2), ( 1, 2 ) = (0), ( 3, 2 ) = (0), ( 1, 3 ) = (0), ( 4, 3 ) = (0), ( 4, 4 ) = (0), ( 1, 1 ) = (0), ( 2, 1 ) = (0), ( 3, 3 ) = (0), ( 2, 4 ) = (omega__2), ( 1, 4 ) = (0), ( 2, 2 ) = (0), ( 2, 3 ) = (0), ( 4, 1 ) = (0), ( 3, 4 ) = (0) ] ))+(array( 1 .. 4, 1 .. 4, [( 3, 1 ) = (0), ( 4, 2 ) = (0), ( 1, 2 ) = (0), ( 3, 2 ) = (omega__3), ( 1, 3 ) = (0), ( 4, 3 ) = (0), ( 4, 4 ) = (0), ( 1, 1 ) = (0), ( 2, 1 ) = (0), ( 3, 3 ) = (0), ( 2, 4 ) = (0), ( 1, 4 ) = (0), ( 2, 2 ) = (0), ( 2, 3 ) = (-omega__3), ( 4, 1 ) = (0), ( 3, 4 ) = (0) ] ))](/view.aspx?sf=218129_post/be4873e9db02a4ec57e5d13575bf1331.gif)
|
(52) |
|
(53) |
which is the same as the starting point (30)
|
|
The transformation , where , as a function of the relative velocity of two inertial systems
|
|
As seen in the previous subsection, in , the second term, , corresponds to 3D rotations embedded in the general form of 4D Lorentz transformations, and is the term that relates the coordinates of two inertial systems of reference that move with respect to each other at constant velocity . In this section, is rewritten in terms of that velocity, arriving at equation (11.98) of Jackson's book [1]. The key observation is that the 3D vector , can be rewritten in terms of , where and c is the velocity of light (for the rationale of that relation, see [2], sec 4, discussion before formula (4.3)).
Use a macro - say ub - to represent the atomic variable (this variable can be entered as `#mover(mi("β"),mo("ˆ")`. In general, to create atomic variables, see the section on Atomic Variables of the page 2DMathDetails ).
|
(54) |
|
(55) |
With these two definitions, and excluding the rotation term we have
|
(56) |
|
(57) |
|
(58) |
From this expression, the form of can be obtained as in (24) using and simplifying the result taking into account that is a unit vector
|
(59) |
![exp(`%𝕃`[`~μ`, nu]) = Matrix(%id = 36893488153234621252)](/view.aspx?sf=218129_post/46b6e293ffbd828e4b590c3f7a8df976.gif)
|
(60) |
It is useful at this point to analyze the dependency on the components of of this matrix
|
(61) |
We see that the diagonal element depends on two instead of only one component of . That is due to the simplification with respect to side relations , performed in (60), that constructs an elimination Groebner Basis that cannot reduce at once, using the single equation (59), the dependency of all of the elements and to a single component of . So, to reduce further the dependency of the element, this component of (60) requires one more simplification step, using a different elimination strategy, explicitly requesting the elimination of
|
(62) |
|
(63) |
This result involves only , and with it the form of becomes
![exp(`%𝕃`[`~μ`, nu]) = Matrix(%id = 36893488151918876660)](/view.aspx?sf=218129_post/838b61e4084e21a1d4ceb9dcf0b5914b.gif)
|
(64) |
Replacing now the components of the unit vector by the components of the vector divided by its modulus
|
(65) |
and recalling that
|
(66) |
to get equation (11.98) in Jackson's book it suffices to introduce (the customary notation)
|
(67) |
|
(68) |
This is equation (11.98) in Jackson's book.
Finally, to get the form of this general Lorentz transformation excluding 3D rotations, directly expressed in terms of the relative velocity of the two inertial systems of references, introduce
|
(69) |
At this point it suffices to Define (69) as tensors
|
(70) |
and remove and from the formulation using
|
(71) |
![Lambda[`~μ`, nu] = Matrix(%id = 36893488153289646316)](/view.aspx?sf=218129_post/8a9ecc2e51419e76d9294e8a51550c6f.gif)
|
(72) |
|
|
|
References
|
|
[1] J.D. Jackson, "Classical Electrodynamics", third edition, 1999.
[2] L.D. Landau, E.M. Lifshitz, "The Classical Theory of Fields", Course of Theoretical Physics V.2, 4th revised English edition, 1975.
|

|