|
|
last edited 10 years ago by Bill Page |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | ||
Editor: Bill Page
Time: 2013/09/22 02:27:30 GMT+0 |
||
Note: |
changed: -L(P,Q) == diagonalMatrix([1,1,1,1]) + tensor(P+Q,P+Q)/g(P,Q) - 2*tensor(P,Q) -L(P,R) -L(P,R)*P L(P,Q) == diagonalMatrix([1,1,1,1]) + tensor(P+Q,P+Q)/(1-g(P,Q)) - 2*tensor(P,Q) L(R,P) L(R,P)*R
Lorentz transformations.
A vector is represented as a nx1 matrix (column vector)
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.
vect [a1,a2, a3]
Compiling function vect with type List(Expression(Integer)) -> Matrix(Expression(Integer))
(1) |
Then a row vector is
transpose(vect [a1,a2, a3])
(2) |
Tensor product is
tensor(v,w) == v*transpose(w)
tensor(vect [a1,a2, a3], vect [b1, b2, b3])
Compiling function tensor with type (Matrix(Expression(Integer)),Matrix(Expression(Integer))) -> Matrix(Expression(Integer))
(3) |
Applying the Lorentz form produces a row vector
g(x)==transpose(x)*diagonalMatrix [-1,1, 1, 1]
or a scalar
g(x,y)== (transpose(x)*diagonalMatrix([-1, 1, 1, 1])*y)::EXPR INT
For difficult verifications it is sometimes convenient to replace symbols by random numerical values.
possible(x)==subst(x,map(y+->(y=(random(100) - random(100))), variables x) )
Is?(eq:Equation EXPR INT):Boolean == (lhs(eq)-rhs(eq)=0)::Boolean
Function declaration Is? : Equation(Expression(Integer)) -> Boolean has been added to workspace.
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.
The AlgebraicNumber? domain can test for numerical equality of complicated expressions involving .
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.
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.
An object (also referred to as an obserser) is represented by a time-like 4-vector
P:=vect [sqrt(p1^2+p2^2+p3^2+1),p1, p2, p3];
g(P,P)
Compiling function g with type (Matrix(Expression(Integer)),Matrix( Expression(Integer))) -> Expression(Integer)
(4) |
Q:=vect [sqrt(q1^2+q2^2+q3^2+1),q1, q2, q3];
g(Q,Q)
(5) |
R:=vect [1,0, 0, 0]
(6) |
g(R,R)
(7) |
Associated with each such vector is the orthogonal 3-d Euclidean subspace
An object Q has a unique relative velocity w(P,Q) with respect to object P given by
w(P,Q)==-Q/g(P, Q)-P
Lorentz factor
gamma(v)==1/sqrt(1-g(v,v))
Binary Boost
b(P,v)==gamma(v)*(P+v)
Observer P measures velocity u. u is space-like and in .
u:=w(P,Q);
Compiling function w with type (Matrix(Expression(Integer)),Matrix( Expression(Integer))) -> Matrix(Expression(Integer))
g(P,u)
(8) |
possible(g(u,u))::EXPR Float
Compiling function possible with type Expression(Integer) -> Expression(Integer)
(9) |
L(P,Q) == diagonalMatrix([1, 1, 1, 1]) + tensor(P+Q, P+Q)/(1-g(P, Q)) - 2*tensor(P, Q)
L(R,P)
Compiling function L with type (Matrix(Expression(Integer)),Matrix( Expression(Integer))) -> Matrix(Expression(Integer))
(10) |
L(R,P)*R
(11) |