1.14.2. La fuerza de Lorentz

La única fuerza modelada clásicamente que transforma de acuerdo a la prescripción anterior es la fuerza de Lorentz:

$$ \vec F = q\vec E + q\frac{\vec v}{c}\times \vec B $$

Si tomamos el caso elemental en el que $\vec B$ solo tiene componente $z$ y hay un campo eléctrico en dirección de de $y$ la fuerza sería:

$$ F_y = q E_y - q v_{L} B_z $$

donde $v_L=v_x/c$ es la velocidad instantánea de la partícula en dirección $x$ y en unidades luz.

Vamos a ver si esta fuerza transforma de acuerdo a lo que habíamos dicho. Para ello tomemos un observador inercial que se mueve con velociadad $u_L$ en dirección de x. las leyes de transformación para los campos que habíamos derivado antes son:

\begin{eqnarray} \nonumber B_z&=&\gamma_u\left(B'_z+u_L E'_y\right)\\ \nonumber E_y&=&\gamma_u\left(E'_y+u_L B'_z\right) \end{eqnarray}

Reemplazando queda:

$$ F_y = \gamma_u [q E'_y (1-u_L v_L) - q(u_L-v_L) B'_z] $$

Reuniendo términos obtenemos:

$$ F_y = \gamma_u (1-u_L v_L) \left(qE'_y - q\frac{u_L-v_L}{1-u_L v_L} B'_z\right) $$

Reconciendo que por la ley de adición de velocidades relativista:

$$ v'_L=\frac{u_L-v_L}{1-u_L v_L} $$

la anterior ecuación se puede escribir como:

$$ F'_y = \frac{\gamma_u^{-1}}{1-u_L v_L} F_y $$

que es justamente la regla de transformación para la componente perpendicular. Con esto queda probado que la fuerza de Lorentz es una trifuerza en sentido estricto.

1.14.3. Movimiento circular bajo la fuerza de Lorentz

No hay muchos problemas que se puedan resolver fácilmente usando el concepto de cuadrifuerza por sus rigurosas condiciones de transformación. Sin embargo hay una situación particular y muy útil en la cuál se puede aplicar la teoría vista hasta ahora.

Imaginemos que tenemos un electrón que entra en un campo magnético uniforme $\vec B$ con una velocidad inicial $\vec v$ constante y perpendicular al campo. ¿Cuál es la trayectoria que describe el electrón en el espacio?

De acuerdo con la fuerza de Lorenz la fuerza que experimenta el electrón es constante e igual a:

$$ F = |q| \frac{v}{c}B $$

Dado que la fuerza es siempre perpendicular a la velocidad la partícula, concluímos que la partícula describirá una trayectoria circular y su velocidad se mantendrá constante. Esto no cambia así tengamos dinámica relativista.

Usando la ley de fuerza relativista y dado que la fuerza siempre es perpendicular, la aceleración centripeta estará dada por:

$$ a = \frac{F}{\gamma m} $$

Dado que geometricamente sabemos que sobre un círculo $a=v^2/R$:

$$ \frac{v^2}{R}=\frac{F}{\gamma m} $$

y reemplazando la fuerza de Lorentz obtenemos:

$$ \frac{v^2}{R}=\frac{|q|vB}{\gamma mc} $$

Despejando el radio obtenemos:

$$ R=\frac{\gamma m c v}{q B} $$

Este resultado contrasta con el resultado clásico:

$$ R_N=\frac{m c v}{q B} $$

por el factor $\gamma$.

1.14.4. Ecuación de movimiento relativista

De la misma manera que en la teoría newtoniana el movimiento de una partícula se predice una vez se han especificado las fuerzas que actúan sobre ella a través de la denominada ecuación de movimiento, podemos hacer los mismo en el marco de la teoría de la relatividad.

Para ello partimos de la definición:

$$ \tilde A_L:\left(\frac{\mathrm{d}^2 t}{\mathrm{d}\tau^2},\frac{\mathrm{d}^2\vec{r}_L}{\mathrm{d}\tau^2}\right) $$

y de la ley de fuerza covariante:

$$ \tilde f=m \tilde A $$

Usando las componentes de la cuadrifuerza podemos escribir las ecuaciones de movimiento en función de la fuerza aplicada como:

\begin{eqnarray} m\frac{\mathrm{d}^2 t}{\mathrm{d}\tau^2} & = & \gamma \vec{F}_L\cdot\vec{v}_L \\ m\frac{\mathrm{d}^2\vec{r}_L}{\mathrm{d}\tau^2} & = & \gamma \vec{F}_L \end{eqnarray}

con $\gamma=(1-v_L^2)^{-1/2}$.

Estas ecuaciones corresponden a un conjunto de 4 ecuaciones diferenciales escalares de segundo orden en las que debe especificarse explícitamente la forma de la fuerza que en general depende de la posición, la velocidad y el tiempo propio:

$$ \vec{F}_L=\vec{F}_L(\vec {r}_L,\vec{v}_L,\tau) $$

Debe recordarse, sin embargo, que $\vec F_L$ debe satisfacer las reglas de transformación definidas antes, tal y como lo hacen por ejemplo las fuerzas de Lorentz.

Un ejemplo numérico

Para poner en práctica todo lo visto en esta sección podemos estudiar el movimiento de un electrón en un campo magnético en condiciones mucho más generales de las consideradas en el ejemplo analítico de la sección anterior. Es natural que en una situación real el electrón radiara parte de su energía y el resultado que obtendremos no será el mismo pero supongamos que esas perdidas son pequeñas.

Para ello primero debemos escribir el sistema de ecuaciones de primer orden correspondiente a las ecuaciones de movimiento:

\begin{eqnarray} \nonumber \frac{\mathrm{d}t}{\mathrm{d}\tau} & = & U_t\\ \nonumber \frac{\mathrm{d}x_L}{\mathrm{d}\tau} & = & U_{Lx}\\ \nonumber \frac{\mathrm{d}y_L}{\mathrm{d}\tau} & = & U_{Ly}\\ \nonumber \frac{\mathrm{d}z_L}{\mathrm{d}\tau} & = & U_{Lz}\\ \nonumber \frac{\mathrm{d}U_t}{\mathrm{d}\tau} & = & \frac{\gamma}{m} \vec{F}_L\cdot\vec{v}_L \\ \nonumber \frac{\mathrm{d}U_{Lx}}{\mathrm{d}\tau} & = & \frac{\gamma}{m} \vec{F}_{Lx}\\ \nonumber \frac{\mathrm{d}U_{Ly}}{\mathrm{d}\tau} & = & \frac{\gamma}{m} \vec{F}_{Ly}\\ \nonumber \frac{\mathrm{d}U_{Lz}}{\mathrm{d}\tau} & = & \frac{\gamma}{m} \vec{F}_{Lz} \end{eqnarray}

Podemos además usar el hecho que $U_t=\gamma$. Si hacemos la asignación $Y_i:(t,x_L,y_L,z_L)$ y $Y_{4+i}:(U_t,U_{Lx},U_{Ly},U_{Lz})$ para $i=0,1,2,3$, las anteriores ecuaciones se pueden implementar con la siguiente rutina:

In [1]:
def edm_lorentz(Y,tau,m,q,EL,BL):
    """
    Ecuaciones de movimiento de la dinámica relativista
    """
    #tiempo, posicion y velocidad
    t=Y[0]
    rL=Y[1:4]
    Ut=Y[4]
    UL=Y[5:]

    #Factor gamma
    from numpy import sqrt
    gama=Ut
    vL=UL/gama

    #Trifuerza
    from numpy import cross
    FL=q*EL(rL,t)+q*cross(vL,BL(rL,t))

    #Ecuaciones de movimiento
    from numpy import dot
    dtdtau=Ut
    drdtau=UL
    dUtdtau=gama*dot(FL,vL)/m
    dULdtau=gama*FL/m
    
    return [dtdtau]+list(drdtau)+[dUtdtau]+list(dULdtau)

Las propiedades de las partículas serán:

In [2]:
c=3e8 #m/s
me=9.11e-31 #kg
e=-1.6e-19 #C

#Velocidad inicial
v=0.5*c
gama=1/(1-(v/c)**2)**0.5

#Campo magnético y eléctrico
Bo=10.0 #Teslas
Eo=0.0 #V/m

#Radio de giro
Rg=gama*me*c*v/(abs(e)*Bo) #Relativista
Rc=me*c*v/(abs(e)*Bo) #Clásico

#Tiempo en el laboratorio de giro
from numpy import pi
Tg=2*pi*Rg/v
In [3]:
print(f"Radio de giro predicho clásico = {Rc/1e3} km")
print(f"Radio de giro predicho relativista = {Rg/1e3} km")
print(f"Tiempo de giro predicho = {Tg} s")
Radio de giro predicho clásico = 25.621875 km
Radio de giro predicho relativista = 29.58559285678589 km
Tiempo de giro predicho = 0.0012392784156130296 s

Definamos ahora nuestro campo eléctrico y magnético:

In [4]:
from numpy import array
c=3e8 #m/s
def ELfunc(rL,t):
    #[rL]: unidades luz, [t]: s
    E=array([Eo,0,0]) #V/m
    return E/c

def BLfunc(rL,t):
    #[rL]: unidades luz, [t]: s
    B=array([0,0,Bo]) #Teslas
    return B/c

Y las condiciones iniciales:

In [5]:
c=3e8 #m/s

#Condiciones iniciales
tau0=0
rL0=array([0,-Rg,0])/c
vL0=array([v,0,0])/c

from numpy.linalg import norm
gama0=1/(1-norm(vL0)**2)**0.5

#Componentes de la cuadrivelocidad
Ut0=gama0
UL0=gama0*vL0

#Vector de condiciones iniciales resultante
Y0s=array([tau0]+list(rL0)+[Ut0]+list(UL0))
Y_0 = 
[ 0.00000000e+00  0.00000000e+00 -9.86186429e-05  0.00000000e+00
  1.15470054e+00  5.77350269e-01  0.00000000e+00  0.00000000e+00]

Probemos llamando a la ecuación de movimiento:

In [7]:
dYdtau=edm_lorentz(Y0s,0,me,e,ELfunc,BLfunc)
dY/dtau_0 = 
[1.1547005383792517, 0.5773502691896258, 0.0, 0.0, 0.0, -0.0, 3380.023529833155, -0.0]

Y ahora podemos proceder a resolver las ecuaciones de movimiento:

In [9]:
from numpy import linspace
taus=linspace(0,10*Tg,1000)

from scipy.integrate import odeint
solucion=odeint(edm_lorentz,Y0s,taus,args=(me,e,ELfunc,BLfunc))

Un gráfico de la trayectoria será:

In [10]:
%matplotlib inline
In /Users/jzuluaga/anaconda/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test.mplstyle: 
The text.latex.preview rcparam was deprecated in Matplotlib 3.3 and will be removed two minor releases later.
In /Users/jzuluaga/anaconda/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test.mplstyle: 
The mathtext.fallback_to_cm rcparam was deprecated in Matplotlib 3.3 and will be removed two minor releases later.
In /Users/jzuluaga/anaconda/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test.mplstyle: Support for setting the 'mathtext.fallback_to_cm' rcParam is deprecated since 3.3 and will be removed two minor releases later; use 'mathtext.fallback : 'cm' instead.
In /Users/jzuluaga/anaconda/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test.mplstyle: 
The validate_bool_maybe_none function was deprecated in Matplotlib 3.3 and will be removed two minor releases later.
In /Users/jzuluaga/anaconda/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test.mplstyle: 
The savefig.jpeg_quality rcparam was deprecated in Matplotlib 3.3 and will be removed two minor releases later.
In /Users/jzuluaga/anaconda/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test.mplstyle: 
The keymap.all_axes rcparam was deprecated in Matplotlib 3.3 and will be removed two minor releases later.
In /Users/jzuluaga/anaconda/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test.mplstyle: 
The animation.avconv_path rcparam was deprecated in Matplotlib 3.3 and will be removed two minor releases later.
In /Users/jzuluaga/anaconda/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test.mplstyle: 
The animation.avconv_args rcparam was deprecated in Matplotlib 3.3 and will be removed two minor releases later.
In [11]:
#Extraemos las posiciones
r=solucion[:,1:4]*c # Posición en metros

import matplotlib.pyplot as plt
fig=plt.figure(figsize=(5,5))
ax=fig.gca()

#Coordenadas x-y
ax.plot(r[:,0]/1e3,r[:,1]/1e3,'ko-')

#Circulo
from matplotlib.patches import Circle
ax.add_patch(Circle((0,0),Rg/1e3,color='r',
                    fill=False,zorder=100))
ax.add_patch(Circle((0,0),Rc/1e3,color='b',
                    ls="--",fill=False,zorder=100))

#Decoración
ax.grid();
ax.set_title(f"v = {v/c}c, B = {Bo} T")
ax.set_xlabel("$x$ [km]");
ax.set_ylabel("$y$ [km]");

fig.tight_layout();

Figura 1.22.

Podemos tambien graficar otras cantidades, por ejemplo el tiempo y el tiempo propio:

In [12]:
ts=solucion[:,0]

fig=plt.figure(figsize=(5,5))
ax=fig.gca()

ax.plot(taus,ts)
ax.plot(taus,taus,'r:')

ax.set_xlabel(f"$\\tau$ [s]");
ax.set_ylabel(f"$t$ [s]");

trange=taus.max()
ax.set_xlim((0,trange))
ax.set_ylim((0,trange))
ax.grid()
fig.tight_layout()

Figura 1.23.

Como la velocidad es constante la relación entre el tiempo de laboratorio y el tiempo propio es $t=\gamma \tau$.