Image:Animated Lorentz Transformation.gif

From Wikipedia, the free encyclopedia

Contents

[edit] Summary

Author: Jonathan Doolin (Myself)

This GIF animation was created with Mathematica 5.1

The Lorentz Transformation is capable of intelligible expression in only one or a limited number of ways, but if this particular animation is copied, I'd just as soon be credited, so tag with CC-by-sa 2.5.

This image was motivated by problem set 1 in "A first course in general relativity" by Bernard Schutz, and by Andrew Hamilton's "Spacetime Wheel" at http://casa.colorado.edu/~ajsh/sr/wheel.html

The line of dots that cross the horizontal axis represent events that appear simultaneous in one of the reference frames. The lines parallel to these (green if you look closely) are lines of constant time, (lines of simultaneity) in that original frame.

The line of dots that cross the vertical axis are events which occur in the same place at different times in the same reference frame. The lines parallel to these (a little bluish, if you look closely) are lines of constant position, representing the positions of stationary objects in the original frame. These lines are also known as worldlines.

The animation shows when and where those events would occur from the reference of other frames.

The hyperbolic arcs merely show the arcs of where different observers at the origin would observe the events denoted by the large dots.

The diagonals represent the speed of light which never changes.


[edit] Mathematica 5.1 Code

To my great surprise this works! Just copy and paste this code directly into Mathematica 5.1. There may be some extra stuff in here, too, and I don't think I have the line in here that turns it into a gif image.

\!\(\(SetOptions[ParametricPlot, AspectRatio -> 1\/GoldenRatio, Axes -> Automatic, AxesLabel -> None, AxesOrigin -> Automatic, AxesStyle -> Automatic, Background -> Automatic, ColorOutput -> Automatic, Compiled -> True, DefaultColor -> Automatic, DefaultFont \ :> $DefaultFont, DisplayFunction :> $DisplayFunction, Epilog -> {}, \ FormatType :> $FormatType, Frame -> False, FrameLabel -> None, FrameStyle -> Automatic, FrameTicks -> Automatic, GridLines -> None, ImageSize -> Automatic, MaxBend -> 10.`, PlotDivision -> 30.`, PlotLabel -> None, PlotPoints -> 25, \ PlotRange -> Automatic, PlotRegion -> Automatic, PlotStyle -> Automatic, Prolog -> {}, RotateLabel -> True, TextStyle :> $TextStyle, Ticks -> Automatic];\)\ \[IndentingNewLine] \(Clear["\<Global`*\>"];\)\[IndentingNewLine] \(setScale[x0_, x1_, y0_, y1_, h_] := SetOptions[ParametricPlot, PlotRange -> {{x0, x1}, {y0, y1}}, AspectRatio -> \(y1 - y0\)\/\(x1 - x0\), ImageSize -> {h/\(\(y1 - \ y0\)\/\(x1 - x0\)\), h}];\)\[IndentingNewLine] \(setColor[r_, g_, b_, t_] := SetOptions[ParametricPlot, PlotStyle -> {RGBColor[r/8, g/8, b/ 8], Thickness[t]}];\)\[IndentingNewLine] \(SetOptions[ParametricPlot, DisplayFunction -> Identity];\)\ \[IndentingNewLine] \(out = 11;\)\[IndentingNewLine] setScale[\(-out\), out, \(-out\), out, 300]\[IndentingNewLine] \(l1 = ParametricPlot[{t, t}, {t, \(-10\), 10}];\)\[IndentingNewLine] \(\(l2 = ParametricPlot[{\(-t\), t}, { t, \(-10\), 10}];\)\(\[IndentingNewLine]\) \)\[IndentingNewLine] \(wl[x0_, t0_, v_] := ParametricPlot[{x0 + v*t, t0 + t}, {t, \(-10\), 10}, PlotStyle -> {RGBColor[1/8, 1/8, 4/8], Thickness[ \ .01]}];\)\[IndentingNewLine] \(wr[x0_, t0_, v_] := ParametricPlot[{x0 + x, t0 + v*x}, { x, \(-10\), 10}, PlotStyle -> {RGBColor[1/8, 4/8, 1/ 8], Thickness[ .01]}];\)\[IndentingNewLine] future[n_] := ParametricPlot[{ x, \@\(x\^2 + n\^2\)}, {x, \(-10\), 10}, PlotStyle -> { RGBColor[6/8, 0/8, 6/8], Thickness[ .01]}]\[IndentingNewLine] past[n_] := ParametricPlot[{x, \(-\@\(x\^2 + n\^2\)\)}, {x, \(-10\), 10}, PlotStyle -> { RGBColor[6/8, 0/8, 6/8], Thickness[ .01]}]\[IndentingNewLine] right[n_] := ParametricPlot[{\@\(t\^2 + n\^2\), t}, {t, \(-10\), 10}, \ PlotStyle -> {RGBColor[6/8, 0/8, 0/8], Thickness[ .01]}]\[IndentingNewLine] left[n_] := ParametricPlot[{\(-\@\(t\^2 + n\^2\)\), t}, {t, \(-10\), 10}, PlotStyle -> {RGBColor[6/8, 0/8, 0/8], \ Thickness[ .01]}]\[IndentingNewLine] futureEvent[x0_, y0_, v_, t_] := {x0 + \(v*t\)\/\@\(1 - v\^2\), y0 + t\/\@\(1 - v\^2\)}\[IndentingNewLine] rightEvent[x0_, y0_, v_, x_] := {x0 + x\/\@\(1 - v\^2\), y0 + \(v\ x\)\/\@\(1 - v\^2\)}\[IndentingNewLine] \(futureSpace[v_, t_] := \(v*t\)\/\@\(1 - v\^2\);\)\[IndentingNewLine] \(futureTime[v_, t_] := t\/\@\(1 - v\^2\);\)\[IndentingNewLine] \(rightSpace[v_, x_] := x\/\@\(1 - v\^2\);\)\[IndentingNewLine] \(\(rightTime[v_, x_] := \(v\ x\)\/\@\(1 - v\^2\);\)\(\[IndentingNewLine]\) \)\[IndentingNewLine] "\<(a) World line of O's clock at x=1m; red:\>"\[IndentingNewLine] \(setColor[8, 0, 0, .001];\)\[IndentingNewLine] \(\(p3a = ParametricPlot[{1, t}, {t, \(-10\), 10}];\)\(\[IndentingNewLine]\) \)\[IndentingNewLine] "\<(b) World line of Particle Moving at .1c from (.5,0); green:\>"\ \[IndentingNewLine] \(setColor[0, 6, 0, .001];\)\[IndentingNewLine] \(\(p3b = wl[0, 0, .1];\)\(\[IndentingNewLine]\) \)\[IndentingNewLine] "\<(c) World line and world region of particle moving at .5c from (0,0); blue:\>"\[IndentingNewLine] \(setColor[0, 0, 8, .001];\)\[IndentingNewLine] \(p3cwl = wl[0, 0, .5];\)\[IndentingNewLine] \(setColor[0, 0, 6, .001];\)\[IndentingNewLine] \(p3cwr = wr[0, 0, .5];\)\[IndentingNewLine] \(\(Show[l1, l2, p3a, p3b, p3cwl, p3cwr, DisplayFunction -> \ $DisplayFunction];\)\(\[IndentingNewLine]\) \)\[IndentingNewLine] \*"\"\<(d) Locus of events whose interval from the origin is 1 secom. One secom is the amount an object would age if it moved at a steady pace from the origin to the location of the event. Since the author insists on making c unitless, I am creating the unit 'secom' to be the time it takes light to travel one meter. It \ is tiny, 3*\!\(10\^8\)secom = 1 second. (blue)\>\""\[IndentingNewLine] "\<(e) Locus of events whose interval from the origin is 1 meter. A 1 \ meter interval between two events means there is some observer where the two \ events occur simultaneously and one meter apart. (red)\>"\[IndentingNewLine] \(p3df = future[1];\)\[IndentingNewLine] \(p3dp = past[1];\)\[IndentingNewLine] \(setColor[7, 0, 0, .001];\)\[IndentingNewLine] \(p4el = left[1];\)\[IndentingNewLine] \(p4er = right[1];\)\[IndentingNewLine] \(Show[l1, l2, p3df, p3dp, p4el, p4er, DisplayFunction -> $DisplayFunction];\)\[IndentingNewLine] \(SetOptions[ListPlot, DisplayFunction -> Identity];\)\[IndentingNewLine] \(tTicks[ v_] := ListPlot[Table[futureEvent[0, 0, v, t], {t, \(-10\), 10, \ 1}], PlotStyle -> PointSize[0.03]];\)\[IndentingNewLine] \(xTicks[v_] := ListPlot[Table[rightEvent[0, 0, v, x], {x, \(-10\), 10, 1}], PlotStyle -> PointSize[0.03]];\)\[IndentingNewLine] Layers := Join[Table[future[n], {n, \(-10\), 10}], Table[past[n], { n, \(-10\), 10}], Table[left[n], {n, \(-10\), 10}], Table[right[n], {n, \(-10\), 10}]]\[IndentingNewLine] \(Show[l1, l2, xTicks[ .5], tTicks[ .5], p3cwl, p3cwr, Layers, DisplayFunction -> $DisplayFunction];\)\[IndentingNewLine] wRegions[v_] := Table[wr[futureSpace[v, t], futureTime[v, t], v], {t, \(-10\), 10}]\[IndentingNewLine] wLines[v_] := Table[wl[rightSpace[v, x], rightTime[v, x], v], {x, \(-10\), 10}]\[IndentingNewLine] \(vel[p_] := p\/\@\(p\^2 + 1\);\)\[IndentingNewLine] "\<Hello!\>"\[IndentingNewLine] \(Table[Show[wLines[vel[p]], wRegions[vel[p]], l1, l2, xTicks[vel[p]], tTicks[vel[p]], Layers, DisplayFunction -> $DisplayFunction], {p, \(-3\), 3, .05}];\)\[IndentingNewLine] \)

[edit] Licensing

[edit] Other versions

Single frames

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeDimensionsUserComment
current19:13, 5 August 2006300×300 (2.41 MB)JDoolin (Talk | contribs) (Reverted to earlier revision)
19:11, 5 August 2006300×300 (2.35 MB)JDoolin (Talk | contribs) (Reverted to earlier revision)
07:19, 28 June 2006300×300 (2.41 MB)Danielkwalsh (Talk | contribs) (The original author of this gif image is Jonathan Doolin, and I, Daniel Walsh, have made it to repeat indefinitely so that an individual trying to understand the meaning of the animation can take more than one cycle to study it.)
00:52, 13 May 2006300×300 (2.35 MB)JDoolin (Talk | contribs) (Author: Jonathan Doolin (Myself) GIF animation created with Mathematica 5.1 This idea is capable of intelligible expression in only one or a limited number of ways, but if this particular image is used, I'd just as soon be credited, so tag with CC-by-sa )

The following file is a duplicate of this file:

The following pages on the English Wikipedia link to this file (pages on other projects are not listed):