Spiegelungen

A = {{Cos[α], 
          Sin[α]}, {Sin[α], -Cos[α]}}

Eigenwerte und Eigenvektoren

sys = Eigensystem[A]

zugehörige Diagonalmatrix

diag = 
      Table[If[j == k, sys[[1, k]], 0], {j, 2}, {k, 2}]

und die Eigenvektoren liefern die Transformationsmatrix

B = Transpose[sys[[2]]]

Inverse[B]

Inverse[B] . A . B

Simplify[%]

Hermitesche und unitäre Matrizen

Skalarprodukt[a_, 
        b_] := (∑_(k = 1)^(Length[a]))a[[k]]*
          Conjugate[b[[k]]]

Länge[a_] := (Sqrt[Skalarprodukt])[a, a]

Beispiel 1: Eine unitäre Matrix

Wir benutzen das Gram-Schmidtsche Orthonormalisierungsverfahren aus dem letzten Semester

Clear[GramSchmidt]
GramSchmidt[A__] := 
      Module[{a, b, e, k, 
          l}, 
a = {A}; 
Do[
b[l] = 
            a[[l]] - (∑_(k = 1)^(l - 1))(a[[l]] . e[k])*
                  e[k]; 
e[l] = 
            b[l]/Länge[b[l]], {l, 1, 
            Length[a]}]; 
Table[
          e[k],  {k, 1, Length[a]}]
]

um die Vektoren {1,1,0}, {i,0,0} und {0,0,1} zu orthonormalisieren. Dies liefert die unitäre Matrix

A = GramSchmidt[{1, 1, 0}, {I, 0, 0}, {0, 0, 1}]

Also ist

Inverse[A] == Conjugate[Transpose[A]]

Inverse[A]

A hat eine Determinante vom Betrag 1

Det[A]

und das charakteristische Polynom

CharacteristicPolynomial[A, λ]

sowie die Eigenwerte

EW = Eigenvalues[A] // ComplexExpand

Wir testen, ob die Eigenwerte den Betrag 1 haben:

Map[Abs, EW] // Simplify

Beispiel 2: Eine orthogonale Matrix

Diesmal orthonormalisieren wir die Vektoren {1,-1,0}, {-3,0,1} und {2,0,-1} mit reellen Koordinaten. Dies liefert die unitäre Matrix

A = 
      GramSchmidt[{1, -1, 0}, {-3, 0, 1}, {2, 0, -1}]

Es ist diesmal

Inverse[A] == Transpose[A]

A hat die Determinante

Det[A]

Wir wussten von vornherein, dass diese gleich +1 oder -1 sein musste.

Wir erhalten das charakteristische Polynom

CharacteristicPolynomial[A, λ]

sowie die komplexen Eigenwerte

EW = Eigenvalues[A]

Eigenwerte in komplexer Normalform:

Map[ComplexExpand, EW] // Simplify

Wir testen, ob die Eigenwerte den Betrag 1 haben:

Map[Abs, EW]

Simplify[%]

Beispiel 3: eine hermitesche Matrix. Das sieht man wegen der "konjugierten Symmetrie" sofort.

A=(({{2, 2 - I, 2 - I}, {2 + I, 1, -2 + I}, {2 + I, -2 - I, -1}}))

CharacteristicPolynomial[A, λ]

sys = Eigensystem[A]

diag = 
      Table[If[j == k, sys[[1, k]], 0], {j, 3}, {k, 3}]

B = Transpose[sys[[2]]]

Inverse[B] . A . B

Die Spalten von B = Eigenvektoren sind orthogonal

Table[
      Skalarprodukt[Transpose[B][[j]], Transpose[
            B][[k]]], {j, 3}, {k, 3}]

aber dies gilt nicht mit dem "falschen" reellen Skalarprodukt (.), welches Mathematica verwendet:

Transpose[B][[1]] . Transpose[B][[2]]

Die Zeilen von B sind aber nicht orthogonal

Skalarprodukt[B[[1]], B[[2]]]

Hierzu müssen wir die Spalten normaliseren:

B = 
      Transpose[
        Table[sys[[2, k]]/Länge[sys[[2, k]]], {k, 
            3}]]

Nun sind auch die Zeilen von B orthogonal

Table[Skalarprodukt[B[[j]], B[[k]]], {j, 3}, {k, 3}]

Die Inverse ist dafür komplizierter

Inverse[B]

aber man muss sie gar nicht berechnen, denn sie ist gleich

Conjugate[Transpose[B]]

Es gilt weiterhin

Inverse[B] . A . B