Message Boards Message Boards

5
|
2564 Views
|
2 Replies
|
5 Total Likes
View groups...
Share
Share this post:

Angle between two complex 2-vectors

Posted 1 year ago

Perhaps we all can agree, that mathematical proofs are a limitless source of happiness and holiday cheer, especially if they don't require much use of pencil and paper.

Let me just pose a question, and see if we can prove an answer: What is the angle between two vectors with complex components? Indeed, if we can answer this question for vectors of length 2, by some transformation or another, the same answer applies in arbitrary dimension.

The stumbling point is that the orthogonal group is not well suited to the complex case. However, theory tells us that orthogonal groups are related to SU(2) through commutation relations, and that representations of rotations in arbitrary high dimension can be constructed from SU(2). Mostly only physicists know how to do this, because of Julian Schwinger's report "On Angular Momentum". The many may be happier not going to graduate school, and truth be told, we only need a few basic facts.

The starting place is how to construct the element of SU(2) which takes one vector of the span to the second:

span = {{
    z[1, 1, Re] + I *z[1, 1, Im],
    z[1, 2, Re] + I*z[1, 2, Im]
    }, {
    z[2, 1, Re] + I *z[2, 1, Im],
    z[2, 2, Re] + I*z[2, 2, Im]
    }};


orthoSpan = Conjugate[RotationMatrix[Pi/2] . #] & /@ span;

rotateMatrix = ReplaceAll[Plus[
   Outer[Conjugate[#2]*#1 &, span[[2]], span[[1]], 1],
   Outer[Conjugate[#2]*#1 &, orthoSpan[[2]], orthoSpan[[1]], 1]],
  Conjugate[x_] :> x]

out[]={{(-I z[1, 1, Im] + z[1, 1, Re]) (I z[2, 1, Im] + 
      z[2, 1, Re]) + (-I z[1, 2, Im] - z[1, 2, Re]) (I z[2, 2, Im] - 
      z[2, 2, Re]), (-I z[1, 2, Im] + z[1, 2, Re]) (I z[2, 1, Im] + 
      z[2, 1, Re]) + (I z[1, 1, Im] + z[1, 1, Re]) (I z[2, 2, Im] - 
      z[2, 2, Re])}, {(-I z[1, 2, Im] - z[1, 2, Re]) (-I z[2, 1, Im] +
       z[2, 1, Re]) + (-I z[1, 1, Im] + z[1, 1, Re]) (I z[2, 2, Im] + 
      z[2, 2, Re]), (I z[1, 1, Im] + z[1, 1, Re]) (-I z[2, 1, Im] + 
      z[2, 1, Re]) + (-I z[1, 2, Im] + z[1, 2, Re]) (I z[2, 2, Im] +  z[2, 2, Re])}}

It looks worse than it actually is, as we shall soon see. The strategy for the proof is to derive this matrix another way, which is intrinsically related to the angular parameter of SU(2). But first, let's check some properties of our hypothetical matrix.

The determinant is one, and the inverse is the conjugate transpose:

unitZeros = ReplaceAll[Conjugate[#] . # - 1 & /@ span,
   Conjugate[x_] :> x];
PolynomialMod[Factor[Det[rotateMatrix]], unitZeros]
Out[] = 1

PolynomialMod[Expand[Dot[Transpose[rotateMatrix /. {I -> -I, -I -> I}],
   rotateMatrix]], unitZeros]
Out[]  ={{1, 0}, {0, 1}}

On the second one we wasted a bit of time needing to find a trick, because for some odd reason, the threading behavior doesn't work here:

Conjugate[a + b I]
Conjugate[a b + b c I]

Out[]= Conjugate[a] - I Conjugate[b]
Out[]= Conjugate[a b + I b c] 

Oh well, whatever. These properties we expect to find for any rotation matrix, and also that $2 \cos(\theta) = Tr[M]$, which can easily be computed as:

Expand[Tr[rotateMatrix]] 
Out[] = 2 z[1, 1, Im] z[2, 1, Im] + 2 z[1, 1, Re] z[2, 1, Re] 
               + 2 z[1, 2, Im] z[2, 2, Im] + 2 z[1, 2, Re] z[2, 2, Re]

Look closely, and you can see something quite amazing: $\cos(\theta) = Re[u].Re[v] + Im[u].Im[v]$:

Plus[
 Apply[Dot, span /. {z[_, _, Im] -> 0}],
 Apply[Dot, span /. {z[_, _, Re] -> 0, I -> 1}]
 ]

Out[]= z[1, 1, Im] z[2, 1, Im] + z[1, 1, Re] z[2, 1, Re] 
                   + z[1, 2, Im] z[2, 2, Im] + z[1, 2, Re] z[2, 2, Re]

Now what's even better for the upcoming year of the water rabbit, is that we can extend the proof to get not only $\cos(\theta)$ but also $\sin(\theta)$. First we need to define a set of real, four-dimensional matrices, which effectively look like the Pauli matrices:

PauliMatrix[Range[0, 3]]
Out[]= {{{1, 0}, {0, 1}}, {{0, 1}, {1, 0}}, {{0, -I}, {I, 0}}, {{1,0}, {0, -1}}}

By induction (and after a round of refinement), we find that:

pauliMatrices4x4[
   ] := pauliMatrices4x4[
    ] = With[{
     id2 = IdentityMatrix[2],
     pl2 = I PauliMatrix[2]
     },
    ArrayFlatten[#] & /@ {
      {{id2, 0}, {0, id2}},
      {{0, pl2}, {pl2, 0}},
      {{0, -id2}, {id2, 0}},
      {{pl2, 0}, {0, -pl2}}
      }
    ];

Out[]={ 
           {{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}}, 
           {{0, 0, 0, 1}, {0, 0, -1, 0}, {0, 1, 0, 0}, {-1, 0, 0, 0}}, 
           {{0, 0, -1, 0}, {0, 0, 0, -1}, {1, 0, 0, 0}, {0, 1, 0, 0}}, 
           {{0, 1, 0, 0}, {-1, 0, 0, 0}, {0, 0, 0, -1}, {0, 0, 1, 0}}
       }

These I've never seen before, but they turn out to be useful as follows:

fourvecSpan = Catenate@*ReIm /@ span /. {
   Im[x_] :> 0, Re[x_] :> x
   };

componentsAlt = Map[
  Dot[fourvecSpan[[1]], #, fourvecSpan[[2]]] &, 
  pauliMatrices4x4[]];

rotateMatrixAlt = Dot[componentsAlt, Times[
   PauliMatrix[Range[0, 3]],
   {1, I, I, I}]];

PolynomialMod[componentsAlt . componentsAlt, unitZeros]
Out[] = 1

Expand[rotateMatrixAlt - rotateMatrix]    
Out[ ] = {{0, 0}, {0, 0}}

The first truth value says that $\sin(\theta)$ is the norm of the last three components of the Pauli 4-vector, as it must be! The second set of truth values tells us that the formula $M = I \cos(\theta) + \hat{n}\cdot\hat{\sigma} \sin(\theta)$ can be evaluated using real-valued components of the complex-valued input spanning vectors. This is a nice fact to know, because if we just normalize the imaginary part of the Pauli 4-vector (it's last three components) we get $\hat{n}$, and can then obtain any unit vector in the unit circle of the complex plane defined by the input spanning vectors. This is equivalent to the promised usage:

RotationMatrix[ $\theta$, { $u$,$v$}]

(After a bit more work transforming between bases, and breaking more assumptions. Don't worry, if this memo is convincing enough, it will soon work great!)

Having the $\theta$ parameter is the continuous means to generate SU(2), and it should be good enough without extra rigor, but here it is anyways. The discrete means for generating SU(2) is to apply the addition rules for sine and cosine, which we don't have over the complexes. However, we can easily verify group composition in a numerical test case just by repeatedly dotting the same matrix with itself:

RotationMatrix2x2[span_] := Module[
  {fourvecSpan, components},
  fourvecSpan = Catenate@*ReIm /@ span /. {
     Im[x_] :> 0, Re[x_] :> x
     };
  components = Map[Dot[fourvecSpan[[1]], #, fourvecSpan[[2]]] &,
    pauliMatrices4x4[]];
  Divide[Dot[components, Times[
     PauliMatrix[Range[0, 3]],
     {1, I, I, I}]],
   Apply[Times, Norm /@ span]]
  ]

Table[With[{
   test = (RandomInteger[{-5, 5}, {2, 2, 2}] . {1, I})},
  Expand[Subtract[
    2 (Tr[RotationMatrix2x2[test]]/2)^2 - 1,
    Tr[RotationMatrix2x2[test] . RotationMatrix2x2[test]]/2
    ]]], 10]

Out[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}

Or if numerical tests aren't good enough, we can refer to wise Bill Harter's PSDS Chapter 5, around equation 5.5.6, which says that dotting any two SU(2) matrices with the same $\hat{n}$ vector again produces an SU(2) matrix with the same direction $\hat{n}$. Other than smoothness, That is really the property we need to call $\theta$ a rotation. For smoothness, we can probably let $\theta \rightarrow \delta\theta$, but for now there's one more enticing question to look after:

Can we definie a simple function of the ReIm components of two complex 2-vectors $u$ and $v$ that computes the trigonometric addition of vectors $u$ and $v$ along the unit circle? Does this function have anything to do with induced $4 \times 4$ Pauli matrices we've already seen?

Perhaps one of the winter school students will have an answer --Brad

Let us . . . state, in view of the fact that all knowledge and every pursuit aims at some good, what it is that we say political science aims at and what is the highest of all goods achievable by action. Verbally there is very general agreement; for both the general run of men and people of superior refinement say that it is happiness, and identify living well and doing well with being happy; but with regard to what happiness is they differ, and the many do not give the same account as the wise.

-Aristotle, Nicomachean Ethics

POSTED BY: Brad Klee
2 Replies

It turns out to be relatively easy to define trigonometric addition rules for ReIm four-vectors. Let's start with a simple proof of the property that even makes it possible to have addition rules:

M1 = Dot[{Cos[x1], I c1 Sin[x1], I c2 Sin[x1], I c3 Sin[x1]}, 
   PauliMatrix[Range[0, 3]]];
M2 = Dot[{Cos[x2], I c1 Sin[x2], I c2 Sin[x2], I c3 Sin[x2]}, 
   PauliMatrix[Range[0, 3]]];
M3 = PolynomialMod[
   TrigReduce[M1 . M2], {c1, c2, c3} . {c1, c2, c3} - 1];
Expand@MapThread[
  Tr[M3 . PauliMatrix[#1] #2/2] &, {Range[0, 3], {1, -I, -I, -I}}]

Out[]= {Cos[x1 + x2], c1 Sin[x1 + x2], c2 Sin[x1 + x2], c3 Sin[x1 + x2]}

Now choose a system of coordinates where {1,0} falls on the unit circle, and use {1,0} as the fixed point for the addition rules. Derivation of the 4x4 matrices is programmatic:

v1 = Catenate[ReIm[M1 . {1, 0} ] /. {
     Im[x_] :> 0, Re[x_] :> x
     }];

v2 = Catenate[ReIm[M2 . {1, 0}] /. {
     Im[x_] :> 0, Re[x_] :> x
     }];

 v3 = Expand[M2 . M1 . {1, 0}];

v3b = Expand[Riffle[1/2 (v3 + ReplaceAll[v3, {I -> -I, -I -> I}]),
    -I/2 (v3 - ReplaceAll[v3, {I -> -I, -I -> I}])]];

trigAddRules = 
 Function[comp, Outer[Coefficient[comp, #1*#2] &,
    v1, v2, 1]] /@ v3b

Out[]= {
    {{1, 0, 0, 0}, {0, -1, 0, 0}, {0, 0, -1, 0}, {0, 0, 0, -1}}, 
    {{0, 1, 0, 0}, {1, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}, 
    {{0, 0, 1, 0}, {0, 0, 0, 0}, {1, 0, 0, 0}, {0, 0, 0, 0}}, 
    {{0, 0, 0, 1}, {0, 0, 0, 0}, {0, 0, 0, 0}, {1, 0, 0, 0}}
  }

enter image description here

The proof is complete as follows:

v1 . # . v2 & /@ trigAddRules - v3b
Out[]= {0, 0, 0, 0}

Indeed, the first and third matrices are Pauli matrices when restricting to real numbers (odd indexed rows and columns). Maybe it's obvious that these matrices exist, but I've never seen such things computed before. Anyone else with a textbook reference?

POSTED BY: Brad Klee

enter image description here -- you have earned Featured Contributor Badge enter image description here Your exceptional post has been selected for our editorial column Staff Picks http://wolfr.am/StaffPicks and Your Profile is now distinguished by a Featured Contributor Badge and is displayed on the Featured Contributor Board. Thank you!

POSTED BY: Moderation Team
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract