Last active
May 27, 2020 17:11
-
-
Save jamesamiller/8de0f4dbb8c6a54535df5cb5d91fd631 to your computer and use it in GitHub Desktop.
Plots the worldline of a "test rocket" in the accelerated reference frame of an "observer rocket" (special relativity)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
\documentclass[crop=true, border=10pt]{standalone} | |
\usepackage{comment} | |
\begin{comment} | |
:Title: Motion of another rocket in an accelerated rocket frame | |
:Slug: Accelerated frame | |
:Tags: special relativity | |
:Author: J A Miller, UAH Physics & Astronomy, millerja@uah.edu, 2020/05/18 | |
Worldlines of a test rocket in the accelerated coordinates $\xi$ and $\eta$ of an observer rocket. This illustrates that a constant proper distance requires different accelerations. | |
Figure caption: | |
\caption{The worldlines (\textit{purple lines}) of a second, test rocket in the accelerated reference frame of an observer rocket. The proper acceleration of the observer rocket is $\alpha=1$ and the test rocket is at an initial distance of $4$ away from the observer rocket (in both the inertial and observer rocket frames). The \textit{red dots} are the location of the of the test rocket at test rocket proper times $0$, $5$, $10$, and $15$.} | |
Basic plot style and colors from: | |
https://gist.github.com/mcnees/45b9f53ad371c38ba6f3759df5880fb1 | |
--------------------------------------------------------------------- | |
Background | |
--------------------------------------------------------------------- | |
The equations of motion for an object undergoing uniform proper acceleration $\alpha$ are | |
\begin{equation} | |
\begin{split} | |
x &= \frac{1}{\alpha} \cosh(\alpha \tau) - \frac{1}{\alpha} + x_0 \\ | |
t &= \frac{1}{\alpha} \sinh(\alpha \tau), | |
\end{split} | |
\end{equation} | |
where $\tau$ is the proper time, and $x_0$ is the starting location. | |
Accelerated coordinates can be defined by | |
\begin{equation} | |
\begin{split} | |
\xi &= \qty[ \qty( x - x_0 + \frac{1}{\alpha} )^2 - t^2 ]^{1/2} - \frac{1}{\alpha} \\ | |
\eta &= \frac{1}{\alpha} \tanh^{-1} \frac{t}{x - x_0 + 1/\alpha}. | |
\end{split} | |
\end{equation} | |
When you put the equations of motion into these coordinates, you get $\xi = 0$ and $\eta = \tau$, as you would want. The object stays stationary at $\xi=0$ as the coordinate system rides with it. The quantity $\eta$ is the time coordinate, and equals the proper time. The transformation is only defined for $|t| < x - x_0 + \frac{1}{\alpha}$. | |
We can plot the motion of another rocket, a "test rocket", in the frame of an "observer rocket." Equivalently, these could be the two ends of the same rocket. | |
We see that to maintain a constant proper distance between the rockets (or the rocket ends), the acceleration must vary according to | |
\begin{equaiton} | |
\alpha_R = \frac{\alpha_L}{1 + L_0 \alpha_L}, | |
\end{equation} | |
where $L_0$ is the proper distance between the rockets and R and L denote right and left, respectively. | |
\end{comment} | |
\usepackage{tikz} | |
\usetikzlibrary{arrows.meta} | |
\usepackage{pgfplots} | |
\pgfplotsset{compat=1.16} | |
\usepackage{xcolor} | |
% colors | |
\definecolor{plum}{rgb}{0.36078, 0.20784, 0.4} | |
\definecolor{chameleon}{rgb}{0.30588, 0.60392, 0.023529} | |
\definecolor{cornflower}{rgb}{0.12549, 0.29020, 0.52941} | |
\definecolor{scarlet}{rgb}{0.8, 0, 0} | |
\definecolor{brick}{rgb}{0.64314, 0, 0} | |
\definecolor{sunrise}{rgb}{0.80784, 0.36078, 0} | |
\definecolor{lightblue}{rgb}{0.15,0.35,0.75} | |
% ----------------------- user specifications ------------------------ | |
% proper acceleration of observer rocket | |
\newcommand*{\accel}{1.0} | |
% calculate the inverse of observer rocket acceleration | |
\pgfmathsetmacro{\accelinv}{1/\accel} | |
% initial starting point for the observer rocket | |
\newcommand*{\xinit}{0} % this is $x_0$. | |
% proper acceleration of "test" rocket | |
\newcommand*{\acceltest}{0.2} % this is now reset below to different values | |
% calculate the inverse of test rocket acceleration | |
\pgfmathsetmacro{\accelinvtest}{1/\acceltest} | |
% initial starting point for the test rocket | |
\newcommand*{\xinittest}{4} % this is $x_0$ for the test rocket | |
% define inertial frame location and time for the test rocket as a function of its proper time | |
\pgfkeys{/pgf/declare function={xtest(\tau) = \accelinvtest*cosh(\acceltest*\tau)-\accelinvtest+\xinittest;}} | |
\pgfkeys{/pgf/declare function={ttest(\tau) = \accelinvtest*sinh(\acceltest*\tau);}} | |
% define the accelerated coordinates of the test rocket, as a function of its proper time, | |
% in the frame of the observer rocket | |
\pgfkeys{/pgf/declare function={arctanh(\x) = 0.5*(ln(1+\x)-ln(1-\x));}} | |
\pgfkeys{/pgf/declare function={eta(\tau) = \accelinv*arctanh(ttest(\tau)/(xtest(\tau)-\xinit+\accelinv));}} | |
\pgfkeys{/pgf/declare function={xi(\tau) = sqrt((xtest(\tau)-\xinit+\accelinv)^2 - ttest(\tau)^2)-\accelinv ;}} | |
% Set the point style for the proper time ticks | |
\tikzset{ | |
taudot/.style={circle,draw=scarlet!70,fill=scarlet!20,inner sep=1.5pt} | |
} | |
% ------------------------ begin figure ------------------------------ | |
\begin{document} | |
\begin{tikzpicture}[scale=1.2,domain=-2:9] | |
\tikzstyle{axisarrow} = [-{Latex[inset=0pt,length=7pt]}] | |
% Draw the background grid. | |
\draw [cornflower!30,step=0.2,thin] (-2,-1) grid (9,5); | |
\draw [cornflower!60,step=1.0,thin] (-2,-1) grid (9,5); | |
% Clip everything that falls outside the grid | |
\clip(-2,-1) rectangle (9,5); | |
% Draw Axes | |
\draw[thick,axisarrow] (0,-1) -- (0,5); | |
\node[right,inner sep=0pt] at (0.2,4.7) {$\eta$ (Observer Rocket Worldline)}; | |
\draw[thick,axisarrow] (-2,0) -- (9,0); | |
\node[inner sep=0pt] at (8.5,-0.3) {$\xi$}; | |
% Event horizon | |
\draw[thick,dashed,scarlet] (-\accelinv,-1) -- (-\accelinv,5); | |
\node[rotate=90,inner sep=0pt] at (-\accelinv-0.2,2.5) {Event Horizon of Observer}; | |
% Draw the worldlines of the test rockets | |
% For x_0 = 4 of the test rocket, \acceltest = 1/5 will yield constant proper distance | |
% We can use different maximum proper times depending on the test rocket acceleration | |
\foreach \acceltest in {0.1} | |
{ | |
\renewcommand{\accelinvtest}{1/\acceltest}; | |
\draw[domain=0:6,smooth,variable=\tau,plum,thick,samples=100,axisarrow] | |
plot ({xi(\tau)},{eta(\tau)}); | |
} | |
\foreach \acceltest in {0.3} | |
{ | |
\renewcommand{\accelinvtest}{1/\acceltest}; | |
\draw[domain=0:9,smooth,variable=\tau,plum,thick,samples=100,axisarrow] | |
plot ({xi(\tau)},{eta(\tau)}); | |
} | |
\foreach \acceltest in {0.22} | |
{ | |
\renewcommand{\accelinvtest}{1/\acceltest}; | |
\draw[domain=0:15,smooth,variable=\tau,plum,thick,samples=100,axisarrow] | |
plot ({xi(\tau)},{eta(\tau)}); | |
} | |
% use larger proper times for the correct one | |
\foreach \acceltest in {0.2} | |
{ | |
\renewcommand{\accelinvtest}{1/\acceltest}; | |
\draw[domain=0:15,smooth,variable=\tau,plum,thick,samples=100,axisarrow] | |
plot ({xi(\tau)},{eta(\tau)}); | |
} | |
% Add the location at the text rocket proper times | |
\foreach \tau in {0,5,10,15} | |
{ | |
\node[taudot] at ({xi(\tau)},{eta(\tau)}); | |
} | |
% Some more labels | |
\node[right,inner sep=0pt] at (1.5,1.9) {$\alpha_t = 0.1$}; | |
\node[inner sep=0pt] at (4,3.2) {$\alpha_t= 0.2$}; | |
\node[inner sep=0pt] at (8.2,1.9) {$\alpha_t= 0.3$}; | |
\node[inner sep=0pt] at (7.5,2.9) {$\alpha_t= 0.22$}; | |
\node[right,inner sep=0pt] at (5.0,3.5) {Test Rocket Worldlines}; | |
\end{tikzpicture} | |
\end{document} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Plot using the parameters in the above file.