Problem statement:
Determine the relativistic uniformly accelerated motion, i.e. the rectilinear motion for which the acceleration w in the proper reference frame (at each instant of time) remains constant.

As an application of the post presented by Dr Cheb Terrab in MaplePrimes on the principle of relativity ( found here ), we solve the problem stated on page 24 of Landau & Lifshitz book [1], which makes use of the relativistic invariant condition of the constancy of a four-scalar, viz., `w__μ`*w^mu where w^mu is the four-acceleration. This little problem exemplify beautifully how to use invariance in relativity. This is the so-called hyperbolic motion and we explain why at the end of this worksheet.


let's introduce the coordinate system, X = (x, y, z, tau)with tau = c*t 


Setup(coordinates = [X = (x, y, z, tau)])

[coordinatesystems = {X}]


%d_(s)^2 = g_[lineelement]

%d_(s)^2 = -Physics:-d_(x)^2-Physics:-d_(y)^2-Physics:-d_(z)^2+Physics:-d_(tau)^2





The four-velocity is defined by  u^mu = dx^mu/ds and dx^mu/ds = dx^mu/(c*sqrt(1-v^2/c^2)*dt) 

Define this quantity as a tensor.

Define(u[mu], quiet)

The four velocity can therefore be computing using

u[`~mu`] = d_(X[`~mu`])/%d_(s(tau))

u[`~mu`] = Physics:-d_(Physics:-SpaceTimeVector[`~mu`](X))/%d_(s(tau))



As to the interval d(s(tau)), it is easily obtained from (2) . See Equation (4.1.5)  here with d(diff(tau(x), x)) = d(s(tau)) for in the moving reference frame we have that d(diff(x, x)) = d(diff(y(x), x)) and d(diff(y(x), x)) = d(diff(z(x), x)) and d(diff(z(x), x)) = 0.

 Thus, remembering that the velocity is a function of the time and hence of tau, set

%d_(s(tau)) = d(tau)*sqrt(1-v(tau)^2/c^2)

%d_(s(tau)) = Physics:-d_(tau)*(1-v(tau)^2/c^2)^(1/2)


subs(%d_(s(tau)) = Physics[d_](tau)*(1-v(tau)^2/c^2)^(1/2), u[`~mu`] = Physics[d_](Physics[SpaceTimeVector][`~mu`](X))/%d_(s(tau)))

u[`~mu`] = Physics:-d_(Physics:-SpaceTimeVector[`~mu`](X))/(Physics:-d_(tau)*(1-v(tau)^2/c^2)^(1/2))


Rewriting the right-hand side in components,

lhs(u[`~mu`] = Physics[d_](Physics[SpaceTimeVector][`~mu`](X))/(Physics[d_](tau)*(1-v(tau)^2/c^2)^(1/2))) = Library:-TensorComponents(rhs(u[`~mu`] = Physics[d_](Physics[SpaceTimeVector][`~mu`](X))/(Physics[d_](tau)*(1-v(tau)^2/c^2)^(1/2))))

u[`~mu`] = [Physics:-d_(x)/(Physics:-d_(tau)*(-(v(tau)^2-c^2)/c^2)^(1/2)), Physics:-d_(y)/(Physics:-d_(tau)*(-(v(tau)^2-c^2)/c^2)^(1/2)), Physics:-d_(z)/(Physics:-d_(tau)*(-(v(tau)^2-c^2)/c^2)^(1/2)), 1/(-(v(tau)^2-c^2)/c^2)^(1/2)]


Next we introduce explicitly the 3D velocity components while remembering that the moving reference frame travels along the positive x-axis


simplify(u[`~mu`] = [Physics[d_](x)/(Physics[d_](tau)*(-(v(tau)^2-c^2)/c^2)^(1/2)), Physics[d_](y)/(Physics[d_](tau)*(-(v(tau)^2-c^2)/c^2)^(1/2)), Physics[d_](z)/(Physics[d_](tau)*(-(v(tau)^2-c^2)/c^2)^(1/2)), 1/(-(v(tau)^2-c^2)/c^2)^(1/2)], {d_(x)/d_(tau) = v(tau)/c, d_(y)/d_(tau) = 0, d_(z)/d_(tau) = 0}, {d_(x), d_(y), d_(z)})

u[`~mu`] = [v(tau)/(c*((c^2-v(tau)^2)/c^2)^(1/2)), 0, 0, 1/(-(v(tau)^2-c^2)/c^2)^(1/2)]


Introduce now this explicit definition into the system

Define(u[`~mu`] = [v(tau)/(c*((c^2-v(tau)^2)/c^2)^(1/2)), 0, 0, 1/(-(v(tau)^2-c^2)/c^2)^(1/2)])

{Physics:-Dgamma[mu], Physics:-Psigma[mu], Physics:-d_[mu], Physics:-g_[mu, nu], u[mu], w[`~mu`], w__o[`~mu`], Physics:-LeviCivita[alpha, beta, mu, nu], Physics:-SpaceTimeVector[mu](X)}



Computing the four-acceleration


This quantity is defined by the second derivative w^mu = d^2*x^mu/ds^2 and d^2*x^mu/ds^2 = du^mu/ds and du^mu/ds = du^mu/(c*sqrt(1-v^2/c^2)*dt)

Define this quantity as a tensor.

Define(w[mu], quiet)

Applying the definition just given,

w[`~mu`] = d_(u[`~mu`])/%d_(s(tau))

w[`~mu`] = Physics:-d_[nu](u[`~mu`], [X])*Physics:-d_(Physics:-SpaceTimeVector[`~nu`](X))/%d_(s(tau))


Substituting for d_(s(tau))from (1.2) above

subs(%d_(s(tau)) = Physics[d_](tau)*(1-v(tau)^2/c^2)^(1/2), w[`~mu`] = Physics[d_][nu](u[`~mu`], [X])*Physics[d_](Physics[SpaceTimeVector][`~nu`](X))/%d_(s(tau)))

w[`~mu`] = Physics:-d_[nu](u[`~mu`], [X])*Physics:-d_(Physics:-SpaceTimeVector[`~nu`](X))/(Physics:-d_(tau)*(1-v(tau)^2/c^2)^(1/2))


Introducing now this definition (2.2)  into the system,

Define(w[`~mu`] = Physics[d_][nu](u[`~mu`], [X])*Physics[d_](Physics[SpaceTimeVector][`~nu`](X))/(Physics[d_](tau)*(1-v(tau)^2/c^2)^(1/2)), quiet)

lhs(w[`~mu`] = Physics[d_][nu](u[`~mu`], [X])*Physics[d_](Physics[SpaceTimeVector][`~nu`](X))/(Physics[d_](tau)*(1-v(tau)^2/c^2)^(1/2))) = TensorArray(rhs(w[`~mu`] = Physics[d_][nu](u[`~mu`], [X])*Physics[d_](Physics[SpaceTimeVector][`~nu`](X))/(Physics[d_](tau)*(1-v(tau)^2/c^2)^(1/2))))

w[`~mu`] = Array(%id = 36893488148327765764)


Recalling that tau = c*t, we get


w[`~mu`] = Array(%id = 36893488148324030572)


Introducing anew this definition (2.4)  into the system,



In the proper referential, the velocity of the particle vanishes and the tridimensional acceleration is directed along the positive x-axis, denote its value by `#msub(mi("w"),mn("0"))`

Hence, proceeding to the relevant substitutions and introducing the corresponding definition into the system, the four-acceleration in the proper referential reads

  "Define(`w__o`[~mu]= subs(v(t)=`w__0`, v(t)=0,rhs(?)),quiet):"

w__o[`~mu`] = TensorArray(w__o[`~mu`])

w__o[`~mu`] = Array(%id = 36893488148076604940)



The differential equation solving the problem



Everything is now set up for us to establish the differential equation that will solve our problem. It is at this juncture that we make use of the invariant condition stated in the introduction.

The relativistic invariant condition of uniform acceleration must lie in the constancy of a 4-scalar coinciding with `w__μ`*w^mu  in the proper reference frame.

We simply write the stated invariance of the four scalar (d*u^mu*(1/(d*s)))^2 thus:

w[mu]^2 = w__o[mu]^2

w[mu]*w[`~mu`] = w__o[mu]*w__o[`~mu`]


TensorArray(w[mu]*w[`~mu`] = w__o[mu]*w__o[`~mu`])

(diff(v(t), t))^2*c^2/(v(t)^2-c^2)^3 = -w__0^2/c^4



This gives us a first order differential equation for the velocity.


Solving the differential equation for the velocity and computation of the distance travelled



Assuming the proper reference frame is starting from rest, with its origin at that instant coinciding with the origin of the fixed reference frame, and travelling along the positive x-axis, we get successively,


dsolve({(diff(v(t), t))^2*c^2/(v(t)^2-c^2)^3 = -w__0^2/c^4, v(0) = 0})

v(t) = t*c*w__0/(t^2*w__0^2+c^2)^(1/2), v(t) = -t*c*w__0/(t^2*w__0^2+c^2)^(1/2)



As just explained, the motion being along the positive x-axis, we take the first expression.

[v(t) = t*c*w__0/(t^2*w__0^2+c^2)^(1/2), v(t) = -t*c*w__0/(t^2*w__0^2+c^2)^(1/2)][1]

v(t) = t*c*w__0/(t^2*w__0^2+c^2)^(1/2)


This can be rewritten thus

v(t) = w__0*t/sqrt(1+w__0^2*t^2/c^2)

v(t) = w__0*t/(1+w__0^2*t^2/c^2)^(1/2)


It is interesting to note that the ultimate speed reached is the speed of light, as it should be.

`assuming`([limit(v(t) = w__0*t/(1+w__0^2*t^2/c^2)^(1/2), t = infinity)], [w__0 > 0, c > 0])

limit(v(t), t = infinity) = c



The space travelled is simply

x(t) = Int(rhs(v(t) = w__0*t/(1+w__0^2*t^2/c^2)^(1/2)), t = 0 .. t)

x(t) = Int(w__0*t/(1+w__0^2*t^2/c^2)^(1/2), t = 0 .. t)


`assuming`([value(x(t) = Int(w__0*t/(1+w__0^2*t^2/c^2)^(1/2), t = 0 .. t))], [c > 0])

x(t) = c*((t^2*w__0^2+c^2)^(1/2)-c)/w__0


expand(x(t) = c*((t^2*w__0^2+c^2)^(1/2)-c)/w__0)

x(t) = c*(t^2*w__0^2+c^2)^(1/2)/w__0-c^2/w__0


This can be rewritten in the form

x(t) = c^2*(sqrt(1+w__0^2*t^2/c^2)-1)/w__0

x(t) = c^2*((1+w__0^2*t^2/c^2)^(1/2)-1)/w__0



The classical limit corresponds to an infinite velocity of light; this entails an instantaneous propagation of the interactions, as is conjectured in Newtonian mechanics.
The asymptotic development gives,

lhs(x(t) = c^2*((1+w__0^2*t^2/c^2)^(1/2)-1)/w__0) = asympt(rhs(x(t) = c^2*((1+w__0^2*t^2/c^2)^(1/2)-1)/w__0), c, 4)

x(t) = (1/2)*w__0*t^2+O(1/c^2)


As for the velocity, we get

lhs(v(t) = t*c*w__0/(t^2*w__0^2+c^2)^(1/2)) = asympt(rhs(v(t) = t*c*w__0/(t^2*w__0^2+c^2)^(1/2)), c, 2)

v(t) = t*w__0+O(1/c^2)


Thus, the classical laws are recovered.


Proper time



This quantity is given by "t'= ∫ dt sqrt(1-(v^(2))/(c^(2)))" the integral being  taken between the initial and final improper instants of time

Here the initial instant is the origin and we denote the final instant of time t.


`#mrow(mi("t"),mo("′"))` = Int(sqrt(1-rhs(v(t) = w__0*t/(1+w__0^2*t^2/c^2)^(1/2))^2/c^2), t = 0 .. t)

`#mrow(mi("t"),mo("′"))` = Int((1-w__0^2*t^2/((1+w__0^2*t^2/c^2)*c^2))^(1/2), t = 0 .. t)


Finally the proper time reads

`assuming`([value(`#mrow(mi("t"),mo("′"))` = Int((1-w__0^2*t^2/((1+w__0^2*t^2/c^2)*c^2))^(1/2), t = 0 .. t))], [w__0 > 0, c > 0, t > 0])

`#mrow(mi("t"),mo("′"))` = arcsinh(t*w__0/c)*c/w__0


When proc (t) options operator, arrow; infinity end proc, the proper time grows much more slowly than t according to the law

`assuming`([lhs(`#mrow(mi("t"),mo("′"))` = arcsinh(t*w__0/c)*c/w__0) = asympt(rhs(`#mrow(mi("t"),mo("′"))` = arcsinh(t*w__0/c)*c/w__0), t, 1)], [w__0 > 0, c > 0])

`#mrow(mi("t"),mo("′"))` = (ln(2*w__0/c)+ln(t))*c/w__0+O(1/t^2)


combine(`#mrow(mi("t"),mo("′"))` = (ln(2*w__0/c)+ln(t))*c/w__0+O(1/t^2), ln, symbolic)

`#mrow(mi("t"),mo("′"))` = ln(2*t*w__0/c)*c/w__0+O(1/t^2)



Evolution of the four-acceleration of the moving frame as observed from the fixed reference frame



To obtain the four-acceleration as a function of time, simply substitute for the 3-velocity (4.3)  in the 4-acceleration (2.4)

" simplify(subs(v(t) = w__0*t/(1+w__0^2*t^2/c^2)^(1/2),?),symbolic)"

w[`~mu`] = Array(%id = 36893488148142539108)


" w[t->infinity]^(  mu)=map(limit,rhs(?),t=infinity) assuming `w__0`>0,c>0"

`#msubsup(mi("w"),mrow(mi("t"),mo("→"),mo("∞")),mrow(mo("⁢"),mo("⁢"),mi("μ",fontstyle = "normal")))` = Array(%id = 36893488148142506460)


We observe that the non-vanishing components of the four-acceleration of the accelerating reference frame get infinite while those components in the moving reference frame keep their constant values . (2.5)


Evolution of the three-acceleration as observed from the fixed reference frame



This quantity is obtained simply by differentiating the velocity v(t)given by  with respect to the time t.


simplify(diff(v(t) = w__0*t/(1+w__0^2*t^2/c^2)^(1/2), t), size)

diff(v(t), t) = w__0/(1+w__0^2*t^2/c^2)^(3/2)


Here also, it is interesting to note that the three-acceleration tends to zero. This fact was somewhat unexpected.

map(limit, diff(v(t), t) = w__0/(1+w__0^2*t^2/c^2)^(3/2), t = infinity)

limit(diff(v(t), t), t = infinity) = 0



At the beginning of the motion, the acceleration should be w__0, as Newton's mechanics applies then


`assuming`([lhs(diff(v(t), t) = w__0/(1+w__0^2*t^2/c^2)^(3/2)) = series(rhs(diff(v(t), t) = w__0/(1+w__0^2*t^2/c^2)^(3/2)), t = 0, 2)], [c > 0])

diff(v(t), t) = series(w__0+O(t^2),t,2)



Justification of the name hyperbolic motion



Recall the expressions for x and diff(t(x), x)and obtain a parametric description of a curve, with diff(t(x), x)as parameter. This curve will turn out to be a hyperbola.

subs(x(t) = x, x(t) = c^2*((1+w__0^2*t^2/c^2)^(1/2)-1)/w__0)

x = c^2*((1+w__0^2*t^2/c^2)^(1/2)-1)/w__0


`#mrow(mi("t"),mo("′"))` = arcsinh(t*w__0/c)*c/w__0

`#mrow(mi("t"),mo("′"))` = arcsinh(t*w__0/c)*c/w__0


The idea is to express the variables x and t in terms of diff(t(x), x).


isolate(`#mrow(mi("t"),mo("′"))` = arcsinh(t*w__0/c)*c/w__0, t)

t = sinh(`#mrow(mi("t"),mo("′"))`*w__0/c)*c/w__0


subs(t = sinh(`#mrow(mi("t"),mo("′"))`*w__0/c)*c/w__0, x = c^2*((1+w__0^2*t^2/c^2)^(1/2)-1)/w__0)

x = c^2*((1+sinh(`#mrow(mi("t"),mo("′"))`*w__0/c)^2)^(1/2)-1)/w__0


`assuming`([simplify(x = c^2*((1+sinh(`#mrow(mi("t"),mo("′"))`*w__0/c)^2)^(1/2)-1)/w__0)], [positive])

x = c^2*(cosh(`#mrow(mi("t"),mo("′"))`*w__0/c)-1)/w__0


We now show that the equations (8.3) and (8.5) are parametric equations of a hyperbola with parameter the proper time diff(t(x), x)


Recall the hyperbolic trigonometric identity

cosh(`#mrow(mi("t"),mo("′"))`*w__0/c)^2-sinh(`#mrow(mi("t"),mo("′"))`*w__0/c)^2 = 1

cosh(`#mrow(mi("t"),mo("′"))`*w__0/c)^2-sinh(`#mrow(mi("t"),mo("′"))`*w__0/c)^2 = 1


Then isolating the sinh and the cosh from equations (8.3) and (8.5),


isolate(t = sinh(`#mrow(mi("t"),mo("′"))`*w__0/c)*c/w__0, sinh(`#mrow(mi("t"),mo("′"))`*w__0/c))

sinh(`#mrow(mi("t"),mo("′"))`*w__0/c) = t*w__0/c


isolate(x = c^2*(cosh(`#mrow(mi("t"),mo("′"))`*w__0/c)-1)/w__0, cosh(`#mrow(mi("t"),mo("′"))`*w__0/c))

cosh(`#mrow(mi("t"),mo("′"))`*w__0/c) = x*w__0/c^2+1


and substituting these in (8.6) , we get the looked-for Cartesian equation


subs(sinh(`#mrow(mi("t"),mo("′"))`*w__0/c) = t*w__0/c, cosh(`#mrow(mi("t"),mo("′"))`*w__0/c) = x*w__0/c^2+1, cosh(`#mrow(mi("t"),mo("′"))`*w__0/c)^2-sinh(`#mrow(mi("t"),mo("′"))`*w__0/c)^2 = 1)

(x*w__0/c^2+1)^2-w__0^2*t^2/c^2 = 1



This is the Cartesian equation of a hyperbola, hence the name hyperbolic motion




[1] Landau, L.D., and Lifshitz, E.M. The Classical Theory of Fields, Course of Theoretical Physics Volume 2, fourth revised English edition. Elsevier, 1975.



Please Wait...