Lorentz transformations. References
Mathematical PreliminariesA vector is represented as a matrix (column vector) fricas (1) -> Scalar := Expression Integer
Type: Type
fricas vect(x:List Scalar):Matrix Scalar == matrix map(y+->[y], Type: Void
fricas vect [a0, fricas Compiling function vect with type List(Expression(Integer)) -> Matrix(Expression(Integer))
Type: Matrix(Expression(Integer))
Identity fricas ID:=diagonalMatrix([1,
Type: Matrix(Integer)
Verification fricas htrigs2exp == rule cosh(a) == (exp(a)+exp(-a))/2 sinh(a) == (exp(a)-exp(-a))/2 Type: Void
fricas sinhcosh == rule ?c*exp(a)+?c*exp(-a) == 2*c*cosh(a) ?c*exp(a)-?c*exp(-a) == 2*c*sinh(a) ?c*exp(a-b)+?c*exp(b-a) == 2*c*cosh(a-b) ?c*exp(a-b)-?c*exp(b-a) == 2*c*sinh(a-b) Type: Void
fricas expandhtrigs == rule cosh(:x+y) == sinh(x)*sinh(y)+cosh(x)*cosh(y) sinh(:x+y) == cosh(x)*sinh(y)+sinh(x)*cosh(y) cosh(2*x) == 2*cosh(x)^2-1 sinh(2*x) == 2*sinh(x)*cosh(x) Type: Void
fricas expandhtrigs2 == rule cosh(2*x+2*y) == 2*cosh(x+y)^2-1 sinh(2*x+2*y) == 2*sinh(x+y)*cosh(x+y) cosh(2*x-2*y) == 2*cosh(x-y)^2-1 sinh(2*x-2*y) == 2*sinh(x-y)*cosh(x-y) Type: Void
fricas Simplify(x:Scalar):Scalar == htrigs sinhcosh simplify htrigs2exp x Type: Void
fricas possible(x)==subst(x, Type: Void
fricas is?(eq:Equation Scalar):Boolean == (Simplify(lhs(eq)-rhs(eq))=0)::Boolean Type: Void
fricas Is?(eq:Equation(Matrix(Scalar))):Boolean == _ (map(Simplify, Type: Void
Lorentz Form (metric) fricas G:=diagonalMatrix [-1,
Type: Matrix(Integer)
applied to a vector produces a co-vector (represent as a matrix or row vector) fricas g(x) == transpose(x)*G Type: Void
fricas g(vect [a0, fricas Compiling function g with type Matrix(Expression(Integer)) -> Matrix (Expression(Integer))
Type: Matrix(Expression(Integer))
Scalar product fricas dot(x, Type: Void
fricas dot(vect [a0, fricas Compiling function dot with type (Matrix(Expression(Integer)),
Type: Expression(Integer)
Tensor product fricas tensor(x, Type: Void
fricas tensor(vect [a0, fricas Compiling function tensor with type (Matrix(Expression(Integer)),
Type: Matrix(Expression(Integer))
Massive ObjectsA material object (also referred to as an observer) is represented by a time-like 4-vector fricas P:=vect [sqrt(p1^2+p2^2+p3^2+1), Type: Matrix(Expression(Integer))
fricas dot(P,
Type: Expression(Integer)
fricas Q:=vect [sqrt(q1^2+q2^2+q3^2+1), Type: Matrix(Expression(Integer))
fricas R:=vect [sqrt(r1^2+r2^2+r3^2+1), Type: Matrix(Expression(Integer))
fricas S:=1/sqrt(1-s1^2-s2^2-s3^2)*vect [1,
Type: Matrix(Expression(Integer))
fricas dot(S,
Type: Expression(Integer)
fricas T:=1/sqrt(1-t1^2-t2^2-t3^2)*vect [1,
Type: Matrix(Expression(Integer))
fricas U:=vect [cosh(u),
Type: Matrix(Expression(Integer))
fricas simplify dot(U,
Type: Expression(Integer)
fricas V:=vect [cosh(v),
Type: Matrix(Expression(Integer))
fricas Simplify dot(U, fricas Compiling body of rule htrigs2exp to compute value of type Ruleset( Integer, fricas Compiling body of rule sinhcosh to compute value of type Ruleset( Integer, fricas Compiling function Simplify with type Expression(Integer) -> Expression(Integer)
Type: Expression(Integer)
fricas W:=vect [cosh(w),
Type: Matrix(Expression(Integer))
fricas Simplify dot(U,
Type: Expression(Integer)
Observer "at rest" fricas vect [1,
Type: Matrix(Expression(Integer))
fricas dot(%,
Type: Expression(Integer)
Associated with each such vector is the orthogonal 3-d Euclidean subspace Relative VelocityAn object P has a unique relative velocity ω(P,Q) with respect to object Q given by fricas ω(P, Type: Void
fricas ω(P, fricas Compiling function ω with type (Matrix(Expression(Integer)),
Type: Matrix(Expression(Integer))
fricas ω(S,
Type: Matrix(Expression(Integer))
In two dimensions fricas map(x+->Simplify x,
Type: Matrix(Expression(Integer))
fricas vect [cosh(u)/cosh(u-v)-cosh(v),
Type: Matrix(Expression(Integer))
fricas Is?(% = ω(U, fricas Compiling function Is? with type Equation(Matrix(Expression(Integer) )) -> Boolean
Type: Boolean
fricas map(x+->Simplify x,
Type: Matrix(Expression(Integer))
Observer P measures velocity ω(Q,P). ω(Q,P) is space-like fricas dot(ω(P,
Type: Expression(Integer)
and in fricas dot(P,
Type: Expression(Integer)
fricas possible dot(ω(Q, fricas Compiling function possible with type Expression(Integer) -> Expression(Integer)
Type: Expression(Float)
fricas dot(Q,
Type: Expression(Integer)
fricas possible dot(ω(P,
Type: Expression(Float)
Velocity with respect to observer "at rest" fricas ω(vect [u0,
Type: Matrix(Expression(Integer))
fricas ω(R,
Type: Matrix(Expression(Integer))
fricas ω(S,
Type: Matrix(Expression(Integer))
fricas map(Simplify,
Type: Matrix(Expression(Integer))
Non-reciprocal velocities fricas ω(vect [1,
Type: Matrix(Expression(Integer))
fricas ω(vect [1,
Type: Matrix(Expression(Integer))
fricas is?(dot(ω(P, fricas Compiling function is? with type Equation(Expression(Integer)) -> Boolean
Type: Boolean
Lorentz Boostis a linear bijection that preserves and maps orthogonal compliments into each other. fricas L(P, Type: Void
fricas Is?(L(P, fricas Compiling function L with type (Matrix(Expression(Integer)),
Type: Boolean
fricas Is?(L(P,
Type: Boolean
fricas Is?(L(P,
Type: Boolean
fricas Is?(L(P,
Type: Boolean
Most General Lorentz Boost (Oziewicz, 2006)is given by three non-coplanar vectors fricas B(P, fricas ) / ( _ dot(X, Type: Void
fricas Is?(B(P, fricas Compiling function B with type (Matrix(Expression(Integer)),
Type: Boolean
fricas Is?(B(P,
Type: Boolean
fricas Is?(B(P,
Type: Boolean
fricas --Is?(B(P,
Type: Boolean
In two dimensions fricas map(x+->simplify expandhtrigs2 Simplify x, fricas Compiling body of rule expandhtrigs2 to compute value of type Ruleset(Integer,
Type: Matrix(Expression(Integer))
fricas map(x+->simplify expandhtrigs expandhtrigs2 Simplify x, fricas Compiling body of rule expandhtrigs to compute value of type Ruleset (Integer,
Type: Matrix(Expression(Integer))
Composition of two Lorentz boosts is not a Lorentz boost unless all three observers are in the same plane. fricas Is?(L(R,
Type: Boolean
fricas RQ:=a*R+b*Q; Type: Matrix(Expression(Integer))
fricas rq:=solve(dot(RQ,
Type: PositiveInteger?
fricas RQ1:=eval(RQ, Type: Matrix(Expression(Integer))
fricas dot(RQ1,
Type: Expression(Integer)
fricas Is?(L(R,
Type: Boolean
fricas RQ2:=eval(RQ, Type: Matrix(Expression(Integer))
fricas Is?(RQ1=RQ2)
Type: Boolean
fricas dot(RQ2,
Type: Expression(Integer)
fricas Is?(L(R,
Type: Boolean
but the composition does preserve observers and magnitudes fricas LRPQ := L(R, Type: Matrix(Expression(Integer))
fricas Is?(LRPQ*Q = L(R,
Type: Boolean
fricas is?(dot(LRPQ*ω(S,
Type: Boolean
Lorentz boost with respect to observer "at rest" fricas LT:=L(vect [1,
Type: Matrix(Expression(Integer))
fricas map(simplify,
Type: Matrix(Expression(Integer))
Two dimensional Lorentz Transformation fricas matrix [[1/sqrt(1-v'^2),
Type: Matrix(Expression(Integer))
fricas Is?(%=map(x+->eval(x,
Type: Boolean
... --Bill Page, Wed, 09 Oct 2013 23:17:45 +0000 reply SandBox Idempotent Observers
|