Lorentz transformations.
Book by T. Matolcsi
Mathematical Preliminaries
A vector is represented as a nx1 matrix (column vector)
fricas
vect(x:List Expression Integer):Matrix Expression Integer == matrix map(y+->[y],x)
Function declaration vect : List(Expression(Integer)) -> Matrix(
Expression(Integer)) has been added to workspace.
Type: Void
fricas
vect [a1,a2,a3,a4]
fricas
Compiling function vect with type List(Expression(Integer)) ->
Matrix(Expression(Integer))
Type: Matrix(Expression(Integer))
Applying the Lorentz form produces a row vector
fricas
g(x)==transpose(x)*diagonalMatrix [-1,1,1,1]
Type: Void
Then the dual is a row vector is
fricas
g(vect [a1,a2,a3,a4])
fricas
Compiling function g with type Matrix(Expression(Integer)) -> Matrix
(Expression(Integer))
Type: Matrix(Expression(Integer))
And scalar product is
fricas
dot(x,y)== (g(x)*y)::Expression Integer
Type: Void
fricas
dot(vect [a1,a2,a3,a4], vect [b1,b2,b3,b4])
fricas
Compiling function dot with type (Matrix(Expression(Integer)),Matrix
(Expression(Integer))) -> Expression(Integer)
Type: Expression(Integer)
Tensor product is
fricas
tensor(x,y) == x*g(y)
Type: Void
fricas
tensor(vect [a1,a2,a3,a4], vect [b1,b2,b3,b4])
fricas
Compiling function tensor with type (Matrix(Expression(Integer)),
Matrix(Expression(Integer))) -> Matrix(Expression(Integer))
Type: Matrix(Expression(Integer))
Verification
fricas
possible(x)==subst(x, map(y+->(y=(random(100) - random(100))),variables x) )
Type: Void
fricas
Is?(eq:Equation EXPR INT):Boolean == (lhs(eq)-rhs(eq)=0)::Boolean
Function declaration Is? : Equation(Expression(Integer)) -> Boolean
has been added to workspace.
Type: Void
fricas
Is2?(eq:Equation(Matrix(EXPR(INT)))):Boolean == _
( (lhs(eq)-rhs(eq)) :: Matrix Expression AlgebraicNumber = _
zero(nrows(lhs(eq)),ncols(lhs(eq)))$Matrix Expression AlgebraicNumber )::Boolean
Function declaration Is2? : Equation(Matrix(Expression(Integer)))
-> Boolean has been added to workspace.
Type: Void
Massive Objects
An object (also referred to as an obserser) is represented by a
time-like 4-vector
fricas
P:=vect [sqrt(p1^2+p2^2+p3^2+1),p1,p2,p3];
Type: Matrix(Expression(Integer))
fricas
dot(P,P)
Type: Expression(Integer)
fricas
Q:=vect [sqrt(q1^2+q2^2+q3^2+1),q1,q2,q3];
Type: Matrix(Expression(Integer))
fricas
dot(Q,Q)
Type: Expression(Integer)
fricas
R:=vect [1,0,0,0]
Type: Matrix(Expression(Integer))
fricas
dot(R,R)
Type: Expression(Integer)
Associated with each such vector is the orthogonal 3-d Euclidean subspace
Relative Velocity
An object Q has a unique relative velocity w(P,Q) with respect
to object P given by
fricas
w(P,Q)==-Q/dot(P,Q)-P
Type: Void
Lorentz factor
fricas
gamma(v)==1/sqrt(1-g(v,v))
Type: Void
Binary Boost
fricas
b(P,v)==gamma(v)*(P+v)
Type: Void
Observer P measures velocity u. u is space-like and in .
fricas
u:=w(P,Q);
fricas
Compiling function w with type (Matrix(Expression(Integer)),Matrix(
Expression(Integer))) -> Matrix(Expression(Integer))
Type: Matrix(Expression(Integer))
fricas
dot(P,u)
Type: Expression(Integer)
fricas
possible dot(u,u)::EXPR Float
fricas
Compiling function possible with type Expression(Integer) ->
Expression(Integer)
Type: Expression(Float)
fricas
v:=w(Q,P);
Type: Matrix(Expression(Integer))
fricas
dot(Q,v)
Type: Expression(Integer)
fricas
possible dot(v,v)::EXPR Float
Type: Expression(Float)
fricas
L(P,Q) == diagonalMatrix([1,1,1,1]) + tensor(P+Q,P+Q)/(1-dot(P,Q)) - 2*tensor(P,Q)
Type: Void
fricas
L(P,P)
fricas
Compiling function L with type (Matrix(Expression(Integer)),Matrix(
Expression(Integer))) -> Matrix(Expression(Integer))
Type: Matrix(Expression(Integer))
fricas
L(P,Q)*Q-P
Type: Matrix(Expression(Integer))
fricas
L(R,P)
Type: Matrix(Expression(Integer))
fricas
map(x+->possible(x)::EXPR Float,L(P,Q)*u + v)
Type: Matrix(Expression(Float))