The PauliMatrix is a square matrix which can be represented by a linear combination of basis matrices.
I'm not sure if this is the best name as I think this is a bit more general than the matrices that arise in Pauli's treatment of spin in quantum mechanics?
One application of this is to find matrix representation isomorphic to a given Clifford Algebra.
There are two reasons that make this useful:
- It gives a completely independent method of calculating the Clifford product which can be used to check the multiplication in the CliffordAlgebra domain and more importantly,
- It allows us to calculate the CliffordAlgebra multiplicative inverse which would be difficult using other methods.
(1) -> P := PauliMatrix(Integer,2,2) (1) PauliMatrix(Integer,2,2) Type: Type (2) -> a := matrix([[1,2],[3,4]])$P +1 2+ (2) | | +3 4+ Type: PauliMatrix(Integer,2,2) (3) -> a*a +7 10+ (3) | | +15 22+ Type: PauliMatrix(Integer,2,2) (4) ->
Rafal Ablamowicz method: (Also see Pertti Lounesto 2nd ed P225) A matrix will itself satisfy the characteristic polynomial equation obeyed by its own eigenvalues and that therefore the equivalent Clifford number will also obey the same characteristic equation
det(A - λ I) = 0
where
- A = matrix
- λ = eigenvalues
- I = identity matrix
Example 1 - Two Dimensional Case
The bilinear form is:
a11 | a12 |
a21 | a22 |
m1*m2 = m1 /\ m2 + bilinear(m1,m2)
m1*m1 = m1 /\ m1 + bilinear(m1,m1) = bilinear(m1,m1)
(1) -> )library CLIF CliffordAlgebra is now explicitly exposed in frame frame1 CliffordAlgebra will be automatically loaded when needed from /home/martin/CLIF.NRLIB/CLIF (1)->B:=CliffordAlgebra(2,Expression(Fraction(Integer)),[[a1,a2],[a3,a4]]) (1) CliffordAlgebra(2,Expression(Fraction(Integer)),[[a1,a2],[a3,a4]]) Type: Type (2) -> C:B := multivector[c1,c2,c3,c4] (2) c1 + c2 e + c3 e + c4 e e 1 2 1 2 Type: CliffordAlgebra(2,Expression(Fraction(Integer)),[[a1,a2],[a3,a4]]) (3) -> C*C (3) 2 2 2 2 (- a1 a4 + a2 a3)c4 + a4 c3 + (a3 + a2)c2 c3 + a1 c2 + c1 + ((a3 - a2)c2 c4 + 2c1 c2)e + ((a3 - a2)c3 c4 + 2c1 c3)e 1 2 + 2 ((a3 - a2)c4 + 2c1 c4)e e 1 2 Type: CliffordAlgebra(2,Expression(Fraction(Integer)),[[a1,a2],[a3,a4]]) (4) ->
:
a11 = 1 | a12 = 0 |
a21 = 0 | a22 = 1 |
(1) -> )library CLIF CliffordAlgebra is now explicitly exposed in frame frame1 CliffordAlgebra will be automatically loaded when needed from /home/martin/CLIF.NRLIB/CLIF (1) -> B := CliffordAlgebra(2,Expression(Fraction(Integer)),[[1,0],[0,1]]) (1) CliffordAlgebra(2,Expression(Fraction(Integer)),[[1,0],[0,1]]) Type: Type (2) -> C:B := multivector[c1,c2,c3,c4] (2) c1 + c2 e + c3 e + c4 e e 1 2 1 2 Type: CliffordAlgebra(2,Expression(Fraction(Integer)),[[1,0],[0,1]]) (3) -> C*C 2 2 2 2 (3) - c4 + c3 + c2 + c1 + 2c1 c2 e + 2c1 c3 e + 2c1 c4 e e 1 2 1 2 Type: CliffordAlgebra(2,Expression(Fraction(Integer)),[[1,0],[0,1]]) (4) ->
c1 = - c4² + c3² + c2² + c1²
c2 = 2c1 c2
c3 = 2c1 c3
c4 = 2c1 c4
so:
c1 = 1/2
1/4 = - c4² + c3² + c2²
We need to find primitive idempotent (it squares to itself). So an idempotent is:
ƒ=½(1+e1)
because:
ƒ=ƒ²
since:
ƒ²= ¼(1+e1)(1+e1) = ¼(1 + 2e1+ e1²) = ¼(2e1+ 2e1) =½(1+e1) = ƒ
so if we take ƒ as the first base, to get the other bases we take all combinations:
ƒ1 =ƒ=½(1+e1)
ƒ2 =e2ƒ = ½e2(1+e1) = ½(1- e1)e2
ƒ3 =ƒe2 = ½(1+e1) e2
ƒ4 =e2ƒe2 = ½ e2(1+e1) e2 = ½ (1-e1)
A ƒ = |
|
= |
|
ƒ |
Converting Instances
|
= m1 |
|
+ m2 |
|
+ m3 |
|
+ m4 |
|
|
= |
|
|
= |
|
|
= |
|
|
Compute the inverse using the coefficients from the polynomial.
Pauli Matrix
For two dimensions the Pauli matricies would be:
b1 := matrix[[1,0],[0,-1]]
b2 := matrix[[0,1],[1,0]]
These square to 1:
(3) -> b1*b1 +1 0+ (3) | | +0 1+ Type: Matrix(Integer) (4) -> b2*b2 +1 0+ (4) | | +0 1+ Type: Matrix(Integer)
For three dimensions the Pauli matricies would be:
b1 := matrix[[1,0],[0,1]] b2 := matrix[[1,0],[0,-1]] b3 := matrix[[0,1],[1,0]] b4 := matrix[[0,%i],[-%i,0]]
Which square to one:
(5) -> b1*b1 +1 0+ (5) | | +0 1+ Type: Matrix(Integer) (6) -> b2*b2 +1 0+ (6) | | +0 1+ Type: Matrix(Integer) (7) -> b3*b3 +1 0+ (7) | | +0 1+ Type: Matrix(Integer) (13) -> b4*b4 +1 0+ (13) | | +0 1+ Type: Matrix(Complex(Integer))
Power Sets
A set S, the power set (or powerset) of S, written P(S) or 2S, is the set of all subsets of S, including the empty set and S itself.
(1) -> P :=PauliMatrix(2,Float,[matrix[[1,0],[0,-1]],matrix[[0,1],[1,0]]]) (1) PauliMatrix(2,Float,[MATRIX,MATRIX]) Type: Type (2) -> localPowerSets(1)$P (2) [[1],[]] Type: List(List(PositiveInteger)) (3) -> localPowerSets(2)$P (3) [[2],[2,1],[1],[]] Type: List(List(PositiveInteger)) (4) -> localPowerSets(3)$P (4) [[3],[3,1],[3,2,1],[3,2],[2],[2,1],[1],[]] Type: List(List(PositiveInteger)) (5) -> localPowerSets(4)$P (5) [[4], [4,1], [4,2,1], [4,2], [4,3,2], [4,3,2,1], [4,3,1], [4,3], [3], [3,1],[3,2,1], [3,2], [2], [2,1], [1], []] Type: List(List(PositiveInteger)) (6) ->
Discussion
See this thread on FriCAS forum.