Home

Learning to Love the Lorentz Transformation

Abstract. A rather thorough review of the effects that result in the Lorentz Transformation.

1. A Macroscopic Bohr Hydrogen Atom.

Fig. 1_1 depicts a negatively charged satellite, q, passing a resting, positively charged particle in inertial frame K’.

Figure 1_1 System at t’=0 in Frame K’

We shall assume that any radiation reaction force on the satellite is mechanically counteracted. If this is done, then the satellite’s motion is solely attributable to the Coulomb force.

The satellite will travel in a circle if q is such that . (1_1)

Viewed from frame K, which moves toward –x’ at speed v’, the satellite is momentarily at rest and the central body moves in the +x direction at speed vQ=v’. Under a Galilean transformation the satellite’s path is a cycloid. This path can also be deduced by applying Coulomb’s law and Newton’s 2nd law in its non-relativistic form: . (1_2)

Unfortunately Coulomb’s law does not produce a magnetic field in K. And of course Eq. 1_2 does not take into account the dependence of inertial mass on speed. What is required in K is a correct expression for the Lorentz force acting on the satellite, equated to the relativistically correct expression for the Newtonian force. These two requirements are addressed in the next two sections.

2. The Lorentz Force Law in K.

The electric and magnetic fields of a point charge (e.g., Q), moving with constant velocity, are well understood. In component form, , (2_1) , (2_2) . (2_3)

Figure 2_1 Point Charge Q Moving with Constant Velocity

The Lorentz force experienced by the satellite thus has components , (2_4) . (2_5)

Note here that vx and vy are the variable components of the satellite’s velocity relative to K.

3. The Relativistically Rigorous Newtonian Force.

Newton’s 2nd law states relativistically that . (3_1)

Or, since , (3_2)

Eq. 3_1 can be rewritten in component notation as , (3_3) . (3_4)

Solving Eq. 3_4 for ay and substituting into Eq. 3_3 produces , (3_5) . (3_6)

4. Computing the Motion of q Relative to K.

The satellite initial conditions in K at time t=0 are (ref. Fig. 1_1) , (4_1) , (4_2) , (4_3) , (4_4) . (4_5)

Referring to Eqs. 3_5 and 3_6, we may use these values to compute ax and ay at time t=0. Having done this, we can then compute , (4_6) , (4_7) , (4_8) , (4_9)

where dt is an adequately small increment of time, say . (4_10)

An interesting question is: What is the moving system’s shape? We can certainly place Q at the origin of K by subtracting vQt from its position at each time epoch t. Subtracting the same value from the computed satellite position then shows its location relative to Q. The Python program, that computes satellite positions relative to Q, is provided in Appendix A at this article’s end.

Fig. 4_1 shows the satellite position, relative to Q, when vQ=.001c. As might be expected, the path is practically the same circle as in K’.

Figure 4_1 q’s Path (adjusted) in K, vQ=.001c

Fig. 4_2 shows the satellite path, relative to Q, when vQ=.95c. Note the expected length contraction of the circle in Fig. 4_1 (by a factor of (1-vQ2/c2)1/2). The time for one quasi-cycloid in K is also (2pR/vQ)/(1-vQ2/c2)1/2, manifesting the expected time dilation.

Figure 4_2 q’s Path (adjusted) in K, vq=.95c

5. The Lorentz Transformation.

Fig. 4_2 and the time-dilated cycle time in K, when vQ=.95c, suggest that the Galilean transformation requires adjustment. Indeed the length-contracted "Bohr Orbit," coupled with the time-dilated cycle time in K, suggest that all moving systems might be length-contracted and time-dilated. This would presumably include the rigid grid of K’, as viewed from K, and the (moving) clocks of K’. It is a bold generalization considered by Einstein and others. And as Einstein pointed out, the distributed clocks of K’ would also not be synchronized in the opinion of K (and vice versa), assuming K’ synchronized its clocks in the belief that the speed of light was c in all directions relative to that frame (as experiment indicates is the case). In essence we end up with two points of view:

K Point of View: (1) Grid of K’ is length-contracted in + x’ direction; (2) Distributed clocks at rest in K’ run slowly; (3) Distributed clocks at rest in K’ are not synchronized with one another.

K’ Point if View: (1) Grid of K is length-contracted in + x direction; (2) Distributed clocks at rest in K run slowly; (3) Distributed clocks at rest in K are not synchronized with one another.

It is worth noting that these points of view can be corroborated by actual measurements. Of course each frame believes that its measurements are correct, and the other’s are erroneous, owing to the length contraction of the other’s grid, etc. The elegant thing is that a complete symmetry exists among all inertial frames. And as demonstrated above, given an electrodynamic system’s specifics in one frame, Newton/Maxwell/Lorentz can be applied in other frames to obtain the system component motions in those other frames.

Taking into account the length contraction, etc., of K’ from the point of view of K, it is a straightforward problem in algebra to answer the following question: if an event (say an explosion) occurs at space-time coordinates (x,y,z,t) in K, then what will the space-time coordinates of the same event be in K’? A problem solution is suggested in Appendix B. The Lorentz transformation provides the answer. It is of course , (5_1) , (5_2) , (5_3) . (5_4)

From these transformations one can obtain transformations for velocity, acceleration, etc. And, provided the dependence of mass upon speed is taken into account, one can derive the transformation of F=d/dt(mv). (For reference, these transformations are provided in Appendix C.)

It is an impressive result that the Lorentz force transforms precisely as Newton’s d(mv)/dt does. Indeed it might be required that all the forces of physics ... both (1) the force laws, and (2) the dynamic laws ... transform identically. Otherwise the laws would not be equally applicable in all inertial frames of reference.

6. "Snapshots" and Non-Synchronicity.

In the Galilean transformation, one universal time for all observers is implied. In effect all inertial observers agree that if clocks were distributed throughout all inertial frames, then the clocks would all run at the same rate and could be synchronized. Among other things this would imply that if K observes events at x2 and x1<x2 to occur simultaneously (say at time t), then K’ will agree on the time and simultaneity of the same events.

It is clear in Eq 5_4 that this agreement does not apply under the Lorentz transformation. In the first place, K and K’ may not agree about the time of an event at nonzero values of x and x’. Furthermore, spatially discrete events that occur simultaneously in K may be found to occur at different times in K’. More generally any "snapshot" of the world, at a given instant t in K, will not constitute a "snapshot" in K’. Rather it will constitute a virtual continuum (in space and time) of events in K’.

An excellent example of such non-synchronicity is the electromagnetic field. The fields specified in Eqs. 2_1 – 2_3 and Fig. 2_1 actually pertain to all spatial points at a single instant in K. One should not fall into the trap of thinking that the fields in K’, at a single instant, can be obtained by application of the general field transformations. For these transformations provide field values at a continuum of times in K’.

Fortunately, if one has a formula for E and B at all points in space and at all times in K, then it is possible to "post process" the general field transformations to obtain E’ and B’ everywhere in K’, at some one instant t’. To the extent we think of the fields as a series of snapshots from moment to moment in our chosen inertial frame of reference, our ability to post process the series of snapshots in K, to one or more snapshots in K’, is fortunate. In any case Einstein’s caveat regarding the relativity of simultaneity should be heeded: when changing frames one should always bear in mind that a set of simultaneous events in one frame will often map to a sequence of events in other frames.

7. Concluding Thoughts.

Owing to the Lorentz transformation, which among other things implies that all systems are length contracted when they move, an astonishing and unexpected symmetry emerged. Based on actual measurement, inertial observers K and K’ each justifiably concluded that clocks in the other frame ran slowly. Each agrees that the other makes careful measurements. But each contends that the other’s conclusions are based on faulty assumptions (that the other’s clocks are synchronized, etc.)

Historically, before such inherent symmetries were understood, it was believed that there existed some one special inertial frame of reference in which (for example) moving charge really does engender a B field. Attempts to find this frame of course failed. It seemed as though nature’s length contraction of moving systems, etc., conspired to place all inertial frames on an equal footing when it came to the application of physical laws. In time Poincare reportedly pointed out that a complete conspiracy of nature is a law of nature.

Have we unequivocally ruled out the existence of a "primary" (or "ether" or "dark matter" or ...) frame? In truth we have not, although we must acknowledge the possibility that no experiment can differentiate such a frame from all the other inertial frames. Perhaps, with advances in astronomy, we can attempt to narrow the search and define the "primary" frame to be the frame in which the center of mass of the known universe is at rest. Perhaps. But what will such an exercise gain us?

One thing does seem certain. The length contraction of moving systems appears not to be an illusion, even though K and K’ each measures such effects for systems moving relative to himself. Such effects are real, and are predicted by the remarkable fact that the physics of Newton, Maxwell and Lorentz work equally well in every inertial frame of reference.

***Appendix A***

"""A program that demonstrates length contraction and time dilation.

Given a charged satellite, orbiting an oppositely charged central body,

use Maxwell, Lorentz and Newton to compute the satellite's motion

relative to inertial frame K. Output data reflecting the system shape

in K for plotting purposes."""

import math

c=299792000.    #Speed of light

eps0=8.85e-12   #Permittivity constant

Steps=1000000    #Steps in an iterative loop

Selection=int(input("Speed of satellite in K'=1 for .01c, 2 for .95c "))

if(Selection==1):

SatelliteSpeedInKprime=.01*c

else:

SatelliteSpeedInKprime=.95*c

CentralBodySpeedInK=SatelliteSpeedInKprime    #Central body constant speed in K

SatelliteRestMass=1.   #Satellite rest mass

#Try an educated trial value for the quasi-cycloid period in K.

gammap=1/math.sqrt(1-CentralBodySpeedInK**2/c**2)

SatellitePeriodInK=gammap*SatellitePeriodInKprime    #Trial value for period in K

deltat=SatellitePeriodInK/Steps    #Time increment

#Find what size charge will cause circular motion in K'.

#Initialize satellite variables for t=0 in K.

#Satellite starts out at rest on SatelliteYCoordinate axis of K.

SatelliteXCoordinate=0.

SatelliteYCoordinate=[]

SatelliteXVelocityCoordinate=0.

SatelliteYVelocityCoordinate=0.

SatelliteSpeed=0.

gamma=1/math.sqrt(1-SatelliteSpeed**2/c**2)

for index in range(Steps-1):

#1. Compute the central body fields at the satellite using the

#Electric field components for a charge moving with constant velocity.

t=index*deltat

#Use previously computed satellite positions.

#R is always the satellite displacement from the central body

Ry=SatelliteYCoordinate[index]

R=math.sqrt(Rx**2+Ry**2)    #R might vary in K

if(Rx==0.):

if(t==0.):

theta=math.pi/2

else:

theta=3*math.pi/2

else:

if(Rx<0. and Ry>=0.):

theta=math.pi/2+math.atan(-Rx/Ry)

if(Rx<0. and Ry<0.):

theta=math.pi+math.atan(Ry/Rx)

if(Rx>=0. and Ry<0.):

theta=3*math.pi/2+math.atan(Rx/-Ry)

if(Rx>=0. and Ry>=0.):

theta=math.atan(Ry/Rx)

Ex=SatelliteCharge/(4*math.pi*eps0)*math.cos(theta)/R**2*(1-CentralBodySpeedInK**2/c**2)/(math.sqrt(1-(CentralBodySpeedInK/c*math.sin(theta))**2))**3

Ey=SatelliteCharge/(4*math.pi*eps0)*math.sin(theta)/R**2*(1-CentralBodySpeedInK**2/c**2)/(math.sqrt(1-(CentralBodySpeedInK/c*math.sin(theta))**2))**3

Bz=1/c**2*CentralBodySpeedInK*Ey

#2. Compute the Lorentz force acting on the satellite.

Fx=-SatelliteCharge*(Ex+SatelliteYVelocityCoordinate*Bz)

Fy=-SatelliteCharge*(Ey-SatelliteXVelocityCoordinate*Bz)

#3. Compute the relativistically rigorous acceleration.

ax=(Fx*(c**2-SatelliteXVelocityCoordinate**2)-Fy*SatelliteXVelocityCoordinate*SatelliteYVelocityCoordinate)/(SatelliteRestMass*c**2*gamma)

ay=(Fy*(c**2-SatelliteYVelocityCoordinate**2)-Fx*SatelliteXVelocityCoordinate*SatelliteYVelocityCoordinate)/(SatelliteRestMass*c**2*gamma)

#4. Update the position and velocity.

SatelliteXCoordinate=SatelliteXCoordinate+SatelliteXVelocityCoordinate*deltat+1/2*ax*deltat**2

#This step avoids division by zero in computing theta.

if(index<Steps-1):

SatelliteYCoordinate.append(SatelliteYCoordinate[index]+SatelliteYVelocityCoordinate*deltat+1/2*ay*deltat**2)

SatelliteXVelocityCoordinate=SatelliteXVelocityCoordinate+ax*deltat

SatelliteYVelocityCoordinate=SatelliteYVelocityCoordinate+ay*deltat

SatelliteSpeed=math.sqrt(SatelliteXVelocityCoordinate**2+SatelliteYVelocityCoordinate**2)

gamma=1/math.sqrt(1-SatelliteSpeed**2/c**2)

#Compare final time with the SatellitePeriodInK guesstimate.

print('t= ',t,' SatellitePeriodInK= ',SatellitePeriodInK)

#Output the AdjustedSatelliteXCoordinate and SatelliteYCoordinate satellite positions for shape plotting.

f=open('c:/Python33/Website/PLOTVALS.dat','w')

f.close()

f=open('c:/Python33/Website/PLOTVALS.dat','a')

for index in range(int(Steps/1000-1)):

f.write(',')

f.write(str(SatelliteYCoordinate[1000*index]))

f.write('\n')

f.close()

"""A program that demonstrates length contraction and time dilation.

Given a charged satellite, orbiting an oppositely charged central body,

use Maxwell, Lorentz and Newton to compute the satellite's motion

relative to inertial frame K. Output data reflecting the system shape

in K for plotting purposes."""

import math

c=299792000.    #Speed of light

eps0=8.85e-12   #Permittivity constant

Steps=1000000    #Steps in an iterative loop

Selection=int(input("Speed of satellite in K'=1 for .01c, 2 for .95c "))

if(Selection==1):

SatelliteSpeedInKprime=.01*c

else:

SatelliteSpeedInKprime=.95*c

CentralBodySpeedInK=SatelliteSpeedInKprime    #Central body constant speed in K

SatelliteRestMass=1.   #Satellite rest mass

#Try an educated trial value for the quasi-cycloid period in K.

gammap=1/math.sqrt(1-CentralBodySpeedInK**2/c**2)

SatellitePeriodInK=gammap*SatellitePeriodInKprime    #Trial value for period in K

deltat=SatellitePeriodInK/Steps    #Time increment

#Find what size charge will cause circular motion in K'.

#Initialize satellite variables for t=0 in K.

#Satellite starts out at rest on SatelliteYCoordinate axis of K.

SatelliteXCoordinate=0.

SatelliteYCoordinate=[]

SatelliteXVelocityCoordinate=0.

SatelliteYVelocityCoordinate=0.

SatelliteSpeed=0.

gamma=1/math.sqrt(1-SatelliteSpeed**2/c**2)

for index in range(Steps-1):

#1. Compute the central body fields at the satellite using the

#Electric field components for a charge moving with constant velocity.

t=index*deltat

#Use previously computed satellite positions.

#R is always the satellite displacement from the central body

Ry=SatelliteYCoordinate[index]

R=math.sqrt(Rx**2+Ry**2)    #R might vary in K

if(Rx==0.):

if(t==0.):

theta=math.pi/2

else:

theta=3*math.pi/2

else:

if(Rx<0. and Ry>=0.):

theta=math.pi/2+math.atan(-Rx/Ry)

if(Rx<0. and Ry<0.):

theta=math.pi+math.atan(Ry/Rx)

if(Rx>=0. and Ry<0.):

theta=3*math.pi/2+math.atan(Rx/-Ry)

if(Rx>=0. and Ry>=0.):

theta=math.atan(Ry/Rx)

Ex=SatelliteCharge/(4*math.pi*eps0)*math.cos(theta)/R**2*(1-CentralBodySpeedInK**2/c**2)/(math.sqrt(1-(CentralBodySpeedInK/c*math.sin(theta))**2))**3

Ey=SatelliteCharge/(4*math.pi*eps0)*math.sin(theta)/R**2*(1-CentralBodySpeedInK**2/c**2)/(math.sqrt(1-(CentralBodySpeedInK/c*math.sin(theta))**2))**3

Bz=1/c**2*CentralBodySpeedInK*Ey

#2. Compute the Lorentz force acting on the satellite.

Fx=-SatelliteCharge*(Ex+SatelliteYVelocityCoordinate*Bz)

Fy=-SatelliteCharge*(Ey-SatelliteXVelocityCoordinate*Bz)

#3. Compute the relativistically rigorous acceleration.

ax=(Fx*(c**2-SatelliteXVelocityCoordinate**2)-Fy*SatelliteXVelocityCoordinate*SatelliteYVelocityCoordinate)/(SatelliteRestMass*c**2*gamma)

ay=(Fy*(c**2-SatelliteYVelocityCoordinate**2)-Fx*SatelliteXVelocityCoordinate*SatelliteYVelocityCoordinate)/(SatelliteRestMass*c**2*gamma)

#4. Update the position and velocity.

SatelliteXCoordinate=SatelliteXCoordinate+SatelliteXVelocityCoordinate*deltat+1/2*ax*deltat**2

#This step avoids division by zero in computing theta.

if(index<Steps-1):

SatelliteYCoordinate.append(SatelliteYCoordinate[index]+SatelliteYVelocityCoordinate*deltat+1/2*ay*deltat**2)

SatelliteXVelocityCoordinate=SatelliteXVelocityCoordinate+ax*deltat

SatelliteYVelocityCoordinate=SatelliteYVelocityCoordinate+ay*deltat

SatelliteSpeed=math.sqrt(SatelliteXVelocityCoordinate**2+SatelliteYVelocityCoordinate**2)

gamma=1/math.sqrt(1-SatelliteSpeed**2/c**2)

#Compare final time with the SatellitePeriodInK guesstimate.

print('t= ',t,' SatellitePeriodInK= ',SatellitePeriodInK)

#Output the AdjustedSatelliteXCoordinate and SatelliteYCoordinate satellite positions for shape plotting.

f=open('c:/Python33/Website/PLOTVALS.dat','w')

f.close()

f=open('c:/Python33/Website/PLOTVALS.dat','a')

for index in range(int(Steps/1000-1)):

f.write(',')

f.write(str(SatelliteYCoordinate[1000*index]))

f.write('\n')

f.close()

***Appendix B***

A Derivation  the Lorentz Transformation of Space and Time Coordinates

Given two inertial frames of reference (say K and K’) with the usual relative motion, three of the basic tenets of Special Relativity Theory are (1) an observer, using the rectangular coordinate grid and clocks of K, will measure the grid of K’ to be contracted in the x direction; (2) the same observer will measure the clocks at rest in K’ to run more slowly than those of K; and (3) the clocks in K’, with different x’ coordinates, will not be synchronized.

The intriguing thing is that the same things will be found for the grid and clocks of K, when the grid and clocks of K’ are used to make the measurements. A "symmetry of disagreement" exists, and it is not possible to definitively demonstrate that one party is correct and the other is wrong.

The contraction of another frame’s grid, and the slower rate of its clocks are both specified by the factor . (B_1)

The amount by which the other frame’s clocks are out of synch is less obvious, but derivable. Such a derivation is provided in this article.

We begin by imagining that we are an observer in K, watching an observer in K’ attempt to synchronize the K’ clocks. (K’ moves in the positive x direction of K at speed v.) We shall consider three K’ clocks: (1) the clock at x’=D; (2) the K’ origin clock; and (3) the clock at x’=-D. The K’ observer sends out a pulse of light in the positive and negative x’ directions. Since (according to him) the speed of light is c in all directions, relative to K’, he posits that the clocks at D and –D are synchronized with the origin clock if they are set to D/c upon reception of the pulse.

Let us call (1) the sending out of the pulse(s) "Event 1"; (2) the reception of the pulse at x’=D "Event 2"; (3) the reception of the pulse at x’=-D "Event 3." The K’ space-time coordinates of Event 1 are , (B_2a) . (B_2b)

And let us begin by considering the arrival of the pulse at x’=+D.

The K’ observer says that the K’ space-time coordinates of Event 2 are , (B_3a) . (B_3b)

From the perspective of frame K, the same events have the coordinates , (B_4a) . (B_4b)

At time t=0, the distance to the K’ clock at x’=D is only g-1D (owing to length contraction). And since the pulse speed is finite, the clock moves to the right while the pulse is en route. Specifically, if the time for the pulse to propagate from the K’ origin clock to the targeted K’ clock is Dt then when the pulse arrives that K’ clock will be at . (B_5)

We can solve for Dt by also noting that . (B_6)

Thus . (B_7)

And of course t2 equals Dt: . (B_8)

Substitution into Eq. B_5 produces . (B_9)

Now while the pulse of light was en route, the K’ origin clock has been running. According to K, when the pulse arrives at the targeted x’ clock, the K’ origin clock will have advanced from to’=0 to . (B_10)

According to K, this is what the targeted K’ clock should be set to if it is to be truly synchronized with the K’ origin clock. The actual setting of (D/c) is less than this value. K therefore perceives that the K’ clock at x’=D runs behind the K’ origin clock by the amount . (B_11)

And this lack of synchronization will (in the opinion of K) persist as time passes.

Let us now consider a random event, with space-time coordinates x and t. Our only requirement for now will be that x is greater than vt (the location of the K’ origin clock when the event occurs). This being the case, the distance between the event and the K’ origin clock will, in the opinion of K, be (x-vt). But using the grid of K’, this maps to . (B_12)

At time t the K’ origin clock will read g-1t. And the K’ clock at x’ will read x’v/c2 behind that. Therefore . (B_13)

Or, in terms of K parameters, . (B_14)

Let us now consider the synchronization of the K’ clock at x’=-D. We shall again say that Event 1 is the sending out of a light pulse from the K’ origin clock. Thus once again , (B_15a) . (B_15b)

Event 3, the reception of the light pulse by the K’ clock at x’=-D, has coordinates , (B_16a) . (B_16b)

Again we have , (B_17a) . (B_17b)

And the distance between the K’ origin clock and the targeted K’ clock is (according to K) only g-1D. If Dt again denotes the pulse’s time of flight, then in this case . (B_18)

And now , (B_19)

so that Dt solves to . (B_20)

Once again, t3 equals Dt: . (B_21)

Substitution for Dt in Eq. B_18 produces . (B_22)

When the pulse reaches the targeted K’ clock, the K’ origin clock will have advanced from zero to . (B_23)

According to K, this is what the targeted K’ clock should be set to in order to be synchronized with the K’ origin clock. But in this case the actual setting, D/c, is greater. Thus K concludes that the K’ clock at x’=-D runs ahead of the K’ origin clock by the amount . (B_24)

Let us again consider a random event with coordinates x and t. This time we address the case where x isless than vt (the location of the K’ origin clock when the event occurs). The distance between the event and the K’ origin clock is (vt-x). In K’ terms this maps to a distance of g(vt-x). Or, since x’ is negative,  . (B_25)

At K time t the K’ origin clock will read g-1t. But the x’ clock will read –xv/c2 more than that. Thus (B_26)

which is identical to Eq. B_13. Therefore . (B_27)

In conclusion, given an event with K space-time coordinates x and t, the event’s K’ space-time coordinates will be , (B_28a) . (B_28b)

These two equations are the celebrated Lorentz transformations for space and time coordinates.

Of course from the perspective of K’, it is the K clocks that are not synchronized. K’ contends that the K clocks on the negative x axis run behind the K origin clock, whereas the K clocks on the positive x axis runahead of the K origin clock. In this case it is readily demonstrated that, given an event with K’ space-time coordinates x’ and t’, the K coordinates will be , (B_29a) . (B_29b)

***Appendix C***

A Few Useful Transformations

Velocity:

If u is the measured velocity of a particle in K, then the same measurement in K’ has components (C_1) (C_2)

Acceleration:

If a is the measured acceleration of a particle in K, then the same measurement in K’ has components (C_3) (c_4)

Force:

If F is the measured force on a particle in K, then the same measurement in K’ has components (C_5) (C_6)