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))
Then a row vector is
fricas
transpose(vect [a1,a2,a3,a4])
Type: Matrix(Expression(Integer))
Applying the Lorentz form produces a row vector
fricas
g(x)==transpose(x)*diagonalMatrix [-1,1,1,1]
Type: Void
or a scalar
fricas
g(x,y)== (transpose(x)*diagonalMatrix([-1,1,1,1])*y)::EXPR INT
Type: Void
Tensor product is
fricas
tensor(v,w) == v*g(w)
Type: Void
fricas
tensor(vect [a1,a2,a3,a4], vect [b1,b2,b3,b4])
fricas
Compiling function g with type Matrix(Expression(Integer)) -> Matrix
(Expression(Integer))
fricas
Compiling function tensor with type (Matrix(Expression(Integer)),
Matrix(Expression(Integer))) -> Matrix(Expression(Integer))
Type: Matrix(Expression(Integer))
For difficult verifications it is sometimes convenient to replace
symbols by random numerical values.
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
The AlgebraicNumber? domain can test for numerical equality of complicated
expressions involving .
fricas
IsPossible?(eq:Equation EXPR INT):Boolean == _
(possible(lhs(eq)-rhs(eq)) :: Expression AlgebraicNumber=0)::Boolean
Function declaration IsPossible? : Equation(Expression(Integer)) ->
Boolean has been added to workspace.
Type: Void
fricas
IsPossible2?(eq:Equation(Matrix(EXPR(INT)))):Boolean == _
( map(possible,(lhs(eq)-rhs(eq))) :: Matrix Expression AlgebraicNumber = _
zero(nrows(lhs(eq)),ncols(lhs(eq)))$Matrix Expression AlgebraicNumber )::Boolean
Function declaration IsPossible2? : 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
g(P,P)
fricas
Compiling function g with type (Matrix(Expression(Integer)),Matrix(
Expression(Integer))) -> Expression(Integer)
Type: Expression(Integer)
fricas
Q:=vect [sqrt(q1^2+q2^2+q3^2+1),q1,q2,q3];
Type: Matrix(Expression(Integer))
fricas
g(Q,Q)
Type: Expression(Integer)
fricas
R:=vect [1,0,0,0]
Type: Matrix(Expression(Integer))
fricas
g(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/g(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
g(P,u)
Type: Expression(Integer)
fricas
v:=w(Q,P)
Type: Matrix(Expression(Integer))
fricas
g(Q,v)
Type: Expression(Integer)
fricas
possible(g(u,u))::EXPR Float
fricas
Compiling function possible with type Expression(Integer) ->
Expression(Integer)
Type: Expression(Float)
fricas
L(P,Q) == diagonalMatrix([1,1,1,1]) + tensor(P+Q,P+Q)/(1-g(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
L(P,Q)*u + v
Type: Matrix(Expression(Integer))