Gyr function
gyr.Rd
Relativistic addition of three velocities
Usage
gyr(u, v, x)
gyr.a(u, v, x)
gyrfun(u, v)
Details
Function gyr(u,v,x)
returns the three-vector
\(\mathrm{gyr}[u,v]x\).
Function gyrfun(u,v)
returns a function that returns a
three-vector; see examples.
The speed of light (1 by default) is not used directly by these
functions; set it with sol()
.
References
Ungar 2006. “Thomas precession: a kinematic effect of the algebra of Einstein's velocity addition law. Comments on ‘Deriving relativistic momentum and energy: I. Three-dimensional case’”. European Journal of Physics, 27:L17-L20.
Sbitneva 2001. “Nonassociative geometry of special relativity”. International Journal of Theoretical Physics, volume 40, number 1, pages 359–362
Note
Function gyr()
is slightly faster than gyr.a()
, which is
included for pedagogical reasons.
Function gyr()
is simply
add3(neg3(add3(u,v)),add3(u,add3(v,x)))
while function gyr.a()
uses the slower but more transparent
idiom
-(u+v) + (u+(v+x))
Examples
u <- r3vel(10)
v <- r3vel(10)
w <- r3vel(10)
x <- as.3vel(c(0.4,0.1,-0.5))
y <- as.3vel(c(0.1,0.2,-0.7))
z <- as.3vel(c(0.2,0.3,-0.1))
gyr(u,v,x) # gyr[u,v]x
#> A vector of three-velocities (speed of light = 1)
#> x y z
#> [1,] 0.29688244 -0.284585217 -0.5008713
#> [2,] 0.36875817 0.065856906 -0.5288481
#> [3,] 0.53155065 0.074581061 -0.3631688
#> [4,] -0.04404694 -0.175241426 -0.6223747
#> [5,] 0.38537036 0.006363217 -0.5210079
#> [6,] 0.47435109 0.170964952 -0.4071388
#> [7,] 0.20106734 0.338903650 -0.5145058
#> [8,] -0.10634811 -0.387125922 -0.5087471
#> [9,] 0.20797919 0.015319935 -0.6136041
#> [10,] 0.45819629 -0.136356740 -0.4375649
f <- gyrfun(u,v)
g <- gyrfun(v,u)
f(x)
#> A vector of three-velocities (speed of light = 1)
#> x y z
#> [1,] 0.29688244 -0.284585217 -0.5008713
#> [2,] 0.36875817 0.065856906 -0.5288481
#> [3,] 0.53155065 0.074581061 -0.3631688
#> [4,] -0.04404694 -0.175241426 -0.6223747
#> [5,] 0.38537036 0.006363217 -0.5210079
#> [6,] 0.47435109 0.170964952 -0.4071388
#> [7,] 0.20106734 0.338903650 -0.5145058
#> [8,] -0.10634811 -0.387125922 -0.5087471
#> [9,] 0.20797919 0.015319935 -0.6136041
#> [10,] 0.45819629 -0.136356740 -0.4375649
f(r3vel(10))
#> A vector of three-velocities (speed of light = 1)
#> x y z
#> [1,] 0.07255247 -0.009937689 -0.97804879
#> [2,] -0.05467681 0.171111420 -0.87218568
#> [3,] 0.08386887 0.785488929 0.08851038
#> [4,] 0.41152071 0.404793224 -0.56714449
#> [5,] 0.32568173 0.407708661 0.36527154
#> [6,] 0.55753999 -0.309549737 -0.62490156
#> [7,] 0.19213693 -0.754186347 -0.61085947
#> [8,] -0.69261374 -0.233064131 0.47417197
#> [9,] -0.14808868 -0.914166267 0.03806476
#> [10,] 0.16215162 0.032779754 -0.38423240
f(g(x)) - x # zero, by eqn 9
#> A vector of three-velocities (speed of light = 1)
#> x y z
#> [1,] 2.320940e-15 7.393511e-15 -5.742533e-16
#> [2,] 2.919121e-15 -6.705604e-15 -1.043227e-14
#> [3,] -2.078079e-13 -9.932787e-14 -2.452540e-14
#> [4,] -1.177219e-14 -1.433240e-14 1.086296e-14
#> [5,] -5.981805e-16 -6.041623e-16 -2.392722e-17
#> [6,] -1.028870e-15 -1.130561e-15 1.603124e-15
#> [7,] -3.349811e-16 -1.196361e-17 2.153450e-16
#> [8,] -3.100489e-13 -6.743349e-13 -8.060363e-13
#> [9,] 2.464504e-15 3.050721e-16 -1.890250e-15
#> [10,] -3.947991e-15 2.841357e-15 7.178166e-17
g(f(x)) - x # zero, by eqn 9
#> A vector of three-velocities (speed of light = 1)
#> x y z
#> [1,] -2.105595e-15 -1.205932e-14 -1.272928e-14
#> [2,] 5.263988e-15 -9.618743e-15 -1.004943e-14
#> [3,] -1.520814e-13 -5.740738e-14 -2.316155e-14
#> [4,] -2.608067e-14 -3.953973e-15 9.499106e-15
#> [5,] -9.570888e-17 -9.570888e-17 -2.871266e-16
#> [6,] 4.067627e-16 4.665808e-16 2.153450e-16
#> [7,] -5.981805e-16 -5.981805e-18 4.067627e-16
#> [8,] 1.237994e-13 4.074626e-13 -5.915527e-13
#> [9,] 7.895983e-16 2.691812e-16 -5.024716e-16
#> [10,] 3.589083e-16 3.002866e-15 -2.249159e-15
(x+y) - f(y+x) # zero by eqn 10
#> A vector of three-velocities (speed of light = 1)
#> x y z
#> [1,] 0.441410083 0.70243973 -0.47007056
#> [2,] 0.438160812 -0.02483539 0.08199839
#> [3,] -0.280162799 -0.29800937 -0.50249057
#> [4,] 0.786121767 0.36245653 -0.42410272
#> [5,] 0.386826527 0.31030591 0.09773939
#> [6,] 0.004981965 -0.37368903 -0.20381558
#> [7,] 0.715022430 -0.35065032 -0.39790221
#> [8,] 0.607567474 0.47310663 -0.61800986
#> [9,] 0.786071516 0.10098613 -0.07005284
#> [10,] -0.131355795 0.43315800 -0.10110650
(u+(v+w)) - ((u+v)+f(w)) # zero by eqn 11
#> A vector of three-velocities (speed of light = 1)
#> x y z
#> [1,] 0.000000e+00 0.000000e+00 4.109056e-13
#> [2,] 1.804276e-14 1.443421e-13 1.443421e-13
#> [3,] 4.665010e-14 2.332505e-14 4.665010e-14
#> [4,] 1.514007e-14 1.514007e-14 -5.677528e-15
#> [5,] -1.058779e-15 -2.117558e-15 0.000000e+00
#> [6,] 1.216292e-16 4.865166e-16 0.000000e+00
#> [7,] 0.000000e+00 4.918352e-16 -6.147940e-17
#> [8,] 0.000000e+00 0.000000e+00 0.000000e+00
#> [9,] 0.000000e+00 0.000000e+00 -4.753304e-16
#> [10,] 0.000000e+00 0.000000e+00 -1.493291e-16
# Following taken from Sbitneva 2001:
rbind(x+(y+(x+z)) , (x+(y+x))+z) # left Bol property
#> [,1] [,2] [,3]
#> [1,] 0.4894115 0.2314344 -0.8300767
#> [2,] 0.4894115 0.2314344 -0.8300767
rbind((x+y)+(x+y) , x+(y+(y+x))) # left Bruck property
#> [,1] [,2] [,3]
#> [1,] 0.432766 0.209512 -0.8738679
#> [2,] 0.432766 0.209512 -0.8738679
sol(299792458) # speed of light in SI
#> [1] 299792458
as.3vel(c(1000,3000,1000)) + as.3vel(c(1000,3000,1000))
#> A vector of three-velocities (speed of light = 299792458)
#> x y z
#> [1,] 2000 6000 2000
## should be close to Galilean result
sol(1) # revert to default c=1
#> [1] 1