login  home  contents  what's new  discussion  bug reports help  links  subscribe  changes  refresh  edit

## Special relativity without Lorentz transformations.

Here are some sample computations based on papers by Z. Oziewicz

and the 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]
fricas
Compiling function vect with type List(Expression(Integer)) ->
Matrix(Expression(Integer)) (1)
Type: Matrix(Expression(Integer))

Then a row vector is

fricas
transpose(vect [a1,a2,a3]) (2)
Type: Matrix(Expression(Integer))

Inner product is

fricas
transpose(vect [a1,a2,a3])*vect [b1,b2,b3] (3)
Type: Matrix(Expression(Integer))

and tensor product is

fricas
vect [a1,a2,a3]*transpose(vect [b1,b2,b3]) (4)
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

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) (5)
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) (6)
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) (7)
Type: Expression(Integer)
fricas
possible(g(u,u))::EXPR Float
fricas
Compiling function possible with type Expression(Integer) ->
Expression(Integer) (8)
Type: Expression(Float)

fricas
IsPossible?(gamma(u)=-g(P,Q))
fricas
Compiling function gamma with type Matrix(Expression(Integer)) ->
Expression(Integer)
fricas
Compiling function IsPossible? with type Equation(Expression(Integer
)) -> Boolean (9)
Type: Boolean

u is velocity of object Q

fricas
IsPossible?(g(Q,u)=gamma(u)-1/gamma(u)) (10)
Type: Boolean

Observer Q is u-boost of P

fricas
IsPossible2?(Q=b(P,u))
fricas
Compiling function b with type (Matrix(Expression(Integer)), Matrix(
Expression(Integer))) -> Matrix(Expression(Integer))
fricas
Compiling function IsPossible2? with type Equation(Matrix(Expression
(Integer))) -> Boolean (11)
Type: Boolean

Inverse velocity is measured by Q

fricas
u' := w(Q,P);
Type: Matrix(Expression(Integer))
fricas
g(Q,u') (12)
Type: Expression(Integer)

Inverse velocity is not reciprocal

fricas
IsPossible2?(-u=u') (13)
Type: Boolean

Object P is u'-boost of Q

fricas
IsPossible2?(P=b(Q,u')) (14)
Type: Boolean

Objects P and Q are completely determined by velocities u and u'

fricas
IsPossible2?(P = -1/g(u,u)*(u+u'/gamma(u))) (15)
Type: Boolean
fricas
IsPossible2?(Q = -1/g(u,u)*(u'+u/gamma(u))) (16)
Type: Boolean

The magnitude of the inverse velocity is the same as the velocity

fricas
IsPossible?(g(u,u)=g(u',u')) (17)
Type: Boolean

## Collinear Velocities

Suppose the velocity v of some object L is collinear with reciprocal velocity u': fricas
v := alpha*u';
Type: Matrix(Expression(Integer))
fricas
L := b(Q,v);
Type: Matrix(Expression(Integer))
fricas
Is2?(v=w(Q,L))
fricas
Compiling function Is2? with type Equation(Matrix(Expression(Integer
))) -> Boolean (18)
Type: Boolean

## Composition of collinear velocities

For velocity v collinear with reciprocal velocity u' we have Matolcsi (4.3.3)

fricas
Is2?(w(P,L)=(u-alpha*u)/(1-alpha*g(u,u))) (19)
Type: Boolean

General composition of relative velocities (Oziewicz)

fricas
compose(v,u,u') == ( u + v/gamma(u) - g(v,u')/g(u,u)*(u + u'/gamma(u)) ) / (1-g(v,u'))
Type: Void

fricas
Is2?(w(P,L)=compose(v,u,u'))
fricas
Compiling function compose with type (Matrix(Expression(Integer)),
Matrix(Expression(Integer)), Matrix(Expression(Integer))) ->
Matrix(Expression(Integer)) (20)
Type: Boolean
fricas
IsPossible2?(w(P,L)=compose(w(Q,L),w(P,Q),w(Q,P))) (21)
Type: Boolean

## Associativity

Unlike Einstein addition of velocities, composition (denoted ) of relative velocities is associative: fricas
R:=vect [sqrt(r1^2+r2^2+r3^2+1),r1,r2,r3];
Type: Matrix(Expression(Integer))
fricas
g(R,R) (22)
Type: Expression(Integer)
fricas
S:=vect [sqrt(s1^2+s2^2+s3^2+1),s1,s2,s3];
Type: Matrix(Expression(Integer))
fricas
g(S,S) (23)
Type: Expression(Integer)

Unfortunately Axiom is not able to evaluate all of these in a reasonable amount of time (within the 1 minute wiki limit).

fricas
--IsPossible2?(w(P,R)=compose(w(Q,R),w(P,Q),w(Q,P)))
--IsPossible2?(w(R,P)=compose(w(Q,P),w(R,Q),w(Q,R)))
IsPossible2?(w(Q,S)=compose(w(R,S),w(Q,R),w(R,Q))) (24)
Type: Boolean

fricas
--IsPossible2?(w(P,S)=compose(w(Q,S),w(P,Q),w(Q,P)))
--IsPossible2?(w(P,S)=compose(w(R,S),w(P,R),w(R,P)))
0 (25)
Type: NonNegativeInteger?

 Subject:   Be Bold !! ( 15 subscribers )