Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

The Wikipedia page on Rindler coordinates shows a nice example of how a coordinate transformation can be represented in a plot.

They start with two coordinates $T,X$ with $0 < X < \infty,\; -X < T < X$. Then, they introduce two new coordinates $t, x$ by

$\begin{align*}t &= \mathrm{artanh}\left(\frac{T}{X}\right) \\ x &= \sqrt{X^2-T^2}\end{align*}$

From the plot below, it is clear how curves of constant $x$ and constant $t$ run in the old coordinate system:

Coordinate transformation from (T,X) to (t,x)

How could you make a clear plot like this with Mathematica? I would like to include the labels as well.

I guess you need the inverse transformations to express T and X in terms of t and x. I entered them below

T = x Sinh[t]
X = x Cosh[t]
share|improve this question
    
What does t = infinity mean here? As I understand arctan(T/X) runs merely from -1 to 1, and so t from -Pi/4 to Pi/4 ... ? –  BoLe Mar 28 '13 at 13:49
add comment

3 Answers 3

up vote 8 down vote accepted

By ParametricPlot:

ParametricPlot[{x Cosh[t], x Sinh[t]}, {t, -Pi/4, Pi/4}, {x, 0, 4}, 
 PlotRange -> {{0, 1.5}, {-1, 1}}, BoundaryStyle -> Dashed]

mesh lines for Rindler coordinates

or, for fun:

ParametricPlot[{x Cosh[t], x Sinh[t]}, {t, -Pi/4, Pi/4}, {x, 0, 4}, 
PlotRange -> {{0, 1.5}, {-1, 1}}, 
BoundaryStyle -> Directive[Thick, Red, Dashed],
PlotStyle -> Pink, PlotPoints -> 40, 
MeshShading -> {{Pink, Lighter[Red, 0.8]}}, Mesh -> 32, Frame -> False]

another Rindler mesh

share|improve this answer
    
But, where are the labels for the various lines? :) (+1) –  rcollyer Mar 28 '13 at 20:08
add comment
Plot[{
  Table[Tan[t] X, {t, -Pi/4, Pi/4, Pi/16.}],
  Table[sign Sqrt[X^2 - x^2], {x, 0, 5}, {sign, {-1, 1}}]}, {X, 0, 5},
 AspectRatio -> Automatic]

Mathematica graphics

Basic plot only.

share|improve this answer
add comment

There seems to be something wrong with the image linked in the question. In the Wikipedia article, they define the coordinates with a parameter g:

rindlerXT[x_, t_, g_] := {x Cosh[g t], x Sinh[g t]};

But the image appears to be for g = 1/2, not g = 1 as claimed.

First, here is a labeling function. Nothing special -- it seemed convenient to put it in its own place.

labels[g_] := {Table[
    Text[x == x0, rindlerXT[x0, 0.1 x0 + ArcSinh[0.16]/(g x0), g], {0, -0.5}, 
      D[rindlerXT[x, t, g], t] /. {x -> x0, t -> ArcSinh[0.16]/(g x0)}],
    {x0, 0.2, 1, 0.2}],
   Table[Text[t == t0, rindlerXT[Cos[g t0], t0, g], {0, -0.8}, 
      D[rindlerXT[x, t, g], x] /. {x -> Cos[g t0], t -> t0}],
    {t0, -1/g, 1/g}],
   Black, Text[x == 0, {0.16, 0.16}, {0, -0.7}, {1, 1}], 
   Text[t == Infinity, {0.75, 0.75}, {0, -0.7}, {1, 1}],
   Text[t == -Infinity, {0.75, -0.75}, {0, -0.8}, {1, -1}],
   Thick, Arrowheads[{-0.07, 0.07}], 
   Arrow[{{0, 1.19}, {0, 0}, {1.19, 0}}],
   Text[Style["T", Italic, Large], {0, 1.2}, {1.8, 1.5}],
   Text[Style["X", Italic, Large], {1.2, 0}, {1.5, 1.5}]};

I thought I'd show another way to get the grid. I join a couple of larger values of t to the ends of the grid to make sure the curves do not stop short. There are also some extra points in the t direction (constant x) so that the curves look smooth. The grid of points generated by Table conveniently contain the lines we wish to plot.

rindler[g_, extraTPoints_: 3] := 
 Module[{color = Blend[{Red, Magenta}], tLines, xLines},

  xLines = 
   Table[rindlerXT[x, t, g], {x, 0., 1.2, 
     1/20}, {t, ({-10, -5}/g)~Join~
      Range[-Ceiling[4/g], Ceiling[4/g], 1/(8 extraTPoints)]~
      Join~({5, 10}/g)}];
  tLines =(* skip extra points t = -10, -5 and the extra intermediate points *)
   Transpose[xLines][[3 ;; ;; extraTPoints]];

  Graphics[{
    Lighter[color, 0.7],
    Thin, Line[xLines], Line[tLines],
    Thick, Line[xLines[[1 ;; ;; 4]]], 
    Line[tLines[[1 ;; ;; 4]]],
    {Black, Thick, Dashed, Line[{{1.5, -1.5}, {0, 0}, {1.5, 1.5}}]},
    color, labels[g]},

   PlotRange -> {{-0.15, 1.18}, {-1.2, 1.2}}, 
   PlotRangeClipping -> True, Frame -> True, FrameTicks -> None, 
   FrameLabel -> {{None, None},
                  {Row[{"g = ", Sequence @@ If[g == 1, {1}, {"1/", 1/g}]}], None}},
   ImageSize -> 250, BaseStyle -> 13]
  ]

Row[rindler /@ {1, 1/2}, "  "]

Plots of Rindler coordinates with g = 1, 1/2

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.