diff options
Diffstat (limited to '')
102 files changed, 4527 insertions, 2304 deletions
diff --git a/buch/chapters/00-einleitung/chapter.tex b/buch/chapters/00-einleitung/chapter.tex index f673aa4..e4e58ee 100644 --- a/buch/chapters/00-einleitung/chapter.tex +++ b/buch/chapters/00-einleitung/chapter.tex @@ -14,17 +14,23 @@ Die Geometrie studiert zum Beispiel Objekte wie Punkte, Geraden, Kreise und deren Beziehungen untereinander, die man definieren kann ganz ohne das Wissen, was eine Zahl ist. Apollonius von Perga (262--190 BCE) hat in seinem Buch über Kegelschnitte +\index{Apollonius von Perga}% +\index{Perga, Appollonius von}% als erster einen algebraischen Zusammenhang zwischen Zahlen festgestellt, die man also die Vorläufer heutiger Koordinaten eines Punktes ansehen könnte. -Erst im 16.~Jahrhundert entwickelte sich die Algebra allerdings weit genug, +Erst im 16.~Jahrhundert entwickelte sich die Algebra weit genug, dass eine Algebraisierung der Geometrie möglich wurde. Pierre de Fermat \index{Fermat, Pierre de}% und René Descartes \index{Descartes, René}% schufen die sogenannte {\em analytische Geometrie}. +\index{analytische Geometrie}% +\index{Geometrie, analytische}% Das rechtwinklige Koordinatensystem, nach Descartes auch karteisches Koordinatensystem genannt, beschreibt Punkte als Zahlenpaare $(x,y)$ +\index{kartesisches Koordinatensystem}% +\index{Koordinatensystem, kartesisches}% und Kurven in der Ebene durch ihre Gleichungen. Geraden können als Graphen der Funktion $f(x) = ax+b$ oder als Lösungsmenge linearer Gleichungen wie $ax+by=c$ verstanden werden. @@ -46,7 +52,7 @@ x^2+(y-1)^2=4 einen Kreis mit Radius $2$ um den Punkt $(0,1)$. Der Kreis hat natürlich zwei Schnittpunkte mit der $x$-Achse, wie mit jeder Gerade, deren Abstand vom Mittelpunkt des Kreises kleiner ist als der Radius. -Schnittpunkte haben die Koordinaten $(x_S,0)$ und $x_S$ muss die +Die Schnittpunkte haben die Koordinaten $(x_S,0)$ und $x_S$ muss die Gleichung \[ x_S^2 + (0-1)^2 = x_S^2+1=4 @@ -54,11 +60,14 @@ x_S^2 + (0-1)^2 = x_S^2+1=4 x_S^2=3 \] erfüllen. +\index{rationale Zahlen}% Eine solche Lösung ist nicht möglich, wenn man sich auf rationale Koordinaten $x_S\in\mathbb{Q}$ beschränkt, die Erweiterung auf reelle Zahlen ist notwendig. +\index{reelle Zahlen}% Kapitel~\ref{buch:chapter:zahlen} übernimmt die Aufgabe, die Zahlensysteme +\index{Zahlensysteme}% klar zu definieren und ihre wichtigsten Eigenschaften zusammenzutragen. Sie bilden das Fundament aller folgenden Konstruktionen. @@ -69,12 +78,13 @@ Die Zahl $\alpha=\sqrt{2}$ ist ja nur ein Objekt, mit dem gerechnet werden kann wie mit jeder anderen Zahl, welche aber die zusätzliche Rechenregel $\alpha^2=2$ erfüllt. Die Erweiterung von $\mathbb{R}$ zu den komplexen Zahl verlangt nur, +\index{komplexe Zahlen}% dass man der Menge $\mathbb{R}$ ein neues algebraisches Objekt $i$ hinzufügt, welches als spezielle Eigenschaft die Gleichung $i^2=-1$ hat. Bei $\sqrt{2}$ hat die geometrische Anschauung suggeriert, dass es eine solche Zahl ``zwischen'' den rationalen Zahlen gibt, aber für $i$ gibt es keine solche Anschauung. -Die imaginäre Einheit $i$ erhielt daher auch diesen durchaus +Die imaginäre Einheit $i$ erhielt daher von Descartes auch diesen durchaus abwertend gemeinten Namen. Die Zahlensysteme lassen sich also verstehen als einfachere Zahlensysteme, @@ -89,6 +99,7 @@ erfüllen will, auch einfach wieder die Existenz des neuen Objektes postulieren? Komplexen Zahlen und Matrizen zeigen, wie das gehen könnte. +\index{Matrizen}% Indem man vier rationale Zahlen als $2\times 2$-Matrix in der Form \[ A= @@ -181,7 +192,7 @@ die Menge der Matrizen a,b\in\mathbb{Q} \right\} \] -verhält sich daher genau so wie die Menge der rationalen Zahlen, denen +verhält sich daher genau so wie die Menge der rationalen Zahlen, der man ein ``imaginäres'' neues Objekt $\!\sqrt{2}$ hinzugefügt hat. Matrizen sind also ein Werkzeug, mit dem sich ein algebraisches Systeme @@ -199,24 +210,33 @@ einzelnen Objektes, sowohl $\sqrt{2}$ wie auch $i$ sind Lösungen einer Polynomgleichung. Eine besondere Rolle spielen in der Mathematik die Symmetrien. +\index{Symmetrie}% Eine der frühesten Anwendungen dieses Gedankens in der Algebra war die Überlegung, dass sich die Nullstellen einer Polynomgleichung permutieren lassen. Die Idee der Permutationsgruppe taucht auch in algebraischen Konstruktionen wie der Determinanten auf. +\index{Permutation}% +\index{Permutationsgruppe}% +\index{Determinante}% Tatsächlich lassen sich Permutationen auch als Matrizen schreiben und die Rechenregeln für Determinanten sind ein direktes Abbild gewisser Eigenschaften von Transpositionen. +\index{Transposition}% Einmal mehr haben Matrizen ermöglicht, ein neues Konzept in einer bekannten Sprache auszudrücken. Die Darstellungstheorie ist das Bestreben, nicht nur Permutationen, +\index{Darstellungstheorie}% sondern beliebige Gruppen von Symmetrien als Mengen von Matrizen darzustellen. Die abstrakten Symmetriegruppen erhalten damit immer konkrete Realisierungen als Matrizenmengen. Auch kompliziertere Strukturen wie Ringe, Körper oder Algebren lassen sich mit Matrizen realisieren. +\index{Ring}% +\index{Körper}% +\index{Algebra}% Aber die Idee ist nicht auf die Geometrie beschränkt, auch analytische oder kombinatorische Eigenschaften lassen sich in Matrizenstrukturen abbilden und damit neuen rechnerischen Behandlungen zugänglich @@ -225,8 +245,10 @@ machen. Das Kapitel~\ref{buch:chapter:homologie} illustriert, wie weit dieser Plan führen kann. Die Konstruktion der Homologiegruppen zeigt, wie sich die Eigenschaften -der Gestalt gewisser geometrischer Strukturen zunächst mit Matrizen, -die kombinatorische Eigenschaften beschreiben, ausdrücken lassen. +\index{Homologiegruppe}% +der Gestalt gewisser geometrischer Strukturen zunächst mit Matrizen +ausdrücken lassen, +die kombinatorische Eigenschaften beschreiben. Anschliessend können daraus wieder algebraische Strukturen gewonnen werden. Gestalteigenschaften werden damit der rechnerischen Untersuchung zugänglich. diff --git a/buch/chapters/05-zahlen/chapter.tex b/buch/chapters/05-zahlen/chapter.tex index 56ef096..962dae4 100644 --- a/buch/chapters/05-zahlen/chapter.tex +++ b/buch/chapters/05-zahlen/chapter.tex @@ -11,7 +11,8 @@ Das Thema dieses Buches ist die Konstruktion interessanter mathematischer Objekte mit Hilfe von Matrizen. Die Einträge dieser Matrizen sind natürlich Zahlen. -Wir wollen von diesen grundlegenden Bausteinen ausgehen. +Wir wollen von den bekannten Zahlmengen als grundlegenden +Bausteinen ausgehen. Dies schliesst natürlich nicht aus, dass man auch Zahlenmengen mit Hilfe von Matrizen beschreiben kann, wie wir es später für die komplexen Zahlen machen werden. diff --git a/buch/chapters/05-zahlen/ganz.tex b/buch/chapters/05-zahlen/ganz.tex index fab2dcb..7e0ec8c 100644 --- a/buch/chapters/05-zahlen/ganz.tex +++ b/buch/chapters/05-zahlen/ganz.tex @@ -31,6 +31,7 @@ Die Rechenoperationen sind wie folgt definiert: Die Darstellung ganzer Zahlen als Paare von natürlichen Zahlen findet man auch in der Buchhaltung, wo man statt eines Vorzeichen {\em Soll} und {\em Haben} verwendet. +\index{Soll und Haben}% Dabei kommt es nur auf die Differenz der beiden Positionen an. Fügt man beiden Positionen den gleichen Betrag hinzu, ändert sich nichts. @@ -44,8 +45,8 @@ Zum Beispiel ist $0=1+(-1) = (1,0) + (0,1) = (1,1)$. Die Paare $(u,u)$ müssen daher alle mit $0$ identifiziert werden. Es folgt dann auch, dass alle Paare von natürlichen Zahlen mit ``gleicher Differenz'' den gleichen ganzzahligen Wert darstellen, -allerdings können wir das nicht so formulieren, da ja die Differenz -noch gar nicht definiert ist. +allerdings können wir das nicht so formulieren, da ja der Begriff +der Differenz noch gar nicht definiert ist. Stattdessen gelten zwei Paare als äquivalent, wenn \begin{equation} (a,b) \sim (c,d) @@ -66,8 +67,9 @@ Zahlen mit der Eigenschaft a+b' = a'+b. \] Man nennt eine solche Menge eine {\em Äquivalenzklasse} der Relation $\sim$. - +\index{Aquivalenzklasse@Äquivalenzklasse} Die Menge $\mathbb{Z}$ der {\em ganzen Zahlen} ist die Menge aller solchen +\index{ganze Zahlen}% Äquivalenzklassen. Die Menge der natürlichen Zahlen $\mathbb{N}$ ist in evidenter Weise darin eingebettet als die Menge der Äquivalenzklassen von Paaren der @@ -79,12 +81,16 @@ stellt das Paar $(b,a)$ eine ganze Zahl dar mit der Eigenschaft \begin{equation} z+(b,a) = -(a,b) + (b+a) = (a+b,a+b) \sim (0,0) = 0. +(a,b) + (b+a) = (a+b,a+b) \sim (0,0) = 0 \label{buch:zahlen:eqn:entgegengesetzt} \end{equation} +dar. Die von $(b,a)$ dargestellte ganze Zahl wird mit $-z$ bezeichnet, die Rechnung~\eqref{buch:zahlen:eqn:entgegengesetzt} lässt sich damit abgekürzt als $z+(-z)=0$ schreiben. +$-z$ heisst der $z$ {\em entgegengesetzte Wert} oder die +\index{entgegengesetzte Zahl}% +{\em entgegengesetzte Zahl} zu $z$. \subsubsection{Lösung von Gleichungen} Gleichungen der Form $a=x+b$ können jetzt für beliebige ganze Zahlen @@ -102,21 +108,27 @@ $a-b = (a,0) + (-(b,0)) = (a,0) + (0,b) = (a,b)$ schreibt. \subsubsection{Ring} \index{Ring}% -Die ganzen Zahlen sind ein Beispiel für einen sogenannten Ring, +Die ganzen Zahlen sind ein Beispiel für einen sogenannten {\em Ring}, +\index{Ring}% eine algebraische Struktur in der Addition, Subtraktion und Multiplikation definiert sind. -Weitere Beispiel werden später vorgestellt, +Weitere Beispiele von Ringen werden später vorgestellt, +darunter der Ring der Polynome $\mathbb{Z}[X]$ in Kapitel~\ref{buch:chapter:polynome} +\index{Polynomring}% +\index{ZX@$\mathbb{Z}[X]$} und der Ring der $n\times n$-Matrizen in +\index{Matrizenring}% Kapitel~\ref{buch:chapter:vektoren-und-matrizen}. In einem Ring wird nicht verlangt, dass die Multiplikation kommutativ -ist, Matrizenringe sind nicht kommutativ. -$\mathbb{Z}$ ist ein kommutativer Ring ebenso sind die Polynomringe +ist, Matrizenringe zum Beispiel sind meistens nicht kommutativ, selbst +wenn die Matrixelemente Elemente eines kommutativen Rings sind. +$\mathbb{Z}$ ist ein kommutativer Ring, ebenso sind die Polynomringe kommutativ. Die Theorie der nicht kommutativen Ringe ist sehr viel reichhaltiger und leider auch komplizierter als die kommutative Theorie. -\index{Ring!kommutativer}% +\index{Ring!kommutativ}% diff --git a/buch/chapters/05-zahlen/komplex.tex b/buch/chapters/05-zahlen/komplex.tex index 4ccea89..17f6e16 100644 --- a/buch/chapters/05-zahlen/komplex.tex +++ b/buch/chapters/05-zahlen/komplex.tex @@ -6,7 +6,8 @@ \section{Komplexe Zahlen \label{buch:section:komplexe-zahlen}} \rhead{Komplexe Zahlen} -In den reellen Zahlen lassen sich viele algebraische Gleichungen lösen. +In den reellen Zahlen lassen sich viele algebraische Gleichungen lösen, +die in $\mathbb{Q}$ nicht lösbar waren. Andere, z.~B.~die Gleichung \begin{equation} x^2+1=0, @@ -15,6 +16,7 @@ x^2+1=0, haben weiterhin keine Lösung. Der Grund dafür ist das Bestreben bei der Konstruktion der reellen Zahlen, die Ordnungsrelation zu erhalten. +\index{Ordnungsrelation}% Diese ermöglicht, Näherungsintervall und Intervallschachtelungen zu definieren. @@ -37,16 +39,18 @@ Die erste Komponente soll die bekannten reellen Zahlen darstellen, deren Quadrat positiv ist. Die zweite Komponente soll für die Zahlen verwendet werden, deren Quadrat negativ ist. -Die Zahl, deren Quadrat $-1$ sein soll, bezeichnen wir auch mit dem +Die Zahl, deren Quadrat $-1$ sein soll, bezeichnen wir mit dem Paar $(0,1)$ und schreiben dafür auch $i=(0,1)$ mit $i^2=-1$. +Das Paar $i=(0,1)$ heisst auch die {\em imaginäre Einheit}. +\index{imaginäre Einheit}% Die Rechenregeln sollen weiterhin erhalten bleiben, sie müssen daher wie folgt definiert werden: \begin{equation} \begin{aligned} -(a,b) + (c,d) &= (a+c,b+d) & (a+bi) + (c+di) &= (a+c) + (b+d)i +(a,b) + (c,d) &= (a+c,b+d) &&& (a+bi) + (c+di) &= (a+c) + (b+d)i \\ -(a,b) \cdot (c,d) & (ad-bd, ad+bc) & (a+bi)\cdot(c+di) &= ac-bd + (ad+bc)i. +(a,b) \cdot (c,d) &= (ad-bd, ad+bc) &&& (a+bi)\cdot(c+di) &= ac-bd + (ad+bc)i. \end{aligned} \label{buch:zahlen:cregeln} \end{equation} @@ -65,8 +69,10 @@ Die Menge $\mathbb{C}$ verhält sich daher wie eine zweidimensionaler reeller Vektorraum. \subsubsection{Real- und Imaginärteil} -Ist $z=a+bi$ eine komplexe Zahl, dann heisst $a$ der Realteil $a=\Re z$ -und $b$ heisst der Imaginärteil $\Im z$. +Ist $z=a+bi$ eine komplexe Zahl, dann heisst $a$ der {\em Realteil} $a=\Re z$ +\index{Realteil}% +und $b$ heisst der {\em Imaginärteil} $\Im z$. +\index{Imaginärteil}% Real- und Imaginärteil sind lineare Abbildungen $\mathbb{C}\to\mathbb{R}$, sie projizieren einen Punkt auf die Koordinatenachsen, die entsprechend auch die reelle und die imaginäre Achse heissen. @@ -86,13 +92,43 @@ a \Re z. \] Zusätzlich kehrt das Vorzeichen der einen Komponente. -Wir kommen auf diese Eigenschaft zurück, wenn wir später in Abschnitt~XXX +Wir kommen auf diese Eigenschaft zurück, wenn wir später in +Abschnitt~\ref{buch:grundlagen:subsection:ringe} komplexe Zahlen als Matrizen beschreiben. +\subsubsection{Gausssche Zahlenebene} +Beschränkt man die Multiplikation auf einen reellen Faktor, wird $\mathbb{C}$ +zu einem zweidimensionalen reellen Vektorraum. +Man kann die komplexe Zahl $a+bi$ daher auch als Punkt $(a,b)$ in der +sogenannten {\em Gaussschen Ebene} betrachten (Abbildung~\ref{buch:zahlen:cfig}). +\index{Gaussche Zahlenebene}% +Die Addition von komplexen Zahlen ist in diesem Bild die vektorielle +Addition, die Multiplikation mit reellen Zahlen werden wir weiter unten +genauer untersuchen müssen. + +\begin{figure} +\centering +\includegraphics{chapters/05-zahlen/images/komplex.pdf} +\caption{Argument und Betrag einer komplexen Zahl $z=a+ib$ in der +Gaussschen Zahlenebene +\label{buch:zahlen:cfig}} +\end{figure}% + +Die Zahlenebene führt auf eine weitere mögliche Parametrisierung einer +komplexen Zahl. +Ein Punkt $z$ der Ebene kann in Polarkoordinaten auch durch den {\em Betrag} +\index{Betrag}% +\index{Polarkoordinaten}% +und den Winkel zwischen der reellen Achse und dem Radiusvektor zum Punkt, +dem sogenannten {\em Argument}, +charakterisiert werden. + \subsubsection{Komplexe Konjugation} Der komplexen Zahl $u=a+bi$ ordnen wir die sogenannte {\em komplex konjugierte} Zahl $\overline{z} = a-bi$. Mit Hilfe der komplexen Konjugation kann man den Real- und Imaginärteil +\index{komplexe Konjugation}% +\index{Konjugation, komplexe}% algebraisch ausdrücken: \[ \Re z @@ -124,7 +160,8 @@ Wenn $x\ge 0$ ist und $x\le 0$, dann ist $x=0$. In $\mathbb{C}$ steht diese Ordnungsrelation nicht mehr zur Verfügung. Eine komplexe Zahl ist von $0$ verschieden, wenn die Länge des Vektors in der Zahlenebene verschieden von $0$ ist. -Wir definieren daher den Betrag einer komplexen Zahl $z=a+bi$ als +Wir definieren daher den {\em Betrag} einer komplexen Zahl $z=a+bi$ als +\index{Betrag} \[ |z|^2 = @@ -158,7 +195,7 @@ Produkt der komplexen Zahlen sein. Wie berechnet man den Quotienten $\frac{z}{w}$ für zwei beliebige komplexe Zahlen $z=a+bi$ und $w=c+di$ mit $w\ne 0$? -Dazu erweitert man den Bruch mit der komplex konjugierten des Nenners: +Dazu erweitert man den Bruch mit der komplex Konjugierten des Nenners: \begin{align*} \frac{z}{w} &= @@ -169,7 +206,7 @@ Dazu erweitert man den Bruch mit der komplex konjugierten des Nenners: Da der Nenner $|w|^2>0$ eine reelle Zahl ist, ist die Division einfach, es ist die Multiplikation mit der reellen Zahl $1/|w|^2$. -Wir können den Quotienten auch in Komponenten ausdrücken: +Wir können den Quotienten auch durch Real- und Imaginärteil ausdrücken: \begin{align*} \frac{z}{w} &= @@ -180,38 +217,20 @@ Wir können den Quotienten auch in Komponenten ausdrücken: \frac{ac-bd +(ad+bc)i}{c^2+d^2}. \end{align*} -\subsubsection{Gausssche Zahlenebene} -Beschränkt man die Multiplikation auf einen reellen Faktor, wird $\mathbb{C}$ -zu einem zweidimensionalen reellen Vektorraum. -Man kann die komplexe Zahl $a+bi$ daher auch als Punkt $(a,b)$ in der -sogenannten Gaussschen Ebene betrachten. -Die Addition von komplexen Zahlen ist in diesem Bild die vektorielle -Addition, die Multiplikation mit reellen Zahlen werden wir weiter unten -genauer untersuchen müssen. - -\begin{figure} -\centering -\includegraphics{chapters/05-zahlen/images/komplex.pdf} -\caption{Argument und Betrag einer komplexen Zahl $z=a+ib$ in der -Gaussschen Zahlenebene -\label{buch:zahlen:cfig}} -\end{figure} -Die Zahlenebene führt auf eine weitere Parametrisierung einer -komplexen Zahl. -Ein Punkt $z$ der Ebene kann in Polarkoordinaten auch durch den Betrag -und den Winkel zwischen der reellen Achse und dem Radiusvektor zum Punkt -beschrieben werden. - \subsubsection{Geometrische Interpretation der Rechenoperationen} -Die Addition kompelxer Zahlen wurde bereits als Vektoraddition -in der Gausschen Zahlenebene. +Die Addition komplexer Zahlen wurde bereits als Vektoraddition +in der Gausschen Zahlenebene interpretiert. Die Multiplikation ist etwas komplizierter, wir berechnen Betrag und Argument von $zw$ separat. Für den Betrag erhalten wir \begin{align*} |zw|^2 &= +zw\overline{(zw)} += +zw\overline{z}\overline{w} += z\overline{z}w\overline{w} = |z|^2|w|^2 @@ -252,6 +271,7 @@ und $c\ne 0$, was uns ermöglicht, den Bruch durch $ac$ zu kürzen: \bigr). \end{align*} Im letzten Schritt haben wir die Additionsformel für den Tangens verwendet. +\index{Additionstheorem für Tangens}% Daraus liest man ab, dass das Argument eines Produkts die Summe der Argumente ist. Die Multiplikation mit einer festen komplexen Zahl führt also mit der ganzen @@ -263,17 +283,18 @@ wenn wir die komplexen Zahlen als Matrizen beschreiben wollen. Die komplexen Zahlen $\mathbb{C}$ sind als Erweiterung von $\mathbb{R}$ so konstruiert worden, dass die Gleichung $x^2+1=0$ eine Lösung hat. Etwas überraschend ist dagegen, dass in dieser Erweiterung jetzt jede -beliebige algebraische Gleichung lösbar geworden. +beliebige algebraische Gleichung lösbar geworden ist. Dies ist der Inhalt des Fundamentalsatzes der Algebra. \begin{satz}[Fundamentalsatz der Algebra] +\label{buch:zahlen:satz:fundamentalsatz} \index{Fundamentalsatz der Algebra}% Jede algebraische Gleichung der Form \[ p(x)=x^n + a_{n-1}x^{n-1}+a_1x+a_0=0,\qquad a_k\in\mathbb{C} \] mit komplexen Koeffizienten hat $n$ möglicherweise mit Vielfachheit -gezähle Nullstellen $\alpha_1,\dots,\alpha_m$, d.~h.~das Polynom $p(x)$ +gezählte Nullstellen $\alpha_1,\dots,\alpha_m$, d.~h.~das Polynom $p(x)$ lässt sich in Linearfaktoren \[ p(x) @@ -281,12 +302,12 @@ p(x) (x-\alpha_1)^{k_1}(x-\alpha_2)^{k_2}\cdot\ldots\cdot(x-\alpha_m)^{k_m} \] zerlegen, wobei $k_1+k_2+\dots+k_m=n$. -Die Zahlen $k_j$ heisst die {\em Vielfachheit} der Nullstelle $\alpha_j$. +Die Zahl $k_j$ heisst die {\em Vielfachheit} der Nullstelle $\alpha_j$. \end{satz} Der Fundamentalsatz der Algebra wurde erstmals von Carl Friedrich Gauss \index{Gauss, Carl Friedrich}% -bewiesen. +vollständig bewiesen. Seither sind viele alternative Beweise mit Methoden aus den verschiedensten Gebieten der Mathematik gegeben worden. Etwas salopp könnten man sagen, dass der Fundamentalsatz ausdrückt, dass @@ -304,10 +325,11 @@ Da Drehungen um verschiedene Achsen nicht vertauschen, kann eine solche Erweiterung nicht mehr kommutativ sein. William Rowan Hamilton propagierte ab 1843 eine Erweiterung von $\mathbb{C}$ +\index{Hamilton, William Rowan}% mit zwei zusätzlichen Einheiten $j$ und $k$ mit den nichtkommutativen Relationen \begin{equation} -i^2 = j^2 = k^2 = ijk = -1. +i^2 = j^2 = k^2 = i\!jk = -1. \label{buch:zahlen:eqn:quaternionenregeln} \end{equation} Er nannte die Menge aller Linearkombinationen @@ -319,6 +341,9 @@ die {\em Quaternionen}, die Einheiten $i$, $j$ und $k$ heissen auch Einheitsquaternionen. \index{Einheitsquaternionen}% Konjugation, Betrag und Division können ganz ähnlich wie bei den +\index{Konjugation von Quaternionen}% +\index{Betrag einer Quaternion}% +\index{Division durch eine Quaternion}% komplexen Zahlen definiert werden und machen $\mathbb{H}$ zu einer sogenannten {\em Divisionsalgebra}. \index{Divisionsalgebra}% @@ -331,24 +356,24 @@ Aus den Regeln für die Quadrate der Einheiten in $i^{-1}=-i$, $j^{-1}=-j$ und $k^{-1}=-k$. Die letzte Bedingung liefert daraus \[ -ijk=-1 +i\!jk=-1 \qquad\Rightarrow\qquad \left\{ \quad \begin{aligned} -ij +i\!j &= -ijkk^{-1}=-1k^{-1}=k +i\!jkk^{-1}=-1k^{-1}=k \\ -i^2jk&=-i=-jk +i^2\!jk&=-i=-jk \\ -j^2k&=-ji=k \end{aligned} \right. \] Aus den Relationen~\eqref{buch:zahlen:eqn:quaternionenregeln} -folgt also insbesondere auch, dass $ij=-ji$. -Ebenso kann abgeleitet werden, dass $jk=-kj$ und $ik=-ki$. +folgt also insbesondere auch, dass $i\!j=-ji$. +Ebenso kann abgeleitet werden, dass $jk=-k\!j$ und $ik=-ki$. Man sagt, die Einheiten sind {\em antikommutativ}. \index{antikommutativ}% @@ -358,9 +383,15 @@ Komponenten $a_0,\dots,a_3$ vollständig beschrieben ist. Eine Transformationsmatrix des dreidimensionalen Raumes enthält dagegen neun Koeffizienten, die vergleichsweise komplizierte Abhängigkeiten erfüllen müssen. +Kapitel~\ref{chapter:clifford} behandelt nicht nur die Beschreibung +von Drehungen des dreidimensionalen Raumes sondern eine weitreichende +Verallgemeinerung dieser Idee, die sogenannte {\em geometrische Algebra}. +\index{geometrische Algebra}% Quaternionen haben auch in weiteren Gebieten interessante Anwendungen, zum Beispiel in der Quantenmechanik, wo antikommutierende Operatoren +\index{Quantenmechanik}% bei der Beschreibung von Fermionen eine zentrale Rolle spielen. +\index{Fermion}% Aus rein algebraischer Sicht kann man die Frage stellen, ob es eventuell auch noch grössere Divisionsalgebren gibt, die $\mathbb{H}$ erweitern. diff --git a/buch/chapters/05-zahlen/natuerlich.tex b/buch/chapters/05-zahlen/natuerlich.tex index f378aaf..8c51346 100644 --- a/buch/chapters/05-zahlen/natuerlich.tex +++ b/buch/chapters/05-zahlen/natuerlich.tex @@ -9,7 +9,7 @@ \rhead{Natürliche Zahlen} Die natürlichen Zahlen sind die Zahlen, mit denen wir zählen. \index{natürliche Zahlen}% -\index{$\mathbb{N}$}% +\index{N@$\mathbb{N}$}% Sie abstrahieren das Konzept der Anzahl der Elemente einer endlichen Menge. Da die leere Menge keine Elemente hat, muss die Menge der natürlichen @@ -24,22 +24,25 @@ Wir schreiben \] \subsubsection{Peano-Axiome} -Man kann den Zählprozess durch die folgenden Axiome von Peano beschreiben: +\index{Peano}% +Man kann den Zählprozess durch die folgenden Axiome von Peano genauer fassen: \index{Peano-Axiome}% \begin{enumerate} -\item $0\in\mathbb N$. +\item $0$ ist eine natürliche Zahl: $0\in\mathbb N$. \item Jede Zahl $n\in \mathbb{N}$ hat einen {\em Nachfolger} $n'\in \mathbb{N}$. \index{Nachfolger}% \item $0$ ist nicht Nachfolger einer Zahl. \item Wenn zwei Zahlen $n,m\in\mathbb{N}$ den gleichen Nachfolger haben, -$n'=m'$, dann sind sie gleich $n=m$. +$n'=m'$, dann sind sie gleich: $n=m$. \item Enthält eine Menge $X$ die Zahl $0$ und mit jeder Zahl auch ihren Nachfolger, dann ist $\mathbb{N}\subset X$. \end{enumerate} \subsubsection{Vollständige Induktion} -Es letzte Axiom formuliert das Prinzip der vollständigen Induktion. +Es letzte Axiom formuliert das Prinzip der {\em vollständigen Induktion}. +\index{vollständige Induktion}% +\index{Induktion, vollständige}% Um eine Aussage $P(n)$ für alle natürlichen Zahlen $n$ mit vollständiger Induktion zu beweisen, bezeichnet man mit $X$ die Menge aller Zahlen, für die $P(n)$ wahr ist. @@ -77,11 +80,13 @@ Nach diesen Regeln ist (((5)')')'. \] Dies ist genau die Art und Weise, wie kleine Kinder Rechnen lernen. -Sie Zählen von $5$ ausgehend um $3$ weiter. +Sie zählen von $5$ ausgehend um $3$ weiter, manchmal unter Zuhilfenahme +ihrer Finger. Der dritte Nachfolger von $5$ heisst üblicherweise $8$. Die algebraische Struktur, die hier konstruiert worden ist, heisst -eine Halbgruppe. +ein {\em Monoid}. +\index{Monoid}% Allerdings kann man darin zum Beispiel nur selten Gleichungen lösen, zum Beispiel hat $3+x=1$ keine Lösung. Die Addition ist nicht immer umkehrbar. @@ -142,9 +147,9 @@ a+(b+c) \qquad\text{und}\qquad (a\cdot b)\cdot c = -a\cdot (b\cdot c) +a\cdot (b\cdot c), \] -dies ist das Assoziativgesetz. +dies ist das {\em Assoziativgesetz}. Es gestattet auch eine solche Summe oder ein solches Produkt einfach als $a+b+c$ bzw.~$a\cdot b\cdot c$ zu schreiben, da es ja keine Rolle spielt, in welcher Reihenfolge man die Teilprodukte berechnet. @@ -152,10 +157,11 @@ spielt, in welcher Reihenfolge man die Teilprodukte berechnet. Die Konstruktion der Multiplikation als iterierte Addition mit Hilfe der Rekursionsformel \eqref{buch:zahlen:multiplikation-rekursion} hat auch zur Folge, dass die {\em Distributivgesetze} +\index{Distributivgesetz}% \[ a\cdot(b+c) = ab+ac \qquad\text{und}\qquad -(a+b)c = ac+bc +(a+b)\cdot c = ac+bc \] gelten. Bei einem nicht-kommutativen Produkt ist es hierbei notwendig, @@ -175,7 +181,7 @@ Sie gelten immer für Matrizen. Die Lösbarkeit von Gleichungen der Form $ax=b$ mit $a,b\in\mathbb{N}$ gibt Anlass zum sehr nützlichen Konzept der Teilbarkeit. \index{Teilbarkeit}% -Die Zahl $b$ heisst teilbar durch $a$, wenn die Gleichung $ax=b$ eine +Die Zahl $b$ heisst {\em teilbar} durch $a$, wenn die Gleichung $ax=b$ eine Lösung in $\mathbb{N}$ hat. \index{teilbar}% Jede natürlich Zahl $n$ ist durch $1$ und durch sich selbst teilbar, @@ -236,11 +242,29 @@ n+1&= n \cup \{n\} = \{0,\dots,n-1\} \cup \{n\} = \{0,1,\dots,n\} \\ &\phantom{n}\vdots \end{align*} +Die Menge $n+1$ besteht also aus den $n+1$ Zahlen von $0$ bis $n$. + +Für spätere Verwendung in Kapitel~\ref{buch:chapter:permutationen} +definieren wir hier auch noch eine weiter Art von Standardteilmengen +von $\mathbb{N}$. + +\begin{definition} +\label{buch:zahlen:def:[n]} +Die Menge $[n]\subset \mathbb{N}$ ist definiert durch +\[ +[n] = \begin{cases} +\{1,2,\dots,n\}&\qquad \text{für $n>0$}\\ +\emptyset&\qquad\text{für $n=0$} +\end{cases} +\] +\end{definition} + +Jede der Mengen $[n]$ hat genau $n$ Elemente: $|[n]|=n$. \subsubsection{Natürliche Zahlen als Äquivalenzklassen} Im vorangegangenen Abschnitt haben wir die natürlichen Zahlen aus der leeren Menge schrittweise sozusagen ``von unten'' aufgebaut. -Wir können aber auch eine Sicht ``von oben'' einnehmen. +Wir können aber auch eine Sichtweise ``von oben'' einnehmen. Dazu definieren wir, was eine endliche Menge ist und was es heisst, dass endliche Mengen gleiche Mächtigkeit haben. @@ -258,6 +282,7 @@ Der Vorteil dieser Definition ist, dass sie die früher definierten natürlichen Zahlen nicht braucht, diese werden jetzt erst konstruiert. Dazu fassen wir in der Menge aller endlichen Mengen die gleich mächtigen Mengen zusammen, bilden also die Äquivalenzklassen der Relation $\sim$. +\index{Aquivalenzklasse@Äquivalenzklasse}% Der Vorteil dieser Sichtweise ist, dass die natürlichen Zahlen ganz explizit als die Anzahlen von Elementen einer endlichen Menge entstehen. diff --git a/buch/chapters/05-zahlen/rational.tex b/buch/chapters/05-zahlen/rational.tex index 9d2f59e..440cc73 100644 --- a/buch/chapters/05-zahlen/rational.tex +++ b/buch/chapters/05-zahlen/rational.tex @@ -14,8 +14,8 @@ die negativen Zahlen kennenlernen. Wir können hierbei denselben Trick anwenden, wie schon beim Übergang von den natürlichen zu den ganzen Zahlen. -Wir kreieren wieder Paare $(z, n)$, deren Elemente nennen wir \emph{Zähler} und -\emph{Nenner}, wobei $z, n \in \mathbb Z$ und zudem $n \ne 0$. +Wir kreieren wieder Paare $(z, n)$, deren Elemente wir \emph{Zähler} und +\emph{Nenner} nennen, wobei $z, n \in \mathbb Z$ und zudem $n \ne 0$. Die Rechenregeln für Addition und Multiplikation lauten \[ (a, b) + (c, d) @@ -27,8 +27,8 @@ Die Rechenregeln für Addition und Multiplikation lauten (ac, bd) . \] -Die ganzen Zahlen lassen sich als in dieser Darstellung als -$z \mapsto (z, 1)$ einbetten. +Die ganzen Zahlen $z\in\mathbb{Z}$ lassen sich in dieser Darstellung als +$z \mapsto (z, 1)$ in diese Menge von Paaren einbetten. Ähnlich wie schon bei den ganzen Zahlen ist diese Darstellung aber nicht eindeutig. @@ -67,6 +67,7 @@ Rationale Zahlen sind genau die Äquivalenzklassen dieser Paare $(a, b)$ von ganzen Zahlen $a$ und $b\ne 0$. Da diese Schreibweise recht unhandlich ist, wird normalerweise die Notation als Bruch $\frac{a}{b}$ verwendet. +\index{Bruch}% Die Rechenregeln werden dadurch zu den wohlvertrauten \[ \frac{a}{b}+\frac{c}{d} @@ -120,6 +121,7 @@ Kürzen und Erweitern ineinander übergeführt werden können. Die Menge der Äquivalenzklassen von Brüchen ist die Menge $\mathbb{Q}$ der rationalen Zahlen. +\index{Q@$\mathbb{Q}$}% In $\mathbb{Q}$ sind Addition, Subtraktion und Multiplikation mit den gewohnten Rechenregeln, die bereits in $\mathbb{Z}$ gegolten haben, uneingeschränkt möglich. @@ -127,7 +129,7 @@ uneingeschränkt möglich. \subsubsection{Kehrwert} Zu jedem Bruch $\frac{a}{b}$ lässt sich der Bruch $\frac{b}{a}$, der sogenannte {\em Kehrwert} -\index{Kehrwert} +\index{Kehrwert}% konstruieren. Er hat die Eigenschaft, dass \[ @@ -139,7 +141,7 @@ Er hat die Eigenschaft, dass \] gilt. Der Kehrwert ist also das multiplikative Inverse, jede von $0$ verschiedene -rationale Zahl hat eine Inverse. +rationale Zahl hat eine solche Inverse. \subsubsection{Lösung von linearen Gleichungen} Mit dem Kehrwert lässt sich jetzt jede lineare Gleichung lösen. @@ -165,13 +167,24 @@ und Division möglich sind mit der einzigen Einschränkung, dass nicht durch $0$ dividiert werden kann. Körper sind die natürliche Bühne für die lineare Algebra, da sich lineare Gleichungssysteme ausschliesslich mit den Grundoperation lösen lassen. +Eine formelle Definition eines Körpers werden wir in +Abschnitt~\ref{buch:subsection:koerper} geben. Wir werden im Folgenden für verschiedene Anwendungszwecke weitere Körper konstruieren, zum Beispiel die reellen Zahlen $\mathbb{R}$ und die rationalen Zahlen $\mathbb{C}$. Wann immer die Wahl des Körpers keine Rolle spielt, werden wir den Körper mit $\Bbbk$ bezeichnen. -\index{$\Bbbk$}% +\index{k@$\Bbbk$}% +Ein Körper $\Bbbk$ zeichnet sich dadurch aus, dass alle ELemente ausser $0$ +invertierbar sind. +Diese wichtige Teilmenge wird mit $\Bbbk^* = \Bbbk \setminus\{0\}$ mit +bezeichnet. +\label{buch:zahlen:def:bbbk*} +In dieser Relation sind beliebige Multiplikationen ausführbar, das Element +$1\in\Bbbk^*$ ist neutrales Element bezüglich der Multiplikation. +Die Menge $\Bbbk^*$ trägt die Struktur einer Gruppe, siehe dazu auch +den Abschnitt~\ref{buch:grundlagen:subsection:gruppen}. diff --git a/buch/chapters/05-zahlen/reell.tex b/buch/chapters/05-zahlen/reell.tex index d5a193f..06eb7aa 100644 --- a/buch/chapters/05-zahlen/reell.tex +++ b/buch/chapters/05-zahlen/reell.tex @@ -10,6 +10,15 @@ In den rationalen Zahlen lassen sich algebraische Gleichungen höheren Grades immer noch nicht lösen. Dass die Gleichung $x^2=2$ keine rationale Lösung hat, ist schon den Pythagoräern aufgefallen. +\index{Pythagoräer} +Ziel dieses Abschnitts ist, den Körper $\mathbb{Q}$ zu einem +Körper $\mathbb{R}$ zu erweitern, in dem die Gleichung +gelöst werden kann, ohne dabei Ordnungsrelation zu zerstören, die +die hilfreiche und anschauliche Vorstellung der Zahlengeraden +liefert. +\index{Zahlengerade}% + +\subsubsection{Intervallschachtelung} Die geometrische Intuition der Zahlengeraden führt uns dazu, nach Zahlen zu suchen, die gute Approximationen für $\sqrt{2}$ sind. Wir können zwar keinen Bruch angeben, dessen Quadrat $2$ ist, aber @@ -29,16 +38,47 @@ Zahl $\sqrt{2}$ gewonnen worden.}. Jedes der Intervalle enthält auch das nachfolgende Intervall, und die intervalllänge konvergiert gegen 0. Eine solche \emph{Intervallschachtelung} beschreibt also genau eine Zahl, +\index{Intervallschachtelung}% aber möglicherweise keine, die sich als Bruch schreiben lässt. +\subsubsection{Reelle Zahlen als Folgengrenzwerte} +Mit einer Intervallschachtelung lässt sich $\sqrt{2}$ zwar festlegen, +noch einfacher wäre aber eine Folge von rationalen Zahlen $a_n\in\mathbb{Q}$ +derart, die $\sqrt{2}$ beliebig genau approximiert. +In der Analysis definiert man zu diesem Zweck, dass $a$ der Grenzwert +einer Folge $(a_n)_{n\in\mathbb{N}}$ ist, wenn es zu jedem $\varepsilon > 0$ +ein $N$ gibt derart, dass $|a_n-a|<\varepsilon$ für $n>N$ ist. +Das Problem dieser wohlbekannten Definition für die Konstruktion +reeller Zahle ist, dass im Falle der Folge +\[ +(a_n)_{n\in\mathbb{N}}= +(1, +\frac75, +\frac{41}{29}, +\frac{239}{169},\dots) \to a=\sqrt{2} +\] +das Objekt $a$ noch gar nicht existiert. +Es gibt keine rationale Zahl, die als Grenzwert dieser Folge dienen +könnte. + +Folgen, die gegen Werte in $\mathbb{Q}$ konvergieren sind dagegen +nicht in der Lage, neue Zahlen zu approximieren. +Wir müssen also auszudrücken versuchen, dass eine Folge konvergiert, +ohne den zugehörigen Grenzwert zu kennen. + +\subsubsection{Cauchy-Folgen} Die Menge $\mathbb{R}$ der reellen Zahlen kann man auch als Menge -aller Cauchy-Folgen $(a_n)_{n\in\mathbb{N}}$ betrachten. +aller Cauchy-Folgen $(a_n)_{n\in\mathbb{N}}$, $a_n\in\mathbb{Q}$, +betrachten. +\index{Cauchy-Folge}% Eine Folge ist eine Cauchy-Folge, wenn es für jedes $\varepsilon>0$ eine Zahl $N(\varepsilon)$ gibt derart, dass $|a_n-a_m|<\varepsilon$ für $n,m>N(\varepsilon)$. Ab einer geeigneten Stelle $N(\varepsilon)$ sind die Folgenglieder also mit Genauigkeit $\varepsilon$ nicht mehr unterscheidbar. + +\subsubsection{Relle Zahlen als Äquivalenzklassen von Cauchy-Folgen} Nicht jede Cauchy-Folge hat eine rationale Zahl als Grenzwert. Da wir für solche Folgen noch keine Zahlen als Grenzwerte haben, nehmen wir die Folge als eine mögliche Darstellung der Zahl. @@ -61,13 +101,14 @@ b_n&\colon&& \] beide Folgen, die die Zahl $\sqrt{2}$ approximieren. Im Allgemeinen tritt dieser Fall ein, wenn $|a_n-b_n|$ eine -Folge mit Grenzwert $0$ oder Nullfolge ist. +Folge mit Grenzwert $0$ oder {\em Nullfolge} ist. +\index{Nullfolge}% Eine reelle Zahl ist also die Menge aller rationalen Cauchy-Folgen, deren Differenzen Nullfolgen sind. Die Menge $\mathbb{R}$ der reellen Zahlen kann man also ansehen -als bestehend aus Mengen von Folgen, die alle den gleichen Grenzwert -haben. +als bestehend aus Äquivalenzklassen von Folgen, die alle den gleichen +Grenzwert haben. Die Rechenregeln der Analysis \[ \lim_{n\to\infty} (a_n + b_n) diff --git a/buch/chapters/10-vektorenmatrizen/algebren.tex b/buch/chapters/10-vektorenmatrizen/algebren.tex index 9e1d3dc..594b94e 100644 --- a/buch/chapters/10-vektorenmatrizen/algebren.tex +++ b/buch/chapters/10-vektorenmatrizen/algebren.tex @@ -10,10 +10,13 @@ vorhanden. Die Menge der Matrizen $M_n(\Bbbk)$ ist sowohl ein Ring als auch ein Vektorraum. Man nennt eine {\em $\Bbbk$-Algebra} oder {\em Algebra über $\Bbbk$} +\index{k-Algebra@$\Bbbk$-Algebra}% +\index{Algebra}% ein Ring $A$, der auch eine $\Bbbk$-Vektorraum ist. Die Multiplikation des Ringes muss dazu mit der Skalarmultiplikation verträglich sein. Dazu müssen Assoziativgesetze +\index{Assoziativgesetz} \[ \lambda(\mu a) = (\lambda \mu) a \qquad\text{und}\qquad @@ -42,7 +45,8 @@ beinhaltet aber auch das Distributivgesetz. $M_n(\Bbbk)$ ist eine Algebra. \subsubsection{Die Algebra der Funktionen $\Bbbk^X$} -Sie $X$ eine Menge und $\Bbbk^X$ die Menge aller Funktionen $X\to \Bbbk$. +Sei $X$ eine Menge und $\Bbbk^X$ die Menge aller Funktionen $X\to \Bbbk$. +\index{kX@$\Bbbk^X$}% Auf $\Bbbk^X$ kann man Addition, Multiplikation mit Skalaren und Multiplikation von Funktionen punktweise definieren. Für zwei Funktion $f,g\in\Bbbk^X$ und $\lambda\in\Bbbk$ definiert man diff --git a/buch/chapters/10-vektorenmatrizen/gruppen.tex b/buch/chapters/10-vektorenmatrizen/gruppen.tex index cb37d05..741a871 100644 --- a/buch/chapters/10-vektorenmatrizen/gruppen.tex +++ b/buch/chapters/10-vektorenmatrizen/gruppen.tex @@ -8,20 +8,23 @@ Die kleinste sinnvolle Struktur ist die einer Gruppe. Eine solche besteht aus einer Menge $G$ mit einer Verknüpfung, die additiv +\index{additive Verknüpfung}% \begin{align*} -G\times G \to G&: (g,h) = gh -\intertext{oder multiplikativ } G\times G \to G&: (g,h) = g+h +\intertext{oder multiplikativ } +G\times G \to G&: (g,h) = gh \end{align*} +\index{multiplikative Verknüpfung}% geschrieben werden kann. Ein Element $0\in G$ heisst {\em neutrales Element} bezüglich der additiv +\index{neutrales Element}% geschriebenen Verknüpfung falls $0+x=x$ für alle $x\in G$. \index{neutrales Element}% Ein Element $e\in G$ heisst neutrales Element bezüglich der multiplikativ geschriebneen Verknüpfung, wenn $ex=x$ für alle $x\in G$. In den folgenden Definitionen werden wir immer die multiplikative -Schreibweise verwenden, für Fälle additiv geschriebener siehe auch die -Beispiele weiter unten. +Schreibweise verwenden, für Fälle additiv geschriebener Verknüpfungen +siehe auch die Beispiele weiter unten. \begin{definition} \index{Gruppe}% @@ -32,24 +35,28 @@ Eigenschaften: \begin{enumerate} \item Die Verknüpfung ist assoziativ: $(ab)c=a(bc)$ für alle $a,b,c\in G$. +\index{assoziativ}% \item Es gibt ein neutrales Element $e\in G$ \item Für jedes Element $g\in G$ gibt es ein Element $h\in G$ mit $hg=e$. \end{enumerate} -Das Element $h$ heisst auch das Inverse Element zu $g$. +Das Element $h$ heisst auch das inverse Element zu $g$. +\index{inverses Element}% \end{definition} Falls nicht jedes Element invertierbar ist, aber wenigstens ein neutrales Element vorhanden ist, spricht man von einem {\em Monoid}. \index{Monoid}% -Hat man nur eine Verknüpfung, spricht man oft von einer {\em Halbruppe}. +Hat man nur eine Verknüpfung, aber kein neutrales Element, +spricht man oft von einer {\em Halbruppe}. \index{Halbgruppe}% \begin{definition} Eine Gruppe $G$ heisst abelsch, wenn $ab=ba$ für alle $a,b\in G$. \end{definition} +\index{abelsch}% Additiv geschrieben Gruppen werden immer als abelsch angenommen, multiplikativ geschrieben Gruppen können abelsch oder nichtabelsch sein. @@ -63,7 +70,9 @@ Das additive Inverse eines Elementes $a$ ist $-a$. \end{beispiel} \begin{beispiel} -Die von Null verschiedenen Elemente $\Bbbk^*$ eines Zahlekörpers bilden +Die von Null verschiedenen Elemente $\Bbbk^*=\Bbbk\setminus\{0\}$ (definiert +auf Seite~\pageref{buch:zahlen:def:bbbk*}) +eines Zahlekörpers bilden bezüglich der Multiplikation eine Gruppe mit neutralem Element $1$. Das multiplikative Inverse eines Elementes $a\in \Bbbk$ mit $a\ne 0$ ist $a^{-1}=\frac1{a}$. @@ -75,7 +84,7 @@ dem Nullvektor als neutralem Element. Betrachtet man $\Bbbk^n$ als Gruppe, verliert man die Multiplikation mit Skalaren aus den Augen. $\Bbbk^n$ als Gruppe zu bezeichnen ist also nicht falsch, man -verliert dadurch aber +verliert dadurch aber den Blick auf die Multiplikation mit Skalaren. \end{beispiel} \begin{beispiel} @@ -115,6 +124,7 @@ Ist $G$ eine Gruppe mit neutralem Element $e$, dann gilt $xe=x$ für alle $x\in G$ \item Es gibt nur ein neutrales Element. +\index{neutrales Element}% Wenn also $f\in G$ mit $fx=x$ für alle $x\in G$, ist dann folgt $f=e$. \item Wenn $hg=e$ gilt, dann auch $gh=e$ und $h$ ist durch $g$ eindeutig bestimmt. @@ -171,16 +181,22 @@ f = fe = e \] aus der Eigenschaft~1. -Schliesslich sei $x$ ein beliebiges Inverses von $g$, dann ist -$xg=e$, dann folgt +Schliesslich sei $x$ ein beliebiges Inverses von $g$. +Dann ist $xg=e$ und es folgt $x=xe=x(gh)=(xg)h = eh = h$, es gibt also nur ein Inverses von $g$. \end{proof} -Diesem Problem sind wir zum Beispiel auch in +Der Frage, ob Linksinverse und Rechtsinverse übereinstimmen, +sind wir zum Beispiel bereits in Abschnitt~\ref{buch:grundlagen:subsection:gleichungssyteme} -begegnet, wo wir nur gezeigt haben, dass $AA^{-1}=E$ ist. -Da aber die invertierbaren Matrizen eine Gruppe -bilden, folgt jetzt aus dem Satz automatisch, dass auch $A^{-1}A=E$. +begegnet. +Dort haben wir bereits gezeigt, dass nicht nur $AA^{-1}=I$, +sondern auch $A^{-1}A=I$. +Die dabei verwendete Methode war identisch mit dem hier gezeigten +Beweis. +Da die invertierbaren Matrizen eine Gruppe bilden, stellt sich +dieses Resultat jetzt als Spezialfall des +Satzes~\ref{buch:vektorenmatrizen:satz:gruppenregeln} dar. \subsubsection{Homomorphismen} \label{buch:gruppen:subsection:homomorphismen} Lineare Abbildung zwischen Vektorräumen zeichnen sich dadurch aus, @@ -189,6 +205,7 @@ Für eine Abbildung zwischen Gruppen heisst dies, dass die Verknüpfung, das neutrale Element und die Inverse respektiert werden müssen. \begin{definition} +\label{buch:gruppen:def:homomorphismus} Ein Abbildung $\varphi\colon G\to H$ zwischen Gruppen heisst ein {\em Homomorphismus}, wenn $\varphi(g_1g_2)=\varphi(g_1)\varphi(g_2)$ für alle $g_1,g_2\in G$ gilt. @@ -231,17 +248,20 @@ e ghg^{-1}\in\ker\varphi. \] Der Kern wird also von der Abbildung $h\mapsto ghg^{-1}$, -der {\em Konjugation} in sich abgebildet. +der {\em Konjugation}, in sich abgebildet. +\index{Konjugation in einer Gruppe} \begin{definition} Eine Untergruppe $H \subset G$ heisst ein {\em Normalteiler}, geschrieben $H \triangleleft G$ wenn $gHg^{-1}\subset H$ für jedes $g\in G$. -\index{Normalteiler} +\index{Normalteiler}% \end{definition} Die Konjugation selbst ist ebenfalls keine Unbekannte, sie ist uns -bei der Basistransformationsformel schon begegnet. +bei der Basistransformationsformel +\eqref{buch:vektoren-und-matrizen:eqn:basiswechselabb} +schon begegnet. Die Tatsache, dass $\ker\varphi$ unter Konjugation erhalten bleibt, kann man also interpretieren als eine Eigenschaft, die unter Basistransformation erhalten bleibt. @@ -312,7 +332,7 @@ auf einem geeigneten Vektorraum. \begin{definition} \label{buch:vektorenmatrizen:def:darstellung} -Eine Darstellung einer Gruppe $G$ ist ein Homomorphismus +Eine {\em Darstellung} einer Gruppe $G$ ist ein Homomorphismus $G\to\operatorname{GL}_n(\mathbb{R})$. \index{Darstellung} \end{definition} @@ -324,11 +344,12 @@ sind alle Teilmengen von $\operatorname{GL}_n(\mathbb{R})$. Die Einbettungsabbildung $G\hookrightarrow \operatorname{GL}_n(\mathbb{R})$ ist damit automatisch eine Darstellung, sie heisst auch die {\em reguläre Darstellung} der Gruppe $G$. -\index{reguläre Darstellung} +\index{reguläre Darstellung}% +\index{Darstellung, reguläre}% \end{beispiel} In Kapitel~\ref{buch:chapter:permutationen} wird gezeigt, -dass Permutationen einer endlichen eine Gruppe bilden und wie +dass Permutationen einer endlichen Menge eine Gruppe bilden und wie sie durch Matrizen dargestellt werden können. diff --git a/buch/chapters/10-vektorenmatrizen/hadamard.tex b/buch/chapters/10-vektorenmatrizen/hadamard.tex index 1fd0373..787b0f5 100644 --- a/buch/chapters/10-vektorenmatrizen/hadamard.tex +++ b/buch/chapters/10-vektorenmatrizen/hadamard.tex @@ -25,14 +25,16 @@ dies ist das Hadamard-Produkt. \begin{definition} Das {\em Hadamard-Produkt} zweier Matrizen +\index{Hadamard-Produkt}% $A,B\in M_{m\times n}(\Bbbk)$ ist definiert als die Matrix $A\odot B$ mit den Komponenten \[ -(A\odot B)_{ij} = (A)_{ij} (B)_{ij}. +(A\odot B)_{i\!j} = (A)_{i\!j} (B)_{i\!j}. \] Wir nennen $M_{m\times n}(\Bbbk)$ mit der Multiplikation $\odot$ -auch die Hadamard-Algebra $H_{m\times n}(\Bbbk)$. +auch die {\em Hadamard-Algebra} $H_{m\times n}(\Bbbk)$. +\index{Hadamard-Algebra}% \end{definition} Dies ist jedoch nur interessant, wenn $M_{m\times n}(\Bbbk)$ mit diesem @@ -46,30 +48,30 @@ Es gilt \begin{align*} A\odot(B\odot C) &= (A\odot B)\odot C &&\Leftrightarrow& -a_{ij}(b_{ij}c_{ij}) &= (a_{ij}b_{ij})c_{ij} +a_{i\!j}(b_{i\!j}c_{i\!j}) &= (a_{i\!j}b_{i\!j})c_{i\!j} \\ A\odot(B+C) &= A\odot B + A\odot C &&\Leftrightarrow& -a_{ij}(b_{ij}+c_{ij}) &= a_{ij}b_{ij} + a_{ij}c_{ij} +a_{i\!j}(b_{i\!j}+c_{i\!j}) &= a_{i\!j}b_{i\!j} + a_{i\!j}c_{i\!j} \\ (A+B)\odot C&=A\odot C+B\odot C &&\Leftrightarrow& -(a_{ij}+b_{ij})c_{ij}&=a_{ij}c_{ij} + b_{ij}c_{ij} +(a_{i\!j}+b_{i\!j})c_{i\!j}&=a_{i\!j}c_{i\!j} + b_{i\!j}c_{i\!j} \\ (\lambda A)\odot B &= \lambda (A\odot B) &&\Leftrightarrow& -(\lambda a_{ij})b_{ij}&=\lambda(a_{ij}b_{ij}) +(\lambda a_{i\!j})b_{i\!j}&=\lambda(a_{i\!j}b_{i\!j}) \\ A\odot(\lambda B)&=\lambda(A\odot B) &&\Leftrightarrow& -a_{ij}(\lambda b_{ij})&=\lambda(a_{ij}b_{ij}) +a_{i\!j}(\lambda b_{i\!j})&=\lambda(a_{i\!j}b_{i\!j}) \end{align*} für alle $i,j$. Das Hadamard-Produkt ist kommutativ, da die Multiplikation in $\Bbbk$ kommuativ ist. Das Hadamard-Produkt kann auch für Matrizen mit Einträgen in einem -Ring definiert werden, in diesem Fall ist es möglich, dass die entsehende +Ring definiert werden, in diesem Fall ist es möglich, dass die entstehende Algebra nicht kommutativ ist. Die Hadamard-Algebra hat auch ein Eins-Elemente, nämlich die Matrix, @@ -77,6 +79,7 @@ die aus lauter Einsen besteht. \begin{definition} Die sogenannte {\em Einsmatrix} $U$ ist die Matrix +\index{Einsmatrix} \[ U=\begin{pmatrix} 1&1&\dots&1\\ @@ -106,7 +109,7 @@ Auch die Hadamard-Algebra $H_{m\times n}(\Bbbk)$ kann als Funktionenalgebra betrachtet werden. Einer Matrix $A\in H_{m\times n}(\Bbbk)$ ordnet man die Funktion \[ -a\colon [m]\times [n] : (i,j) \mapsto a_{ij} +a\colon [m]\times [n] : (i,j) \mapsto a_{i\!j} \] zu. Dabei gehen die Algebraoperationen von $H_{m\times n}(\Bbbk)$ über @@ -131,7 +134,7 @@ A=\begin{pmatrix}3&4\\4&5\end{pmatrix} B=\begin{pmatrix}-5&4\\4&-3\end{pmatrix} \] sind inverse Matrizen bezüglich des Matrizenproduktes, also -$AB=E$. +$AB=I$. Für das Hadamard-Produkt gilt dagegen \[ A\odot B @@ -141,13 +144,15 @@ A\odot B 16&-15 \end{pmatrix}. \] -Die Inverse einer Matrix $A$ Bezüglich des Hadamard-Produktes hat -die Einträge $a_{ij}^{-1}$. -Die Matrix $E$ ist bezüglich des gewöhnlichen Matrizenproduktes +Die Inverse einer Matrix $A$ bezüglich des Hadamard-Produktes hat +die Einträge $a_{i\!j}^{-1}$. +Die Matrix $I$ ist bezüglich des gewöhnlichen Matrizenproduktes invertierbar, aber sie ist bezüglich des Hadamard-Produktes nicht invertierbar. +Umgekehrt ist die Einsmatrix $U$ invertierbar bezüglich des +Hadamard-Produktes, aber für $n>1$ nicht für das Matrizenprodukt. -\subsubsection{Einbettung der Hadamard-Algebra ein eine Matrizenalgebra} +\subsubsection{Einbettung der Hadamard-Algebra in eine Matrizenalgebra} Hadamard-Algebren können als Unteralgebren einer Matrizenalgebra betrachtet werden. Der Operator $\operatorname{diag}$ bildet Vektoren ab in Diagonalmatrizen @@ -224,36 +229,32 @@ a_{nn} Bei dieser Abbildung geht die Hadamard-Multiplikation wieder in das gewöhnliche Matrizenprodukt über. -% XXX Faltungsmatrizen und Fouriertheorie -\subsubsection{Beispiel: Faltung und Fourier-Theorie} - -\subsection{Weitere Verknüpfungen -\label{buch:vektorenmatrizen:subsection:weitere}} - \subsubsection{Transposition} Das Hadamard-Produkt verträgt sich mit der Transposition: +\index{Transposition}% \[ (A\odot B)^t = A^t \odot B^t. \] Insbesondere ist das Hadamard-Produkt zweier symmetrischer Matrizen auch wieder symmetrisch. -\subsubsection{Frobeniusnorm} +\subsubsection{Frobenius-Norm} Das Hadamard-Produkt in der Hadamard-Algebra $H_{m\times n}(\mathbb{R})$ nimmt keine Rücksicht auf die Dimensionen einer Matrix und ist nicht unterscheidbar von $\mathbb{R}^{m\times n}$ mit dem Hadamard-Produkt. Daher darf auch der Begriff einer mit den algebraischen Operationen -verträglichen Norm nicht von von den Dimensionen abhängen. +verträglichen Norm nicht von den spezifischen Dimensionen $m$ und $n$ abhängen. Dies führt auf die folgende Definition einer Norm. \begin{definition} -Die {\em Frobenius-Norm} einer Matrix $A\in H_{m\times n}\mathbb{R})$ -mit den Einträgen $(a_{ij})=A$ ist +Die {\em Frobenius-Norm} einer Matrix $A\in H_{m\times n}(\mathbb{R})$ +\index{Frobenius-Norm}% +mit den Einträgen $(a_{i\!j})=A$ ist \[ \| A\|_F = \sqrt{ -\sum_{i,j} a_{ij}^2 +\sum_{i,j} a_{i\!j}^2 }. \] Das {\em Frobenius-Skalarprodukt} zweier Matrizen @@ -262,14 +263,15 @@ ist \[ \langle A,B\rangle_F = -\sum_{i,j} a_{ij} b_{ij} +\sum_{i,j} a_{i\!j} b_{i\!j} = \operatorname{Spur} A^t B \] und es gilt $\|A\|_F = \sqrt{\langle A,A\rangle}$. \end{definition} -Für komplexe Matrizen muss +Für komplexe Matrizen muss die Definition angepasst werden, damit +das Skalarprodukt sesquilinear und positiv definit wird. \begin{definition} Die {\em komplexe Frobenius-Norm} einer Matrix $A\in H_{m\times n}(\mathbb{C})$ @@ -278,11 +280,11 @@ ist \| A\| = \sqrt{ -\sum_{i,j} |a_{ij}|^2 +\sum_{i,j} |a_{i\!j}|^2 } = \sqrt{ -\sum_{i,u} \overline{a}_{ij} a_{ij} +\sum_{i,u} \overline{a}_{i\!j} a_{i\!j} } \] das {\em komplexe Frobenius-Skalarprodukt} zweier Matrizen @@ -290,18 +292,10 @@ $A,B\in H_{m\times n}(\mathbb{C})$ ist das Produkt \[ \langle A,B\rangle_F = -\sum_{i,j}\overline{a}_{ij} b_{ij} +\sum_{i,j}\overline{a}_{i\!j} b_{i\!j} = \operatorname{Spur} (A^* B) \] und es gilt $\|A\|_F = \sqrt{\langle A,A\rangle}$. \end{definition} -% XXX Frobeniusnorm - -\subsubsection{Skalarprodukt} - -% XXX Skalarprodukt - - - diff --git a/buch/chapters/10-vektorenmatrizen/koerper.tex b/buch/chapters/10-vektorenmatrizen/koerper.tex index e1dda6d..1754ce6 100644 --- a/buch/chapters/10-vektorenmatrizen/koerper.tex +++ b/buch/chapters/10-vektorenmatrizen/koerper.tex @@ -11,10 +11,67 @@ sehr spezielle Algebren, man nennt sie Körper. In diesem Abschnitt sollen die wichtigsten Eigenschaften von Körpern zusammengetragen werden. +\begin{definition} +Ein Körper $K$ ist ein additive Gruppe mit einer multiplikativen +Verknüpfung derart, dass $K^* = K \setminus \{0\}$ eine Gruppe bezüglich +der Multiplikation ist. +Ausserdem gelten die Distributivgesetze +\[ +(a+b)c = ac+bc +\qquad a,b,c\in K. +\] +\end{definition} -XXX TODO +Ein Körper ist also ein Ring derart, dass die Einheitengruppe $K^*$ ist. +\begin{beispiel} +Die Menge $\mathbb{F}_2=\{0,1\}$ mit der Additions- und +Mutliplikationstabelle +\begin{center} +\begin{tabular}{|>{$}c<{$}|>{$}c<{$}>{$}c<{$}|} +\hline ++&0&1\\ +\hline +0&0&1\\ +1&1&0\\ +\hline +\end{tabular} +\qquad +\qquad +\qquad +\begin{tabular}{|>{$}c<{$}|>{$}c<{$}>{$}c<{$}|} +\hline +\cdot&0&1\\ +\hline +0&0&0\\ +1&0&1\\ +\hline +\end{tabular} +\end{center} +ist der kleinste mögliche Körper. +\end{beispiel} +\begin{beispiel} +Die Menge der rationalen Funktionen +\[ +\mathbb{Q}(z) += +\biggl\{ +f(z) += +\frac{p(z)}{q(z)} +\, +\bigg| +\, +\begin{minipage}{5.5cm} +\raggedright +$p(z), q(z)$ sind Polynome mit rationalen Koeffizienten, $q(z)\ne 0$ +\end{minipage} +\, +\biggr\} +\] +ist ein Körper. +\end{beispiel} diff --git a/buch/chapters/10-vektorenmatrizen/linear.tex b/buch/chapters/10-vektorenmatrizen/linear.tex index 3ad51f1..70c1f9c 100755 --- a/buch/chapters/10-vektorenmatrizen/linear.tex +++ b/buch/chapters/10-vektorenmatrizen/linear.tex @@ -8,7 +8,7 @@ \rhead{Lineare Algebra} In diesem Abschnitt tragen wir die bekannten Resultate der linearen Algebra zusammen. -Meistens lernt man diese zuerst für Vektoren und Gleichungssyteme mit +Meistens lernt man diese zuerst für Vektoren und Gleichungssysteme mit reellen Variablen. In der linearen Algebra werden aber nur die arithmetischen Grundoperationen verwendet, es gibt also keinen Grund, warum sich @@ -16,7 +16,8 @@ die Theorie nicht über einem beliebigen Zahlenkörper entwickeln lassen sollte. Die in Kapitel~\ref{buch:chapter:endliche-koerper} untersuchten endlichen Körper sind zum Beispiel besser geeignet für Anwendungen in -der Kryptographie oder für die diskrete schnelle Fourier-Transformation. +der Kryptographie, der Codierungstheorie oder für die diskrete schnelle +Fourier-Transformation. Daher geht es in diesem Abschnitt weniger darum alles herzuleiten, sondern vor allem darum, die Konzepte in Erinnerung zu rufen und so zu formulieren, dass offensichtlich wird, dass alles mit einem @@ -28,27 +29,31 @@ beliebigen Zahlkörper $\Bbbk$ funktioniert. \subsection{Vektoren \label{buch:grundlagen:subsection:vektoren}} Koordinatensysteme haben ermöglicht, Punkte als Zahlenpaare zu beschreiben. -Dies ermöglicht, geometrische Eigenschaften als Gleichungen auszudrücken, -aber mit Punkten kann man trotzdem noch nicht rechnen. +Dies ermöglicht, geometrische Eigenschaften als Gleichungen auszudrücken. +Das bedeutet aber nur, dass man mit den Koordinaten rechnen kann, +mit den Punkten selbst kann man trotzdem noch nicht rechnen. Ein Vektor fasst die Koordinaten eines Punktes in einem Objekt zusammen, mit dem man auch rechnen und zum Beispiel Parallelverschiebungen algebraisieren kann. -Um auch Streckungen ausdrücken zu können, wird auch eine Menge von +Um auch Streckungen ausdrücken zu können, wird zudem eine Menge von Streckungsfaktoren benötigt, mit denen alle Komponenten eines Vektors multipliziert werden können. Sie heissen auch {\em Skalare} und liegen in $\Bbbk$. \subsubsection{Zeilen- und Spaltenvektoren} Vektoren sind Tupel von Elementen aus $\Bbbk$. +\index{Vektor}% \begin{definition} Ein $n$-dimensionaler {\em Spaltenvektor} ist ein $n$-Tupel von Zahlen aus +\index{Spaltenvektor}% $\Bbbk$ geschrieben als \[ v = \begin{pmatrix} v_1\\v_2\\\vdots\\v_n\end{pmatrix} \in \Bbbk^n. \] Ein $m$-dimensionaler {\em Zeilenvektor} wird geschrieben als +\index{Zeilenvektor}% \[ u = \begin{pmatrix}u_1&u_2&\dots&u_m\end{pmatrix} \in \Bbbk^m. \] @@ -56,6 +61,7 @@ u = \begin{pmatrix}u_1&u_2&\dots&u_m\end{pmatrix} \in \Bbbk^m. Für Vektoren gleicher Dimension sind zwei Rechenoperationen definiert. Die {\em Addition von Vektoren} $a,a\in\Bbbk^n$ und die Multiplikation +\index{Addition von Vektoren}% eines Vektors mit einem Skalar $\lambda\in\Bbbk$ erfolgt elementweise: \[ a+b @@ -75,6 +81,9 @@ a+b \] Die üblichen Rechenregeln sind erfüllt, nämlich \begin{equation} +\index{Kommutativgesetz}% +\index{Assoziativgesetz}% +\index{Distributivgesetz}% \begin{aligned} &\text{Kommutativität:} & @@ -105,12 +114,13 @@ man Skalare immer links von Vektoren schreiben muss. Die Distributivgesetze zum Beispiel sagen, dass man Ausmultipilizieren oder Ausklammern kann genauso wie in Ausdrücken, die nur Zahlen enthalten. -Man beachte, dass es im allgemeinen kein Produkt von Vektoren gibt. +Man beachte, dass es im Allgemeinen kein Produkt von Vektoren gibt. Das aus der Vektorgeometrie bekannte Vektorprodukt ist eine Spezialität des dreidimensionalen Raumes, es gibt keine Entsprechung dafür in anderen Dimensionen. \subsubsection{Standardbasisvektoren} +\index|{Standardbasisvektor}% In $\Bbbk^n$ findet man eine Menge von speziellen Vektoren, durch die man alle anderen Vektoren ausdrücken kann. Mit den sogenannten {\em Standardbasisvektoren} @@ -137,6 +147,10 @@ a_n \begin{pmatrix}0\\0\\\vdots\\1\end{pmatrix} a_1e_1+a_2e_2+\dots+a_ne_n \] ausgedrückt werden. +Dies ist ein Speziallfall des Begriffs der Linearkombination, der +weiter unten in +Definition~\ref{buch:vektoren-und-matrizen:def:linearkombination} +eingeführt wird. \subsubsection{Vektorraum} Die Rechnungen, die man gemäss der Rechengesetze @@ -147,7 +161,7 @@ Jede Art von mathematischem Objekt, mit dem man so rechen kann, kann als (abstrakter) Vektor betrachtet werden. \begin{definition} -Eine Menge $V$ von Objekten, auf der zwei Operationen definiert, +Eine Menge $V$ von Objekten, auf der zwei Operationen definiert sind, nämlich die Addition, geschrieben $a+b$ für $a,b\in V$ und die Multiplikation mit Skalaren, geschrieben $\lambda a$ für $a\in V$ und $\lambda\in \Bbbk$, heisst ein {\em $\Bbbk$-Vektorraum} oder {\em Vektorraum @@ -155,6 +169,8 @@ $\lambda\in \Bbbk$, heisst ein {\em $\Bbbk$-Vektorraum} oder {\em Vektorraum einfach nur {\em Vektorraum}, wenn $\Bbbk$ aus dem Kontext klar sind), wenn die Rechenregeln~\eqref{buch:vektoren-und-matrizen:eqn:vrgesetze} gelten +\index{Vektorraum}% +\index{k-Vektorraum@$\Bbbk$-Vektorraum}% \end{definition} Die Mengen von Spaltenvektoren $\Bbbk^n$ sind ganz offensichtlich @@ -164,6 +180,7 @@ Polynomen mit Koeffizienten in $\Bbbk$ sind ebenfalls Vektorräume. \begin{beispiel} Die Zahlenmenge $\mathbb{C}$ ist ein $\mathbb{R}$-Vektorraum. +\index{C als R-Vektorraum@$\mathbb{C}$ als $\mathbb{R}$-Vektorraum}% Elemente von $\mathbb{C}$ können addiert und mit reellen Zahlen multipliziert werden. Die Rechenregeln für die komplexen Zahlen umfassen auch alle Regeln @@ -174,6 +191,7 @@ $\mathbb{C}$ ein Vektorraum über $\mathbb{R}$. \begin{beispiel} Die Menge $C([a,b])$ der stetigen Funktionen $[a,b]\to\mathbb{Re}$ bildet ein Vektorraum. +\index{stetige Funktionen}% Funktionen können addiert und mit reellen Zahlen multipliziert werden: \[ (f+g)(x) = f(x) + g(x) @@ -190,13 +208,16 @@ Die Vektorraum-Rechenregeln Die Beispiele zeigen, dass der Begriff des Vektorraums die algebraischen Eigenschaften eine grosse Zahl sehr verschiedenartiger mathematischer Objekte beschreiben kann. -Alle Erkenntnisse, die man ausschliesslich aus Vekotorraumeigenschaften +Alle Erkenntnisse, die man ausschliesslich aus Vektorraumeigenschaften gewonnen hat, sind auf alle diese Objekte übertragbar. Im folgenden werden wir alle Aussagen für einen Vektorraum $V$ formulieren, wenn wir die Darstellung als Tupel $\Bbbk^n$ nicht brauchen. \subsubsection{Gleichungssysteme in Vektorform} Die Vektorraum-Operationen erlauben nun auch, lineare Gleichungssysteme +\index{lineares Gleichungssytem}% +\index{Gleichungssytem, lineares}% +\index{Vektorform}% in {\em Vektorform} zu schreiben: \index{Vektorform eines Gleichungssystems}% \begin{equation} @@ -222,11 +243,13 @@ x_n \begin{pmatrix}b_1\\\vdots\\b_m\end{pmatrix} \label{buch:vektoren-und-matrizen:eqn:vektorform} \end{equation} -Die rechte Seite von~\eqref{buch:vektoren-und-matrizen:eqn:vektorform} -ist eine Linearkombination der Spaltenvektoren. +Die linke Seite der Gleichung rechts in~\eqref{buch:vektoren-und-matrizen:eqn:vektorform} +\index{Linearkombination}% +ist, wie man sagt, eine Linearkombination der Spaltenvektoren. \begin{definition} -Eine Linearkombination der Vektoren $v_1,\dots,v_n\in V$ ist ein Ausdruck +\label{buch:vektoren-und-matrizen:def:linearkombination} +Eine {\em Linearkombination} der Vektoren $v_1,\dots,v_n\in V$ ist ein Ausdruck der Form \[ v @@ -249,7 +272,7 @@ Sind $a_1,\dots,a_n\in V$ Vektoren, dann heisst die Menge \] aller Vektoren, die sich durch Linearkombination aus den Vektoren $a_1,\dots,a_n$ gewinnen lassen, der von $a_1,\dots,a_n$ -aufgespannte Raum. +{\em aufgespannte Raum}. \end{definition} \subsubsection{Lineare Abhängigkeit} @@ -336,6 +359,7 @@ Skalaren immer noch möglich ist. \begin{definition} Eine Teilmenge $U\subset V$ heisst ein {\em Unterraum} von $V$, wenn +\index{Unterraum}% $U$ selbst ein $\Bbbk$-Vektorraum ist, also \[ \begin{aligned} @@ -359,7 +383,7 @@ Spaltenvektoren Spezialfälle sind. \subsubsection{Definition einer Matrix} \begin{definition} -Eine $m\times n$-Matrix $A$ (über $\Bbbk$) ist rechteckiges Schema +Eine {\em $m\times n$-Matrix} $A$ (über $\Bbbk$) ist ein rechteckiges Schema \index{Matrix}% \[ A @@ -371,10 +395,14 @@ a_{21}&a_{22}&\dots &a_{2n}\\ a_{m1}&a_{m2}&\dots &a_{mn}\\ \end{pmatrix} \] -mit $a_{ij}\in\Bbbk$. +mit $a_{i\!j}\in\Bbbk$. Die Menge aller $m\times n$-Matrizen wird mit \[ -M_{m\times n}(\Bbbk) = \{ A\;|\; \text{$A$ ist eine $m\times n$-Matrix}\}. +M_{m\times n}(\Bbbk) += +M_{m,n}(\Bbbk) += +\{ A\;|\; \text{$A$ ist eine $m\times n$-Matrix}\}. \] Falls $m=n$ gilt, heisst die Matrix $A$ auch {\em quadratisch} \index{quadratische Matrix}% @@ -385,7 +413,7 @@ $M_n(\Bbbk) = M_{n\times n}(\Bbbk)$ ab. Die $m$-dimensionalen Spaltenvektoren $v\in \Bbbk^m$ sind $m\times 1$-Matrizen $v\in M_{n\times 1}(\Bbbk)$, die $n$-dimensionalen Zeilenvetoren $u\in\Bbbk^n$ sind $1\times n$-Matrizen $v\in M_{1\times n}(\Bbbk)$. -Eine $m\times n$-Matrix $A$ mit den Koeffizienten $a_{ij}$ besteht aus +Eine $m\times n$-Matrix $A$ mit den Koeffizienten $a_{i\!j}$ besteht aus den $n$ Spaltenvektoren \[ a_1 = \begin{pmatrix} a_{11} \\ a_{21} \\ \vdots \\ a_{m1} \end{pmatrix},\quad @@ -426,54 +454,57 @@ a_{m1}+b_{m1}&a_{m2}+b_{m2}&\dots &a_{mn}+b_{mn} \end{definition} \subsubsection{Multiplikation} -Will man ein lineares Gleichungssystem mit Hilfe der Matrix $A$ der +Will man ein lineares Gleichungssystem +wie~\eqref{buch:vektoren-und-matrizen:eqn:vektorform} +mit Hilfe der Matrix $A$ der Koeffizienten schreiben, bekommt es die Form $Ax=b$, wobei der Vektor der rechten Seiten ist, und $x$ ein Vektor von unbekannten Zahlen. Dies ist jedoch nur sinnvoll, wenn das Produkt $Ax$ sinnvoll definiert werden kann. \begin{definition} +\label{buch:vektoren-und-matrizen:def:matrixmultiplikation} Eine $m\times n$-Matrix $A\in M_{m\times n}(\Bbbk)$ und eine $n\times l$-Matrix $B\in M_{n\times l}(\Bbbk)$ haben als Produkt eine $m\times l$-Matrix $C=AB\in M_{m\times l}(\Bbbk)$ mit den Koeffizienten \begin{equation} -c_{ij} = \sum_{k=1}^n a_{ik} b_{kj}. -\label{buch:vektoren-unbd-matrizen:eqn:matrixmultiplikation} +c_{i\!j} = \sum_{k=1}^n a_{ik} b_{kj}. +\label{buch:vektoren-und-matrizen:eqn:matrixmultiplikation} \end{equation} \end{definition} Die Koeffizienten $a_{ik}$ kommen aus der Zeile $i$ von $A$, die Koeffizienten $b_{kj}$ stehen in der Spalte $j$ von $B$, die Multiplikationsregel \eqref{buch:vektoren-unbd-matrizen:eqn:matrixmultiplikation} -besagt also, dass das Element $c_{ij}$ entsteht als das Produkt +besagt also, dass das Element $c_{i\!j}$ entsteht als das Produkt der Zeile $i$ von $A$ mit der Spalte $j$ von $C$. \subsubsection{Einheitsmatrix} Welche $m\times m$-Matrix $I\in M_{m}(\Bbbk)$ hat die Eigenschaft, dass $IA=A$ für jede beliebige Matrix $A\in M_{m\times n}(\Bbbk)$. -Wir bezeichnen die Einträge von $I$ mit $\delta_{ij}$. +Wir bezeichnen die Einträge von $I$ mit $\delta_{i\!j}$. Die Bedingung $IA=A$ bedeutet \[ -a_{ij} = \delta_{i1}a_{1j} + \dots + \delta_{im}a_{mj}, +a_{i\!j} = \delta_{i1}a_{1j} + \dots + \delta_{im}a_{mj}, \] -Da auf der linken Seite nur $a_{ij}$ vorkommt, müssen alle Terme auf der -rechten Seite verschwinden ausser dem Term mit $a_{ij}$, dessen +Da auf der linken Seite nur $a_{i\!j}$ vorkommt, müssen alle Terme auf der +rechten Seite verschwinden ausser dem Term mit $a_{i\!j}$, dessen Koeffizient $\delta_{ii}=1$ sein muss. Die Koeffizienten sind daher \[ -\delta_{ij} +\delta_{i\!j} = \begin{cases} 1&\qquad i=j\\ 0&\qquad\text{sonst} \end{cases} \] -Die Zahlen $\delta_{ij}$ heissen auch das {\em Kronecker-Symbol} oder +Die Zahlen $\delta_{i\!j}$ heissen auch das {\em Kronecker-Symbol} oder {\em Kronecker-Delta}. \index{Kronecker-$\delta$}% \index{Kronecker-Symbol}% -Die Matrix $I$ hat die Einträge $\delta_{ij}$ und heisst die +Die Matrix $I$ hat die Einträge $\delta_{i\!j}$ und heisst die {\em Einheitsmatrix} \index{Einheitsmatrix}% \[ @@ -487,7 +518,27 @@ I \end{pmatrix}. \] - +\subsubsection{Transponierte Matrix} +\index{transponierte Matrix}% +\index{Matrix, transponiert}% +Die zu einer $m\times n$-Matrix $A$ {\em transponierte} Matrix ist die +$n\times m$-Matrix +\[ +A^t=\begin{pmatrix} +a_{11}&a_{21}&\dots&a_{m1}\\ +a_{12}&a_{22}&\dots&a_{m2}\\ +\vdots&\vdots&\ddots&\vdots\\ +a_{1n}&a_{2n}&\dots&a_{mn} +\end{pmatrix}. +\] +Sie entsteht aus der Matrix $A$ durch Vertauschung von Zeilen und Spalten. +Aus der Definition~\ref{buch:vektoren-und-matrizen:def:matrixmultiplikation} +folgt unmittelbar die Rechenregel $(AB)^t = B^tA^t$. + +Eine Matrix $A$ heisst {\em symmetrisch}, wenn $A^t=A$ ist, sie heisst +{\em antisymmetrisch}, wenn $A^t=-A$ gilt. +\index{symmetrische Matrix}% +\index{antisymmetrische Matrix}% % % Gleichungssysteme % @@ -523,17 +574,21 @@ Ein Gleichungssystem mit rechter Seite $0$ heisst {\em homogen}. \index{homogenes Gleichungssystem}% Zu jedem {\em inhomogenen} Gleichungssystem $Ax=b$ mit $b\ne 0$ ist $Ax=0$ das zugehörige homogene Gleichungssystem. +\index{inhomogenes Gleichungssystem}% Ein homogenes Gleichungssytem $Ax=0$ hat immer mindestens die Lösung $x=0$, man nennt sie auch die {\em triviale} Lösung. +\index{triviale Lösung}% Eine Lösung $x\ne 0$ heisst auch eine nichttriviale Lösung. Die Lösungen eines inhomgenen Gleichungssystem $Ax=b$ ist also nur dann eindeutig, wenn das zugehörige homogene Gleichungssystem eine nichttriviale Lösung hat. \subsubsection{Gauss-Algorithmus} -Der Gauss-Algorithmus oder genauer Gausssche Eliminations-Algorithmus -löst ein lineare Gleichungssystem der +Der Gauss-Algorithmus oder genauer Gausssche Eliminationsalgorithmus +löst ein lineares Gleichungssystem der +\index{Gauss-Algorithmus}% +\index{Gausscher Eliminationsalgorithmus}% Form~\eqref{buch:vektoren-und-matrizen:eqn:vektorform}. Die Koeffizienten werden dazu in das Tableau \[ @@ -547,21 +602,22 @@ a_{m1}&\dots &a_{mn}&b_m \\ \] geschrieben. Die vertikale Linie erinnert an die Position des Gleichheitszeichens. -Es beinhaltet alle Informationen zur Durchführung des Algorithmus. +Das Tableau beinhaltet alle Informationen zur Durchführung des Algorithmus. Der Algorithmus is so gestaltet, dass er nicht mehr Speicher als das Tableau benötigt, alle Schritte operieren direkt auf den Daten des Tableaus. In jedem Schritt des Algorithmus wird zunächst eine Zeile $i$ und -Spalte $j$ ausgewählt, das Elemente $a_{ij}$ heisst das Pivotelement. +Spalte $j$ ausgewählt, das Elemente $a_{i\!j}$ heisst das {\em Pivotelement}. \index{Pivotelement}% Die {\em Pivotdivision} +\index{Pivotdivision} \[ \begin{tabular}{|>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}|>{$}c<{$}|} \hline a_{11}&\dots &a_{1j}&\dots &a_{1n}&b_1 \\[-2pt] \vdots& &\vdots&\ddots&\vdots&\vdots\\ -a_{i1}&\dots &{\color{red}a_{ij}}&\dots &a_{in}&b_i \\[-2pt] +a_{i1}&\dots &{\color{red}a_{i\!j}}&\dots &a_{in}&b_i \\[-2pt] \vdots& &\vdots&\ddots&\vdots&\vdots\\ a_{m1}&\dots &a_{mj}&\dots &a_{mn}&b_m \\ \hline @@ -571,7 +627,7 @@ a_{m1}&\dots &a_{mj}&\dots &a_{mn}&b_m \\ \hline a_{11}&\dots &a_{1j}&\dots &a_{1n}&b_1 \\[-2pt] \vdots& &\vdots&\ddots&\vdots&\vdots\\ -{\color{red}\frac{a_{i1}}{a_{ij}}}&\dots &{\color{red}1}&\dots &{\color{red}\frac{a_{in}}{a_{ij}}}&{\color{red}\frac{b_i}{a_{ij}}}\\[-2pt] +{\color{red}\frac{a_{i1}}{a_{i\!j}}}&\dots &{\color{red}1}&\dots &{\color{red}\frac{a_{in}}{a_{i\!j}}}&{\color{red}\frac{b_i}{a_{i\!j}}}\\[-2pt] \vdots& &\vdots&\ddots&\vdots&\vdots\\ a_{m1}&\dots &a_{mj}&\dots &a_{mn}&b_m \\ \hline @@ -581,7 +637,8 @@ stellt sicher, dass das Pivot-Element zu $1$ wird. \index{Pivotdivision} Dies ist gleichbedeutend mit der Auflösung der Gleichung $i$ noch der Variablen $x_j$. -Mit der {\em Zeilensubtraktion} auf Zeile $k\ne i$ können die Einträge in der +Mit der {\em Zeilensubtraktion} auf Zeile $k>i$ können die Einträge in der +\index{Zeilenoperation}% Spalte $j$ zu Null gemacht werden. Dazu wird das $a_{kj}$-fache der Zeile $i$ von Zeile $k$ subtrahiert: \[ @@ -611,8 +668,10 @@ Pivotelement zu $0$ zu machen. Beide Operationen können in einem Durchgang durchgeführt werden. Die beiden Operationen Pivotdivision und Zeilensubtraktion werden jetzt -kombiniert um im linken Teil des Tableaus möglichst viele Nullen und +kombiniert, um im linken Teil des Tableaus möglichst viele Nullen und Einsen zu erzeugen. +Dabei kann es nötig werden, Zeilen zu vertauschen, um ein von $0$ +verschiedenes Pivotelement zu finden. Im Idealfall wird ein Tableau der Form \[ \begin{tabular}{|>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}|>{$}c<{$}|} @@ -626,8 +685,9 @@ Im Idealfall wird ein Tableau der Form \] erreicht, was natürlich nur $m=n$ möglich ist. Interpretiert man die Zeilen dieses Tableaus wieder als Gleichungen, -dann liefert die Zeile $i$ den Wert $x_i=u_i$ für die Variable $i$. -Die Lösung kann also in der Spalte rechts abgelesen werden. +dann liefert die Zeile $i$ den Wert $x_i=u_i$ für die Variable +mit Nummer $i$. +Der Lösungsvektor kann also in der Spalte rechts abgelesen werden. \begin{figure} \centering @@ -652,7 +712,7 @@ Spalten über den Pivotelemnten frei zu räumen. \index{Rückwärtseinsetzen}% Wenn in einer Spalte kein von $0$ verschiedenes Element als Pivotelement zur Verfügung steht, wird diese Spalte übersprungen. -Die so erzeuge Tableau-Form heisst auch die {\em reduzierte Zeilenstufenform} +Die so erzeugte Tableau-Form heisst auch die {\em reduzierte Zeilenstufenform} ({\em reduced row echelon form}, RREF). \index{reduzierte Zeilenstufenform}% \index{reduced row echelon form}% @@ -699,6 +759,19 @@ $x_{j_1}, x_{j_2},\dots, x_{j_k}$ kann die Lösungsmenge als \left\{ \left. \begin{pmatrix} +x_1\\ +x_2\\ +\vdots\\ +{\color{darkgreen}x_{i_1}}\\ +x_{i_1+1}\\ +\vdots\\ +{\color{darkgreen}x_{i_2}}\\ +x_{i_2+1}\\ +\vdots\\ +x_m +\end{pmatrix} += +\begin{pmatrix} d_1\\ d_2\\ \vdots\\ @@ -791,7 +864,7 @@ a_{n1}&a_{n2}&\dots &a_{nn}&0 &0 &\dots &1 \\ \end{tabular} \] Die Vektoren $c_k$ sind die Spaltenvektoren der Matrix $C$ mit den -Einträgen $c_{ij}$. +Einträgen $c_{i\!j}$. Mit den Vektoren $c_k$ können jetzt beliebige inhomogene Gleichungssysteme $Ax=b$ gelöst werden. @@ -812,7 +885,8 @@ b_1e_1 + b_2e_2 + \dots + b_ne_n b. \end{align*} Die Linearkombination $x=b_1c_1+\dots+b_nc_n$ kann in Vektorform als $x=Cb$ -geschrieben werden. +geschrieben werden, wenn die Vektoren $c_i$ als Spalten einer Matrix $C$ +interpretiert werden. Die Konstruktion von $C$ bedeutet auch, dass $AC=E$, daher heisst $C$ auch die zu $A$ {\em inverse Matrix}. @@ -824,7 +898,7 @@ daraus folgt aber noch nicht, dass auch $A^{-1}A=I$ ist. Diese Eigenschaft kann man jedoch wie folgt erhalten. Sei $C$ die inverse Matrix von $A$, also $AC=I$. Sei weiter $D$ die inverse Matrix von $C$, also $CD=I$. -Dann ist zunächst $A=AE=A(CD)=(AC)D=ID=D$ und weiter +Dann ist zunächst $A=AI=A(CD)=(AC)D=ID=D$ und weiter $CA=CD=I$. Mit der Bezeichnung $C=A^{-1}$ erhalten wir also auch $A^{-1}A=I$. @@ -848,7 +922,8 @@ lösbar ist. \label{buch:linear:determinate:def} Das Produkt der Pivot-Elemente bei der Durchführung des Gauss-Algorithmus für eine Gleichungssystem mit quadratischer Koeffizientenmatrix $A$ -heisst die Determinante $\det(A)$ der Matrix $A$. +heisst die {\em Determinante} $\det(A)$ der Matrix $A$. +\index{Determinante}% \end{definition} Aus den Regeln für die Durchführung des Gauss-Algorithmus kann man die @@ -887,17 +962,19 @@ und \ref{buch:linear:determinante:asymetrisch} eindeutig bestimmt. \item -Der Entwicklungssatz von Laplace. +Der Entwicklungssatz von Laplace: \index{Entwicklungssatz Laplace}% Die Determinante der $n\times n$-Matrix $A$ kann mit der Formel \begin{equation} \det(A) = -\sum_{i=1}^n (-1)^{i+j} a_{ij} \cdot \det(A_{ij}) +\sum_{i=1}^n (-1)^{i+j} a_{i\!j} \cdot \det(A_{i\!j}) \end{equation} -wobei die $(n-1)\times(n-1)$-Matrix $A_{ij}$ die Matrix $A$ ist, aus der +berechnet werden, +wobei die $(n-1)\times(n-1)$-Matrix $A_{i\!j}$ die Matrix $A$ ist, aus der man Zeile $i$ und Spalte $j$ entfernt hat. -$A_{ij}$ heisst ein {\em Minor} der Matrix $A$. +$A_{i\!j}$ heisst ein {\em Minor} der Matrix $A$. +\label{buch:linear:def:minor} \index{Minor einer Matrix}% \end{enumerate} @@ -925,6 +1002,9 @@ aei + bfg + cdh - ceg - bdi - afh. Die Determinanten ermöglicht auch, eine Formel für die Lösung eines Gleichungssystems zu geben. Dies ist bekannt als die {\em Regel von Cramer}. +\index{Cramer, Regel von}% +\index{Cramersche Regel}% +\index{Regel von Cramer}% \begin{satz} \label{buch:linear:determinante:cramer} @@ -967,13 +1047,13 @@ Die Inverse der $n\times n$-Matrix $A$ ist gegeben durch \index{Formel für die inverse Matrix}% \index{inverse Matrix, Formel für}% \begin{equation} -(A^{-1})_{ij} +(A^{-1})_{i\!j} = \frac{1}{\det(A)} \begin{pmatrix} -\det(A_{11}) & -\det(A_{21}) & \dots & (-1)^{i+1}\det(A_{i1}) & \dots +\phantom{(-1)^{1+1}}\det(A_{11}) & \phantom{()^{1+1}}-\det(A_{21}) & \dots & (-1)^{i+1}\det(A_{i1}) & \dots & (-1)^{1+n} \det(A_{n1}) \\ --\det(A_{12}) & \det(A_{22}) & \dots & (-1)^{i+2}\det(A_{i2}) & \dots +\phantom{()^{1+1}}-\det(A_{12}) & \phantom{(-1)^{1+1}}\det(A_{22}) & \dots & (-1)^{i+2}\det(A_{i2}) & \dots & (-1)^{2+n} \det(A_{n2}) \\ \vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\ (-1)^{1+j}\det(A_{1j}) & (-1)^{2+j}\det(A_{2j}) & \dots @@ -982,7 +1062,7 @@ Die Inverse der $n\times n$-Matrix $A$ ist gegeben durch \vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\ (-1)^{1+n}\det(A_{1n}) & (-1)^{2+n}\det(A_{2n}) & \dots & (-1)^{i+n}\det(A_{in}) - & \dots & \det(A_{nn}) + & \dots & \phantom{(-1)^{n+n}}\det(A_{nn}) \end{pmatrix} \label{buch:linalg:inverse:formel} \end{equation} @@ -992,7 +1072,7 @@ heisst die {\em Adjunkte} $\operatorname{adj}A$ von $A$. \index{Adjunkte}% \end{satz} -Der Satz~\ref{buch:linalg:inverse:adjoint} liefert eine algebraische +Der Satz~\ref{buch:linalg:inverse:adjunkte} liefert eine algebraische Formel für die Elemente der inversen Matrix. Für kleine Matrizen wie im nachfolgenden Beispiel ist die Formel~\eqref{buch:linalg:inverse:formel} oft einfachter anzuwenden. @@ -1011,7 +1091,7 @@ d&-b\\ erhält. \begin{beispiel} -Die Inverse der Matrix +Die Matrix \begin{equation} A=\begin{pmatrix} 1&a&a\\ @@ -1022,8 +1102,9 @@ a&a&1 \end{equation} ist mit Hilfe von Determinanten besonders einfach zu invertieren. Die Determinante von $A$ ist nach der Sarrus-Formel +Satz~\ref{buch:linear:determinate:sarrus} \[ -\operatorname{adj}A +\operatorname{det}A = 1 + 2a^3 - 3a^2. \] @@ -1048,13 +1129,13 @@ A^{-1} -\left|\begin{matrix}a&a\\a&1\end{matrix}\right| & \left|\begin{matrix}a&a\\1&a\end{matrix}\right| -\\ +\\[10pt] -\left|\begin{matrix}a&a\\a&1\end{matrix}\right| & \left|\begin{matrix}1&a\\a&1\end{matrix}\right| & -\left|\begin{matrix}1&a\\a&a\end{matrix}\right| -\\ +\\[10pt] \left|\begin{matrix}a&1\\a&a\end{matrix}\right| & -\left|\begin{matrix}1&a\\a&a\end{matrix}\right| @@ -1071,7 +1152,7 @@ a^2-a & a^2-a & 1-a^2 \end{pmatrix}. \end{align*} Mit $1-a^2=(1+a)(1-a)$ und $a^2-a=a(a-1)$ kann man dies noch etwas -vereinfachen, indem man den gemeinsamen Faktor $1-a$ ausklammern. +vereinfachen, indem man den gemeinsamen Faktor $1-a$ ausklammert. Man erhält so die Form \begin{equation} A^{-1} @@ -1091,6 +1172,7 @@ für die Inverse einer Matrix der Form \subsubsection{Produktregel für die Determinante} Aus der Charakterisierung der Determinanten kann man auch ableiten, dass die Produktregel +\index{Produktregel}% \[ \det (AB) = \det(A) \cdot \det(B) \] @@ -1114,8 +1196,9 @@ dass die Operationen des Vektorraums erhalten bleiben. Dies wird von der folgenden Definition erreicht. \begin{definition} +\index{lineare Abbildung}% Eine Abbildung $f\colon V\to U$ zwischen Vektorräumen $V$ und $U$ -heisst linear, wenn +heisst {\em linear}, wenn \[ \begin{aligned} f(v+w) &= f(v) + f(w)&&\forall v,w\in V @@ -1126,12 +1209,13 @@ f(\lambda v) &= \lambda f(v) &&\forall v\in V,\lambda \in \Bbbk gilt. \end{definition} -Lineare Abbildungen sind in der Mathematik sehr verbreitet. +Lineare Abbildungen sind in der Mathematik weit verbreitet, wie die +folgenden Beispiele zeigen. \begin{beispiel} Sie $V=C^1([a,b])$ die Menge der stetig differenzierbaren Funktionen auf dem Intervall $[a,b]$ und $U=C([a,b])$ die Menge der -stetigen Funktion aif $[a,b]$. +stetigen Funktion auf $[a,b]$. Die Ableitung $\frac{d}{dx}$ macht aus einer Funktion $f(x)$ die Ableitung $f'(x)$. Die Rechenregeln für die Ableitung stellen sicher, dass @@ -1196,9 +1280,12 @@ x_n(a_{1n} c_1 + \dots + a_{mn} c_m) Die Koordinaten von $f(x)$ in der Basis $\mathcal{C}$ in $U$ sind also gegeben durch das Matrizenprodukt $Ax$, wenn $x$ der Spaltenvektor aus den Koordinaten in der Basis $\mathcal{B}$ in $V$ ist. +Die Matrix $A$ heisst die Matrix der linearen Abbildung $f$ in +den Basen $\mathcal{B}$ bzw.~$\mathcal{C}$. +\index{Matrix einer linearen Abbildung}% Die Matrix einer linearen Abbildung macht Aussagen über eine lineare -Abbilung der Rechnung zugänglich. +Abbilung der rechnerischen Untersuchung zugänglich. Allerdings hängt die Matrix einer linearen Abbildung von der Wahl der Basis ab. Gleichzeitig ist dies eine Chance, durch Wahl einer geeigneten Basis @@ -1208,10 +1295,10 @@ Problems optimal geeignet ist. \subsubsection{Basiswechsel} In einem Vektorraum $V$ seien zwei Basen $\mathcal{B}=\{b_1,\dots,b_n\}$ und $\mathcal{B}'=\{b_1',\dots,b_n'\}$ gegeben. -Ein Vektor $v\in V$ kann in beiden beiden Basen dargestellt werden. +Ein Vektor $v\in V$ kann in beiden Basen dargestellt werden. Wir bezeichnen mit dem Spaltenvektor $x$ die Koordinaten von $v$ in der Basis $\mathcal{B}$ und mit dem Spaltenvektor $x'$ die Koordinaten -in der Basisi $\mathcal{B}'$. +in der Basis $\mathcal{B}'$. Um die Koordinaten umzurechnen, muss man die Gleichung \begin{equation} x_1b_1 + \dots + x_nb_n = x_1'b_1' + \dots + x_n'b_n' @@ -1220,7 +1307,7 @@ x_1b_1 + \dots + x_nb_n = x_1'b_1' + \dots + x_n'b_n' lösen. Stellt man sich die Vektoren $b_i$ und $b_j'$ als $m$-dimensionale -Spaltenvektoren vor mit $m\ge n$, dann bekommt +Spaltenvektoren mit $m\ge n$ vor, dann bekommt \eqref{buch:vektoren-und-matrizen:eqn:basiswechselgleichung} die Form eines Gleichungssystems \[ @@ -1231,7 +1318,8 @@ b_{m1}x_1&+& \dots &+&b_{mn}x_n&=&b_{m1}'x_1'&+& \dots &+&b_{mn}'x_n' \end{linsys} \] Dieses Gleichungssystem kann man mit Hilfe eines Gauss-Tableaus lösen. -Wir schreiben die zugehörigen Variablen +Wir schreiben die zugehörigen Variablen in die Kopfzeile der Tableaus. +Die Durchführung des Gauss-Algorithmus liefert \[ \renewcommand{\arraystretch}{1.1} \begin{tabular}{|>{$}c<{$} >{$}c<{$} >{$}c<{$}|>{$}c<{$}>{$}c<{$}>{$}c<{$}|} @@ -1267,12 +1355,28 @@ Vektor in $V$ sich in beiden Mengen $\mathcal{B}$ und $\mathcal{B}'$ ausdrücken lässt. Dies folgt aber aus der Tatsache, dass $\mathcal{B}$ und $\mathcal{B}'$ beide Basen sind, also insbesondere den gleichen Raum aufspannen. -Die $n\times n$-Matrix $T$ mit Komponenten $t_{ij}$ rechnet Koordinaten +Die $n\times n$-Matrix $T$ mit Komponenten $t_{i\!j}$ rechnet Koordinaten in der Basis $\mathcal{B}'$ um in Koordinaten in der Basis $\mathcal{B}$. +\subsubsection{Basiswechselformel für die Matrix einer linearen Abbildung} +Die Matrix einer linearen Abbildung $f\colon U\to V$ ist abhängig von den +in $U$ bzw.~$V$ gewählten Basen $\mathcal{B}$ bzw.~$\mathcal{C}$. +Wechselt man die Basis und verwendet in $U$ die Basis $\mathcal{B}'$ und +in $V$ die Basis $\mathcal{C}'$, dann gibt es Matrizen +$T_U$ und $T_V$, die die Koordinaten in $U$ bzw.~$V$ von der gestrichenen +Basis in die gestrichen umzurechnen gestattet. +Ist $A$ die Matrix von $A$ in den Basen $\mathcal{B}$ und $\mathcal{C}$, +dann ist Matrix der gleichen Abbildung in den Basen $\mathcal{B}'$ +und $\mathcal{C}'$ gegeben durch die Matrix +\begin{equation} +A' = T_VAT_U^{-1}. +\label{buch:vektoren-und-matrizen:eqn:basiswechselabb} +\end{equation} + \subsubsection{Umkehrabbbildung} Sei $f$ eine umkehrbare lineare Abbildung $U\to V$ und $g\colon V\to U$. die zugehörige Umkehrabbildung. +\index{Umkehrabbildung}% Für zwei Vektoren $u$ und $w$ in $U$ gibt es daher Vektoren $a=g(u)$ und $b=g(w)$ in $V$ derart, dass $f(a)=u$ und $f(b)=w$. Weil $f$ linear ist, folgt daraus $f(a+b)=u+w$ und $f(\lambda a)=\lambda a$ @@ -1305,6 +1409,8 @@ Ist $f$ eine lineare Abbildung $U\to V$, dann heisst die Menge \{x\in U\;|\; f(x)=0\} \] der {\em Kern} oder {\em Nullraum} der linearen Abbildung $f$. +\index{Kern}% +\index{Nullraum}% Ist $A \in M_{m\times n}(\Bbbk)$ Matrix, dann gehört dazu eine lineare Abbildung $f\colon\Bbbk^n\to\Bbbk^m$. Der Kern oder Nullraum der Matrix $A$ ist die Menge @@ -1326,8 +1432,9 @@ gilt. Ob ein Gleichungssystem $Ax=b$ überhaupt eine Lösung hat, hängt davon, ob der Vektor $b$ als Bild der durch $A$ beschriebenen linearen Abbildung -$\Bbbk^n \to \Bbbk^m$ enthalten ist. -Wir definieren daher das Bild einer linearen Abbildung oder Matrix. +$\Bbbk^n \to \Bbbk^m$ dargestellt werden kann. +Wir definieren daher das Bild einer linearen Abbildung oder Matrix +wie folgt. \begin{definition} Ist $f\colon V\to U$ eine lineare Abbildung dann ist das Bild von $f$ @@ -1336,25 +1443,26 @@ der Unterraum \operatorname{im}f = \{ f(v)\;|\;v\in V\} \subset U \] von $U$. -Das Bild einer $m\times n$-Matrix $A$ ist die Menge +Das {\em Bild} einer $m\times n$-Matrix $A$ ist die Menge \[ \operatorname{im}A = \{ Av \;|\; v\in\Bbbk^n\} \subset \Bbbk^m. \] \end{definition} +\index{Bild}% Zwei Vektoren $a,b\in\operatorname{im} f$ haben Urbilder $u,w\in V$ mit $f(u)=a$ und $f(w)=b$. Für Summe und Multiplikation mit Skalaren folgt \[ \begin{aligned} -a+b&= f(u)+f(v)=f(u+v) &&\Rightarrow a+b\in\operatorname{im}f\\ -\lambda a&=\lambda f(u) = f(\lambda u) &&\Rightarrow \lambda a&\in\operatorname{im}f, +a+b &= f(u)+f(v)=f(u+v) & \Rightarrow & a+b &\in\operatorname{im}f\\ +\lambda a &=\lambda f(u) = f(\lambda u) & \Rightarrow & \lambda a &\in\operatorname{im}f, \end{aligned} \] also ist auch das Bild $\operatorname{im}f$ ein Unterraum von $U$. Das Bild der Matrix $A$ ist der Unterraum \[ -\{ x_1f(b_1) + \dots x_n f(b_n) | x_i\in\Bbbk\} +\{ x_1f(b_1) + \dots x_n f(b_n) \,|\, x_i\in\Bbbk\} = \langle f(b_1),\dots,f(b_n)\rangle = @@ -1369,6 +1477,7 @@ Sei $A$ eine Matrix $A\in M_{m\times n}(\Bbbk)$. Der {\em Rang} der Matrix $A$ ist die Dimension des Bildraumes von $A$: $\operatorname{rank}A=\dim\operatorname{im} A$. \index{Rang einer Matrix}% +\index{rank@$\operatorname{rank}A$}% Der {\em Defekt} der Matrix $A$ ist die Dimension des Kernes von $A$: $\operatorname{def}A=\dim\ker A$. \index{Defekt einer Matrix}% @@ -1389,5 +1498,94 @@ n-\operatorname{def}A. \] \end{satz} +\begin{proof}[Beweis] +Der Defekt der Matrix $A$ ist die Dimension des Kernes, also die +Dimension des Lösungsraumes des homogenen Gleichungssystems mit +Koeffizientenmatrix $A$. +Dies ist auch die Anzahl der frei wählbaren Variablen nach +der Durchführung des Gaussalgorithmus +Die behauptete Bezieung kann man jetzt unmittelbar aus dem +Schlusstableau +\begin{center} +\begin{tikzpicture}[>=latex,thick,scale=0.5] +\draw (0,0) rectangle (8,7); +\draw (0,3) -- (8,3); +\draw (4,0) -- (4,7); +\node at (0.5,6.5) {$1$}; +\node at (2,5.25) {$\ddots$}; +\node at (3.5,3.5) {$1$}; + +\node at (4.5,6.5) {$*$}; +\node at (4.5,3.5) {$*$}; +\node at (7.5,6.5) {$*$}; +\node at (7.5,3.5) {$*$}; +\node at (4.5,5.25) {$\vdots$}; +\node at (7.5,5.25) {$\vdots$}; +\node at (6,3.5) {$\cdots$}; +\node at (6,6.5) {$\cdots$}; +\node at (6,5.25) {$\ddots$}; + +\node at (2,1.5) {$0$}; +\node at (6,1.5) {$0$}; + +\draw[<->] (-0.3,7) -- (-0.3,3); +\node at (-0.3,5) [left] {$\operatorname{rank}A$}; +\draw[<->] (4,7.3) -- (8,7.3); +\node at (6,7.3) [above] {$\operatorname{def}A\mathstrut$}; +\node at (2,7.3) [above] {$n-\operatorname{def}A\mathstrut$}; +\draw[<->] (0,7.3) -- (4,7.3); +\draw[<->] (0,-0.3) -- (8,-0.3); +\node at (4,-0.3) [below] {$n$}; +\end{tikzpicture} +\end{center} +ablesen. +\end{proof} + +\subsubsection{Gauss-Algorithmus und Basiswechsel} +Die Zeilenoperationen des Gauss-Algorithmus können durch Multiplikation +mit Matrizen der Form +\[ +\begin{pmatrix} +1& & & & & & & \\ + &\ddots& & & & & & \\ + & &1& & & & & \\ + & & &{\color{red}1} & & & & \\ + & & &{\color{blue}-a_{i+1,i}}&1& & & \\ + & & &{\color{blue}-a_{i+2,i}}& &1& & \\ + & & &\vdots & & &\ddots& \\ + & & &{\color{blue}-a_{n,i}} & & & &1 +\end{pmatrix} +\] +ausgedrückt werden. +Diese Matrizen sind alle invertiertbar. +Man kann die Zeilenoperationen also als ein Basiswechsel im Bildraum +verstehen. + \subsubsection{Quotient} -TODO: $\operatorname{im} A \simeq \Bbbk^m/\ker A$ +Ist $U\subset V$ ein Unterraum, dann kann man einen neuen Vektorraum +$V/U$ bilden, dessen Vektoren Äquivalenzklassen von Vektoren aus $V$ +sind, die sich nur um einen Vektor aus $U$ unterscheiden. +Wir können solche Vektoren als $v+U$ schreiben. +Diese abstrakte Definition des Quotienten kann im Falle +des Quotienten $\Bbbk^n / \ker A$ mit Hilfe des +Gauss-Algorithmus wesentlich anschaulicher realisiert werden, +wie im folgenden Abschnitt gezeigt wird. + +\subsubsection{Realisierung des Quotienten} +Der Quotient besteht aus den Vektoren, die ``übrig'' bleiben, wenn man die +Vektoren im Kern mit $0$ identifiziert. +Man kann ihn sich als das Bild vorstellen. + +Etwas konkreter erlaubt der Gauss-Algorithmus, +für das Bild $\operatorname{im}A$ eine Basis zu finden. +Aus dem Schlusstableau lässt sich zunächst eine Basis des Kernes +ablesen, dies sind die ``grünen'' Spalten. +Die Pivotspalten bilden dagegen eine Basis für den Bildraum +nach dem im vorangegangenen Abschnitt angesprochenen Basiswechsel. + +Die Pivotspalten beschreiben Vektoren, die durch die Abbildung {\em nicht} +zu $0$ gemacht werden. +Wendet man $A$ auf die Standardbasisvektoren ab, die zu den +Pivospalten gehören, erhält man also eine Basis für da Bild +von $A$. + diff --git a/buch/chapters/10-vektorenmatrizen/ringe.tex b/buch/chapters/10-vektorenmatrizen/ringe.tex index 21b29c2..1149e29 100644 --- a/buch/chapters/10-vektorenmatrizen/ringe.tex +++ b/buch/chapters/10-vektorenmatrizen/ringe.tex @@ -13,6 +13,7 @@ Eine ähnliche Situation haben wir bei $M_n(\Bbbk)$ angetroffen. $M_n(\Bbbk)$ ist eine zunächst eine Gruppe bezüglich der Addition, hat aber auch noch eine Multiplikation, die nicht immer umkehrbar ist. Diese Art von Struktur nennt man einen Ring. +\index{Ring} \subsubsection{Definition eines Rings} @@ -21,6 +22,7 @@ Diese Art von Struktur nennt man einen Ring. Eine Menge $R$ mit einer additiven Operation $+$ mit neutralem Element $0$ und einer multiplikativ geschriebenen Operation $\cdot$ heisst ein {\em Ring}, wenn folgendes gilt. +\index{Ring}% \begin{enumerate} \item $R$ ist eine Gruppe bezüglich der Addition. @@ -56,14 +58,15 @@ kein neutrales Element hat oder beides. \begin{definition} \index{Ring mit Eins}% -Ein Ring $R$ heisst ein Ring mit Eins, wenn die Multiplikation ein +Ein Ring $R$ heisst ein {\em Ring mit Eins}, wenn die Multiplikation ein neutrales Element hat. +\index{Ring mit Eins}% \end{definition} \begin{definition} \index{Ring!kommutativ}% \index{kommutativer Ring}% -Ein Ring $R$ heisst kommutativ, wenn die Multiplikation kommutativ +Ein Ring $R$ heisst {\em kommutativ}, wenn die Multiplikation kommutativ ist. \end{definition} @@ -93,7 +96,7 @@ für $a,b\in c(\mathbb{Z})$. Die Algebra ist kommutativ und hat die konstante Folge $u_n = 1\;\forall n$ als Eins. -Wir betrachten jetzt ein Unterring $c_0(\mathbb{Z})\subset c(\mathbb{Z})$ +Wir betrachten jetzt den Unterring $c_0(\mathbb{Z})\subset c(\mathbb{Z})$ bestehend aus den Folgen, die nur für endlich viele Folgenglieder von $0$ verschieden sind. Für eine Folge $a\in c_0(\mathbb{Z})$ gibt es eine Zahl $N$ derart, dass @@ -138,8 +141,8 @@ Ebenso ist das Produkt dieser Zahlen weil Realteil $ac-bd\in\mathbb{Z}$ und der Imaginärteil $ad+bc\in\mathbb{Z}$ ganze Zahlen sind. Die Menge $\mathbb{Z}[i]$ ist also ein kommutative Ring mit Eins, er -heisst der Ring der ganzen {\em Gaussschen Zahlen}. -\index{Gausssche Zahlen}% +heisst der Ring der {\em ganzen Gaussschen Zahlen}. +\index{ganze Gausssche Zahlen}% \end{beispiel} \begin{beispiel} @@ -170,9 +173,9 @@ $M_2(\mathbb{Z})$. \subsubsection{Einheiten} In einem Ring mit Eins sind normalerweise nicht alle von $0$ verschiedenen Elemente intertierbar. -Die Menge der von $0$ verschiedenen Elemente in $R$ wir mit $R^*$ +Die Menge der von $0$ verschiedenen Elemente in $R$ wir mit $R^*=R\setminus\{0\}$ bezeichnet. -\index{$R^*$}% +\index{R*@$R^*$}% Die Menge der invertierbaren Elemente verdient einen besonderen Namen. \begin{definition} @@ -214,14 +217,17 @@ $U(M_n(\Bbbk))=\operatorname{GL}_n(\Bbbk)$. \subsubsection{Nullteiler} Ein möglicher Grund, warum ein Element $r\in R$ nicht invertierbar -ist, kann sein, dass es ein Element $s\in R$ gibt mit $rs=0$. +ist, kann sein, dass es ein Element $s\in R$ mit $rs=0$ gibt. Wäre nämlich $t$ ein inverses Element, dann wäre $0=t0 = t(rs) = (tr)s=s$. \begin{definition} +\label{buch:grundlagen:def:nullteiler} Ein Element $r\in R^*$ heisst ein {\em Nullteiler} in $R$, wenn es ein $s\in R^*$ gibt mit $rs=0$ Ein Ring ohne Nullteiler heisst {\em nullteilerfrei}. \end{definition} +\index{Nullteiler}% +\index{nullteilerfrei}% In $\mathbb{R}$ ist man sich gewohnt zu argumentieren, dass wenn ein Produkt $ab=0$ ist, dann muss einer der Faktoren $a=0$ oder $b=0$ sein. diff --git a/buch/chapters/10-vektorenmatrizen/skalarprodukt.tex b/buch/chapters/10-vektorenmatrizen/skalarprodukt.tex index 408bfeb..f89da33 100644 --- a/buch/chapters/10-vektorenmatrizen/skalarprodukt.tex +++ b/buch/chapters/10-vektorenmatrizen/skalarprodukt.tex @@ -17,8 +17,9 @@ der genau der geometrischen Intuition entspricht. \subsection{Bilinearformen und Skalarprodukte \label{buch:subsection:bilinearformen}} -Damit man mit einem Skalarprodukt rechnen kann wie mit jedem anderen -Produkt, müssen man auf beiden Seiten des Zeichesn ausmultiplizieren können: +Damit man mit einem Skalarprodukt wie mit jedem anderen Produkt +rechnen kann, müssen man auf beiden Seiten des Zeichesn ausmultiplizieren +können: \begin{align*} (\lambda x_1 + \mu x_2)\cdot y &= \lambda x_1\cdot y + \mu x_2\cdot y\\ x\cdot (\lambda y_1 + \mu y_2) &= \lambda x\cdot y_1 + \mu x\cdot y_2. @@ -48,7 +49,7 @@ Eine bilineare Funktion mit Werten in $\Bbbk$ heisst auch {\em Bilinearform}. Das Skalarprodukt hängt nicht von der Reihenfolge der Faktoren ab. In Frage dafür kommen daher nur Bilnearformen $f\colon V\times V\to\Bbbk$, die zusätzlich $f(x,y)=f(y,x)$ erfüllen. -Solche Bilinearformen heissen symmetrisch. +Solche Bilinearformen heissen {\em symmetrisch}. Für eine symmetrische Bilinearform gilt die binomische Formel \begin{align*} f(x+y,x+y) @@ -62,8 +63,19 @@ f(x,x)+2f(x,y)+f(y,y) \end{align*} wegen $f(x,y)=f(y,x)$. +Aus einer beliebigen bilinearen Funktion $g(x,y)$ kann immer eine +symmetrische bilineare Funktion $f(x,y)$ gewonnen werden, indem +man +\[ +f(x,y) = \frac12 \bigl(g(x,y)+g(x,y)\bigr) +\] +setzt. +Dieser Prozess heisst auch {\em Symmetrisieren}. +\index{symmetrisieren}% +Ist $g$ bereits symmetrische, dann ist $g(x,y)=f(x,y)$. + \subsubsection{Positiv definite Bilinearformen und Skalarprodukt} -Bilinearität alleine genügt nicht, um einen Vektorraum mit einem +Bilinearität allein genügt nicht, um einen Vektorraum mit einem nützlichen Abstandsbegriff auszustatten. Dazu müssen die berechneten Abstände vergleichbar sein, es muss also eine Ordnungsrelation definiert sein, wie wir sie nur in $\mathbb{R}$ @@ -75,15 +87,14 @@ Man lernt in der Vektorgeometrie, dass sich mit einer Bilinearform $f\colon V\times V\to\mathbb{R}$ die Länge eines Vektors $x$ definieren lässt, indem man $\|x\|^2 = f(x,x)$ setzt. -Ausserdem muss $f(x,x)\ge 0$ sein für alle $x$, was die Bilinearität +Dazu muss $f(x,x)\ge 0$ sein für alle $x$, was die Bilinearität allein nicht garantieren kann. Verschiedene Punkte in einem Vektorraum sollen in dem aus der Bilinearform abgeleiteten Abstandsbegriff immer unterscheidbar sein. Dazu muss jeder von $0$ verschiedene Vektor positive Länge haben. -% XXX Positiv definite Form \begin{definition} -Eine Bilinearform $f\colon V\times V\to\mathbb{R}$ +Eine symmetrische Bilinearform $f\colon V\times V\to\mathbb{R}$ heisst {\em positiv definit}, wenn \index{positiv definit}% \[ @@ -94,12 +105,14 @@ geschrieben. \index{Skalarprodukt}% Die {\em $l^2$-Norm} $\|x\|_2$ eines Vektors ist definiert durch $\|x\|_2^2 = \langle x,x\rangle$. +\index{l2-norm@$l^2$-Norm}% \end{definition} \subsubsection{Dreiecksungleichung} % XXX Dreiecksungleichung Damit man sinnvoll über Abstände sprechen kann, muss die Norm -$\|\;\cdot\;\|_2$ der geometrischen Intuition folgen, die durch +$\|\mathstrut\cdot\mathstrut\|_2$ +der geometrischen Intuition folgen, die durch die Dreiecksungleichung ausgedrückt wird. In diesem Abschnitt soll gezeigt werden, dass die $l^2$-Norm diese immer erfüllt. @@ -107,14 +120,17 @@ Dazu sei $V$ ein $\mathbb{R}$-Vektorraum mit Skalarprodukt $\langle\;,\;\rangle$. \begin{satz}[Cauchy-Schwarz-Ungleichung] +\label{buch:skalarprodukt:satz:cauchy-schwarz-ungleichung} Für $x,y\in V$ gilt -\[ +\begin{equation} |\langle x,y\rangle | \le \| x\|_2\cdot \|y\|_2 -\] +\label{buch:skalarprodukt:eqn:cauchy-schwarz-ungleichung} +\end{equation} mit Gleichheit genau dann, wenn $x$ und $y$ linear abhängig sind. \end{satz} +\index{Cauchy-Schwarz-Ungleichung}% \begin{proof}[Beweis] Wir die Norm von $z=x-ty$: @@ -152,7 +168,7 @@ x - \frac{\langle x,y\rangle}{\|y\|_2^2}y }{ \|y\|_2^2 } -\ge 0 +\ge 0. \intertext{Es folgt} &&&\Rightarrow& \|x\|_2^2\cdot\|y\|_2^2 - (\langle x,y\rangle)^2 &\ge 0 @@ -164,14 +180,18 @@ mit Gleichheit genau dann, wenn es ein $t$ gibt mit $x=ty$. \end{proof} \begin{satz}[Dreiecksungleichung] +\label{buch:skalarprodukt:satz:dreiecksungleichung} Für $x,y\in V$ ist \[ \| x + y \|_2 \le \|x\|_2 + \|y\|_2 \] mit Gleichheit genau dann, wenn $x=ty$ ist für ein $t\ge 0$. \end{satz} +\index{Dreiecksungleichung}% \begin{proof}[Beweis] +Wir berechnen die Norm von $x+y$ und wenden die +Cauchy-Schwarz-Ungleichung darauf an: \begin{align*} \|x+y\|_2^2 &= @@ -189,20 +209,21 @@ mit Gleichheit genau dann, wenn $x=ty$ ist für ein $t\ge 0$. 2\langle x,y\rangle + \|y\|_2^2 -= -\|x\|_2^2 + 2\langle x,y\rangle + \|y\|_2^2 -\le +\\ +&\le \|x\|_2^2 + 2\|x\|_2\cdot\|y\|_2 + \|y\|_2^2 \\ &= (\|x\|_2 + \|y\|_2)^2 \\ +\Rightarrow\qquad \|x + y\|_2 -&\le \|x\|_2 + \|y\|_2, +&\le \|x\|_2 + \|y\|_2. \end{align*} Gleichheit tritt genau dann ein, wenn $\langle x,y\rangle=\|x\|_2\cdot \|y\|_2$. -Dies tritt genau dann ein, wenn die beiden Vektoren linear abhängig sind. +Dies tritt nach Satz~\ref{buch:skalarprodukt:satz:cauchy-schwarz-ungleichung} +genau dann ein, wenn die beiden Vektoren linear abhängig sind. \end{proof} \subsubsection{Polarformel} @@ -215,6 +236,7 @@ Norm zurückgewinnen. Dies ist der Inhalt der sogenannte Polarformel. \begin{satz}[Polarformel] +\label{buch:skalarprodukt:satz:polarformel} Ist $\|\cdot\|_2$ eine Norm, die aus einer symmetrischen Bilinearform $\langle\;,\;\rangle$ hervorgegangen ist, dann kann die Bilinearform mit Hilfe der Formel @@ -232,6 +254,7 @@ mit Hilfe der Formel \end{equation} für $x,y\in V$ wiedergewonnen werden. \end{satz} +\index{Polarformel}% \begin{proof}[Beweis] Die binomischen Formel @@ -269,13 +292,14 @@ Seien $U,V,W$ komplexe Vektorräume. Eine Abbildung $f\colon U\times V\to W$ heisst {\em sesquilinear}\footnote{Das lateinische Wort {\em sesqui} bedeutet eineinhalb, eine Sesquilinearform ist also eine Form, die in einem -Faktor (dem zweiten) linear ist, und im anderen nur halb linear.} -\index{sesquilinear} +Faktor (dem zweiten) linear ist, und im anderen nur ``halb'' linear. +} +\index{sesquilinear}% wenn gilt \begin{align*} -f(\lambda x_1+\mu x_2,y) &= \overline{\lambda}f(x_1,y) + \overline{\mu}f(x_2,y) +f(\lambda x_1+\mu x_2,y) &= \overline{\lambda}f(x_1,y) + \overline{\mu}f(x_2,y), \\ -f(x,\lambda y_1+\mu y_2) &= \lambda f(x,y_1) + \mu f(x,y_2) +f(x,\lambda y_1+\mu y_2) &= \lambda f(x,y_1) + \mu f(x,y_2). \end{align*} \end{definition} @@ -295,6 +319,23 @@ Für die Norm $\|x\|_2^2=\langle x,x\rangle$ bedeutet dies jetzt \subsection{Orthognormalbasis \label{buch:subsection:orthonormalbasis}} \index{orthonormierte Basis}% +Sowohl die Berechnung von Skalarprodukten wie auch der Basis-Wechsel +werden besonders einfach, wenn die verwendeten Basisvektoren orthogonal +sind und Länge $1$ haben. + +\subsubsection{Orthogonale Vektoren} +In der Vektorgeometrie definiert man den Zwischenwinkel $\alpha$ +zwischen zwei von $0$ verschiedene Vektoren $u$ und $v$ mit Hilfe +des Skalarproduktes und er Formel +\[ +\cos\alpha = \frac{\langle u,v\rangle}{\|u\|_2\cdot\|v\|_2}. +\] +Der Winkel ist $\alpha=90^\circ$ genau dann, wenn das Skalarprodukt +verschwindet. +Zwei Vektoren $u$ und $v$ heissen daher {\em orthogonal} genau dann, +wenn $\langle u,v\rangle=0$. +Wir schreiben dafür auch $u\perp v$. +\index{orthogonal}% \subsubsection{Gram-Matrix} Sei $V$ ein Vektorraum mit einem Skalarprodukt und $\{b_1,\dots,b_n\}$ eine @@ -308,7 +349,7 @@ y = \sum_{i=1}^n \eta_i b_i \] berechnen? Setzt man $x$ und $y$ in das Skalarprodukt ein, erhält man -\begin{align*} +\begin{align} \langle x,y\rangle &= \biggl\langle @@ -317,31 +358,70 @@ Setzt man $x$ und $y$ in das Skalarprodukt ein, erhält man \biggr\rangle = \sum_{i,j=1}^n \xi_i\eta_j \langle b_i,b_j\rangle. -\end{align*} -Die Komponente $g_{ij}=\langle b_i,b_j\rangle$ bilden die sogenannte -Gram-Matrix $G$. +\label{buch:skalarprodukt:eqn:skalarproduktgram} +\end{align} +Die Komponente $g_{i\!j}=\langle b_i,b_j\rangle$ bilden die sogenannte +{\em Gram-Matrix} $G$. +\index{Gram-Matrix}% +Da das Skalarprodukt eine symmetrische Bilinearform ist, ist die +Gram-Matrix symmetrisch. Mit ihr kann das Skalarprodukt auch in Vektorform geschrieben werden als $\langle x,y\rangle = \xi^t G\eta$. \subsubsection{Orthonormalbasis} -Eine Basis $\{a_1,\dots,a_n\}$ aus orthogonalen Einheitsvektoren, +Eine Basis $\{b_1,\dots,b_n\}$ aus orthonormierten Einheitsvektoren, also mit $ -\langle a_i,a_j\rangle=\delta_{ij} +\langle b_i,b_j\rangle=\delta_{i\!j}, $ heisst {\em Orthonormalbasis}. -In einer Orthonormalbasis ist die Bestimmung der Koordinaten eines -beliebigen Vektors besonders einfach, ist nämlich +\index{Orthonormalbasis}% +Die Gram-Matrix einer Orthonormalbasis ist die Einheitsmatrix. + +Eine Orthonormalbasis zeichnet sich dadurch aus, dass die Berechnung +des Skalarproduktes in einer solchen Basis besonders einfach ist. +Aus \eqref{buch:skalarprodukt:eqn:skalarproduktgram} kann man ablesen, +dass $\langle x,y\rangle = \xi^t G \eta = \xi^t I \eta = \xi^t\eta$. + +In einer Orthonormalbasis ist auch die Bestimmung der Koordinaten +eines beliebigen Vektors besonders einfach. +Sei also $\{b_1,\dots,b_n\}$ eine Orthonormalbasis und $v$ ein +Vektor, der in dieser Basis dargestellt werden soll. +Der Vektor \begin{equation} -v=\sum_{i=1}^n \langle v,a_i\rangle a_i. +v'=\sum_{i=1}^n \langle v,b_i\rangle b_i, \label{buch:grundlagen:eqn:koordinaten-in-orthonormalbasis} \end{equation} -Die Gram-Matrix einer Orthonormalbasis ist die Einheitsmatrix. +hat die Skalarprodukte +\[ +\langle v',b_j\rangle= +\biggl\langle \sum_{i=1}^n \langle v,b_i\rangle b_i,b_j\biggr\rangle += +\sum_{i=1}^n \bigl\langle \langle v,b_i\rangle b_i, b_j\bigr\rangle += +\sum_{i=1}^n \langle v,b_i\rangle \rangle b_i, b_j\rangle += +\sum_{i=1}^n \langle v,b_i\rangle \delta_{i\!j} += +\langle v,b_j\rangle. +\] +Insbesondere gilt +\[ +\langle v,b_j\rangle = \langle v',b_j\rangle +\qquad\Rightarrow\qquad +\langle v-v',b_j\rangle = 0 +\qquad\Rightarrow\qquad +v-v'=0 +\qquad\Rightarrow\qquad +v=v'. +\] +Die Koordinaten von $v$ in der Basis $\{b_i\,|\,1\le i\le n\}$ +sind also genau die Skalarprodukte $\langle v,b_i\rangle$. \subsubsection{Gram-Schmidt-Orthonormalisierung} Mit Hilfe des Gram-Schmidtschen Orthonormalisierungsprozesses kann aus einer beliebige Basis $\{a_1,a_2,\dots,a_n\}\subset V$ eines Vektorraums -mit einem SKalarprodukt eine orthonormierte Basis +mit einem Skalarprodukt eine orthonormierte Basis $\{b_1,b_2,\dots,b_n\}$ gefunden werden derart, dass für alle $k$ $\langle b_1,\dots,b_k\rangle = \langle a_1,\dots ,a_k\rangle$. \index{Gram-Schmidt-Orthonormalisierung}% @@ -392,7 +472,7 @@ a_n-b_1\langle b_1,a_n\rangle-b_2\langle b_2,a_n\rangle \end{align*} Die Basisvektoren $b_i$ sind orthogonal, aber $\|b_i\|_2$ kann auch von $1$ abweichen. -Damit ist es zwar nicht mehr so einfach +Damit ist es leider nicht mehr so einfach wie in \eqref{buch:grundlagen:eqn:koordinaten-in-orthonormalbasis}, einen Vektor in der Basis zu zerlegen. Ein Vektor $v$ hat nämlich in der Basis $\{b_1,\dots,b_n\}$ die Zerlegung @@ -403,10 +483,10 @@ v \frac{\langle b_i,v\rangle}{\|b_i\|_2^2} b_i, \label{buch:grundlagen:eqn:orthogonal-basiszerlegung} \end{equation} -Die Koordinaten bezüglich dieser Basis sind also +die Koordinaten bezüglich dieser Basis sind also $\langle b_i,v\rangle/\|b_i\|_2^2$. -Die Gram-Matrix einer Orthogonalen Basis ist immer noch diagonal, +Die Gram-Matrix einer orthogonalen Basis ist immer noch diagonal, auf der Diagonalen stehen die Normen der Basisvektoren. Die Nenner in der Zerlegung \eqref{buch:grundlagen:eqn:orthogonal-basiszerlegung} @@ -416,7 +496,7 @@ sind die Einträge der inverse Matrix der Gram-Matrix. Die Gram-Matrix einer Basis $\{b_1,\dots,b_n\}$ in einem komplexen Vektorraum hat die Eigenschaft \[ -g_{ij} +g_{i\!j} = \langle b_i,b_j\rangle = @@ -425,43 +505,46 @@ g_{ij} \overline{g}_{ji} \quad 1\le i,j\le n. \] -Sie ist nicht mehr symmetrisch, aber selbstadjungiert, gemäss +Sie ist nicht mehr symmetrisch, aber hermitesch, gemäss der folgenden Definition. \begin{definition} -\label{buch:grundlagen:definition:selstadjungiert} -Sei $A$ eine komplexe Matrix mit Einträgen $a_{ij}$, dann ist +\label{buch:grundlagen:definition:hermitesch} +Sei $A$ eine komplexe Matrix mit Einträgen $a_{i\!j}$, dann ist $\overline{A}$ die Matrix mit komplex konjugierten Elementen -$\overline{a}_{ij}$. +$\overline{a}_{i\!j}$. Die {\em adjungierte} Matrix ist $A^*=\overline{A}^t$. -Eine Matrix heisst selbstadjungiert, wenn $A^*=A$. +\index{adjungiert}% +Eine Matrix heisst {\em hermitesch}, wenn $A^*=A$. +\index{hermitesch}% +Sie heisst {\em antihermitesch}, wenn $A^*=-A$. \end{definition} -\subsection{Symmetrische und selbstadjungierte Abbilungen -\label{buch:subsection:symmetrisch-und-selbstadjungiert}} -In Definition~\ref{buch:grundlagen:definition:selstadjungiert} -wurde der Begriff der selbstadjungierten Matrix basierend +\subsection{Selbstadjungierte Abbilungen +\label{buch:subsection:selbstadjungiert}} +In Definition~\ref{buch:grundlagen:definition:hermitesch} +wurde der Begriff der hermiteschen Matrix basierend eingeführt. Als Eigenschaft einer Matrix ist diese Definition notwendigerweise abhängig von der Wahl der Basis. Es ist nicht unbedingt klar, dass derart definierte Eigenschaften als von der Basis unabhängige Eigenschaften betrachtet werden können. Ziel dieses Abschnitts ist, Eigenschaften wie Symmetrie oder -Selbstadjungiertheit auf basisunabhängige Eigenschaften von +hermitesch auf basisunabhängige Eigenschaften von linearen Abbildungen in einem Vektorraum $V$ mit Skalarprodukt $\langle\;,\;\rangle$ zu verstehen. -\subsubsection{Symmetrische Abbildungen} +\subsubsection{Reelle selbstadjungierte Abbildungen} Sei $f\colon V\to V$ eine lineare Abbildung. In einer Basis $\{b_1,\dots,b_n\}\subset V$ wird $f$ durch eine Matrix $A$ beschrieben. Ist die Basis orthonormiert, dann kann man die Matrixelemente -mit $a_{ij}=\langle b_i,Ab_j\rangle$ berechnen. +mit $a_{i\!j}=\langle b_i,Ab_j\rangle$ berechnen. Die Matrix ist symmetrisch, wenn \[ \langle b_i,Ab_j\rangle = -a_{ij} +a_{i\!j} = a_{ji} = @@ -471,16 +554,17 @@ a_{ji} \] ist. Daraus leitet sich jetzt die basisunabhängige Definition einer -symmetrischen Abbildung ab. +selbstadjungierten Abbildung ab. \begin{definition} -Eine lineare Abbildung $f\colon V\to V$ heisst {\em symmetrisch}, wenn +Eine lineare Abbildung $f\colon V\to V$ heisst {\em selbstadjungiert}, wenn $\langle x,Ay\rangle=\langle Ax,y\rangle$ gilt für beliebige Vektoren $x,y\in V$. +\index{selbstadjungierte Abbildung}% \end{definition} Für $V=\mathbb{R}^n$ und das Skalarprodukt $\langle x,y\rangle=x^ty$ -erfüllt eine symmetrische Abbildung mit der Matrix $A$ die Gleichung +erfüllt eine selbstadjungierte Abbildung mit der Matrix $A$ die Gleichung \[ \left. \begin{aligned} @@ -497,16 +581,18 @@ x^tAy x^tA^ty = x^tAy\quad\forall x,y\in\mathbb{R}^n, \] was gleichbedeutend ist mit $A^t=A$. -Der Begriff der symmetrischen Abbildung ist also eine natürliche +Der Begriff der selbstadjungierten Abbildung ist also eine natürliche Verallgemeinerung des Begriffs der symmetrischen Matrix. -\subsubsection{Selbstadjungierte Abbildungen} +\subsubsection{Selbstadjungierte komplexe Abbildungen} In einem komplexen Vektorraum ist das Skalarprodukt nicht mehr bilinear und symmetrisch, sondern sesquilinear und konjugiert symmetrisch. \begin{definition} -Eine lineare Abbildung $f\colon V\to V$ heisst {\em selbstadjungiert}, +Eine lineare Selbstabbildung $f\colon V\to V$ eines komplexen +Vektorraumes heisst {\em selbstadjungiert}, wenn $\langle x,fy\rangle=\langle fx,y\rangle$ für alle $x,y\in\mathbb{C}$. +\index{selbstadjungiert}% \end{definition} Im komplexen Vektorraum $\mathbb{C}^n$ ist das Standardskalarprodukt @@ -528,12 +614,13 @@ Die lineare Abbildung $f^*\colon V\to V$ definiert durch \langle f^*x,y\rangle = \langle x,fy\rangle,\qquad x,y\in V \] heisst die {\em Adjungierte} von $f$. +\index{Adjungierte}% \end{definition} Eine selbstadjungierte Abbildung ist also eine lineare Abbildung, die mit ihrer Adjungierte übereinstimmt, als $f^* = f$. In einer orthonormierten Basis $\{b_1,\dots,b_n\}$ hat die Abbildung -$f$ die Matrixelemente $a_{ij}=\langle b_i,fb_j\rangle$. +$f$ die Matrixelemente $a_{i\!j}=\langle b_i,fb_j\rangle$. Die adjungierte Abbildung hat dann die Matrixelemente \[ \langle b_i,f^*b_j \rangle @@ -560,6 +647,8 @@ Eine lineare Abbildung $f\colon V\to V$ in einem reellen Vektorraum mit heisst {\em orthogonal}, wenn $\langle fx,fy\rangle = \langle x,y\rangle$ für alle $x,y\in V$ gilt. +\index{orthogonale Abbildung}% +\index{orthogonale Matrix}% \end{definition} Die adjungierte einer orthogonalen Abbildung erfüllt @@ -579,18 +668,101 @@ Eine lineare Abbildung $f\colon V\to V$ eines komplexen Vektorraumes $V$ mit Skalarprodukt heisst unitär, wenn $\langle x,y\rangle = \langle fx,fy\rangle$ für alle Vektoren $x,y\in V$. Eine Matrix heisst unitär, wenn $U^*U=I$. +\index{unitäre Abbildung}% +\index{unitäre Matrix}% \end{definition} Die Matrix einer unitären Abbildung in einer orthonormierten Basis ist unitär. -% XXX Skalarprodukt und Lineare Abbildungen -% XXX Symmetrische Matrizen -% XXX Selbstadjungierte Matrizen - \subsection{Orthogonale Unterräume \label{buch:subsection:orthogonale-unterraeume}} -% XXX Invariante Unterräume -% XXX Kern und Bild orthogonaler Abbildungen +Die Orthogonalitätsrelation lässt sich auch auf Unterräume ausdehnen. +Zwei Unterräume $U\subset V$ und $W\subset V$ eines Vektorraums mit +Skalarprodukt heissen orthogonal, wenn gilt +\( +u\perp w\forall u\in U,w\in W +\). + +\subsubsection{Orthogonalkomplement} +Zu einem Unterraum $U$ kann man den Vektorraum +\[ +U^\perp = \{ v\in V\,|\, v\perp u\forall u\in U\} +\] +bilden. +$U^\perp$ ist ein Unterraum, denn für zwei Vektoren +$v_1,v_2\in U^\perp$ gilt +\[ +\langle \lambda v_1+\mu v_2,u\rangle += +\lambda \langle v_1,u\rangle + \mu \langle v_2,u\rangle += +0 +\] +für alle $u\in U$, also ist $\lambda v_1+\mu v_2\in U^\perp$. +Der Unterraum $U^\perp$ heisst das {\em Orthogonalkomplement} +von $U$. +\index{Orthogonalkomplement}% + +\subsubsection{Kern und Bild} +Die adjungierte Abbildung ermöglicht, eine Abbildung in einem +Skalarprodukt auf den anderen Faktor zu schieben und damit +einen Zusammenhang zwischen Bildern und Kernen mit Hilfe des +Orthogonalkomplements herzustellen. + +\begin{satz} +Sei $f\colon U\to V$ eine lineare Abbildung zwischen Vektorräumen +mit Skalarprodukt, und $f^*\colon V \to U$ die adjungierte Abbildung, +Dann gilt +\[ +\begin{aligned} +\ker f^* +&= +(\operatorname{im}f)^\perp +&& +& +\operatorname{im}f\phantom{\mathstrut^*} +&= +(\ker f^*)^\perp +\\ +\ker f\phantom{\mathstrut^*} +&= +(\operatorname{im}f^*)^\perp +& +&& +\operatorname{im}f^* +&= +(\ker f)^\perp. +\end{aligned} +\] +\end{satz} + +\begin{proof}[Beweis] +Es gilt $\langle fu,v\rangle = \langle u,f^*v\rangle$ für +alle $u\in U, v\in V$. +Das Orthogonalkomplement des Bildes von $f$ ist +\begin{align*} +(\operatorname{im} f)^\perp +&= +\{ +v\in V +\,|\, +\langle v, fu\rangle=0\forall u\in U +\} +\end{align*} +Ein Vektor $v$ ist genau dann in $(\operatorname{im}f)^\perp$ enthalten, +wenn für alle $u$ +\[ +0 += +\langle v,fu\rangle += +\langle f^*v,u\rangle +\] +gilt. +Das ist aber gleichbdeutend damit, dass $f^*v=0$ ist, dass also +$v\in\ker f^*$. +Dies beweist die erste Beziehung, alle anderen folgen auf analoge Weise. +\end{proof} \subsection{Andere Normen auf Vektorräumen \label{buch:subsection:andere-normen}} @@ -602,6 +774,7 @@ zusammen. \subsubsection{$l^1$-Norm} \begin{definition} Die $l^1$-Norm in $V=\mathbb{R}^n$ oder $V=\mathbb{C}^n$ ist definiert durch +\index{l1-Norm@$l^1$-Norm}% \[ \| v\|_1 = @@ -652,7 +825,6 @@ ein Widerspruch. \subsubsection{$l^\infty$-Norm} - \begin{definition} Die $l^\infty$-Norm in $V=\mathbb{R}^n$ und $V=\mathbb{C}^n$ ist definiert \[ @@ -662,6 +834,7 @@ Die $l^\infty$-Norm in $V=\mathbb{R}^n$ und $V=\mathbb{C}^n$ ist definiert \] Sie heisst auch die {\em Supremumnorm}. \index{Supremumnorm}% +\index{lunendlich-norm@$l^\infty$-Norm}% \end{definition} Auch diese Norm erfüllt die Dreiecksungleichung @@ -715,6 +888,7 @@ Norm ausgestattet werden, wenn $U$ und $V$ jeweils eine Norm haben. Seien $U$ und $V$ Vektorräume über $\mathbb{R}$ oder $\mathbb{C}$ und $f\colon U\to V$ eine lineare Abbildung. Die {\em Operatorname} der linearen Abbildung ist +\index{Operatornorm}% \[ \|f\| = @@ -736,7 +910,8 @@ l_y \colon V\to \mathbb{C}: x\mapsto \langle y,x\rangle. \] -Zur Berechnung der Operatorname von $l_y$ +Zur Berechnung der Operatorname von $l_y$ verwenden wir die +Cauchy-Schwarz-Ungleichung~\eqref{buch:skalarprodukt:eqn:cauchy-schwarz-ungleichung} \[ |l_y(x)|^2 = @@ -788,6 +963,7 @@ sich auf den Raum der stetigen Funktionen $[a,b]\to\mathbb{R}$ oder $[a,b]\to\mathbb{C}$ verallgemeinern. Die Supremumnorm auf dem Vektorraum der stetigen Funktionen ist +\index{Supremumnorm}% \[ \|f\|_\infty = \sup_{x\in[a,b]} |f(x)| \] @@ -796,6 +972,8 @@ für $f\in C([a,b],\mathbb{R})$ oder $f\in C([a,b],\mathbb{C})$. Für die anderen beiden Normen wird zusätzlich das bestimmte Integral von Funktionen auf $[a,b]$ benötigt. Die $L^2$-Norm wird erzeugt von dem Skalarprodukt +\index{L2-norm@$L^2$-Norm}% +\index{Skalarprodukt}% \[ \langle f,g\rangle = @@ -804,10 +982,38 @@ Die $L^2$-Norm wird erzeugt von dem Skalarprodukt \qquad\Rightarrow\qquad \|f\|_2^2 = \frac{1}{b-a}\int_a^b |f(x)|^2\,dx. \] -Die $L^2$-Norm ist dagegen +Die $L^1$-Norm ist dagegen definiert als. \[ \|f\|_1 = \int_a^b |f(x)|\,dx. \] +Die drei Normen stimmen nicht überein. +Beschränkte Funktionen sind zwar immer integrierbar und quadratintegrierbar. +Es gibt integrierbare Funktionen, die nicht quadratintegrierbar sind, zum +Beispiel ist die Funktion $f(x)=1/\sqrt{x}$ auf dem Interval $[0,1]$ +\begin{align*} +\|f\|_1 +&= +\int_0^1 \frac 1{\sqrt{x}}\,dx += +[2\sqrt{x}]_0^1 += +2 +< +\infty +&&\Rightarrow& \|f\|_1&<\infty +\\ +\|f\|_2^2 +&= +\int_0^1 \biggl(\frac1{\sqrt{x}}\biggr)^2\,dx += +\int_0^1 \frac1x\,dx += +\lim_{t\to 0} [\log x]_t^1 = \infty +&&\Rightarrow& +\|f\|_2 &= \infty. +\end{align*} +Die Vektorräume der integrierbaren und der quadratintegrierbaren Funktionen +sind also verschieden. diff --git a/buch/chapters/10-vektorenmatrizen/strukturen.tex b/buch/chapters/10-vektorenmatrizen/strukturen.tex index a2afa37..2ad7b88 100644 --- a/buch/chapters/10-vektorenmatrizen/strukturen.tex +++ b/buch/chapters/10-vektorenmatrizen/strukturen.tex @@ -17,9 +17,10 @@ werden. Im Laufe der Definition der Vektorräume $\Bbbk^n$ und der Operationen für die Matrizen in $M_{m\times n}(\Bbbk)$ haben wir eine ganze Reihe von algebraischen Strukturen kennengelernt. -Nicht immer sind alle Operationen verfügbar, in einem Vektorraum -gibt es normalerweise kein Produkt. -Und bei der Konstruktion des Zahlensystems wurde gezeigt, dass +Nicht immer sind alle Operationen verfügbar, die uns von der Diskussion +der Zahlenmengen her vertraut sind, zum Beispiel gibt es in einem +Vektorraum normalerweise kein Produkt. +Bei der Konstruktion des Zahlensystems wurde gezeigt, dass additive oder multiplikative Inverse nicht selbstverständlich sind. Sinnvolle Mathematik lässt sich aber erst betreiben, wenn zusammen diff --git a/buch/chapters/20-polynome/chapter.tex b/buch/chapters/20-polynome/chapter.tex index c7fc9e9..fd72a59 100644 --- a/buch/chapters/20-polynome/chapter.tex +++ b/buch/chapters/20-polynome/chapter.tex @@ -38,7 +38,7 @@ verwendet werden, warum also diese Beschränkung. Für die nachfolgenden Betrachtungen stellen wir uns $X$ daher nicht mehr einfach als einen Platzhalter für eine Zahl vor, sondern als ein neues algebraisches Objekt, für das man die Rechenregeln erst noch definieren muss. -In diesem Kapteil sollen die Regeln zum Beispiel sicherstellen, +In diesem Kapitel sollen die Regeln zum Beispiel sicherstellen, dass man mit Polynomen so rechnen kann, wie wenn $X$ eine Zahl wäre. Es sollen also zum Beispiel die Regeln \begin{align} @@ -120,7 +120,7 @@ Elemente einer Algebra sind. \input{chapters/20-polynome/definitionen.tex} \input{chapters/20-polynome/vektoren.tex} -\input{chapters/20-polynome/matrizen.tex} -\input{chapters/20-polynome/minimalpolynom.tex} +%\input{chapters/20-polynome/matrizen.tex} +%\input{chapters/20-polynome/minimalpolynom.tex} diff --git a/buch/chapters/20-polynome/definitionen.tex b/buch/chapters/20-polynome/definitionen.tex index 135ebf6..3c541d8 100644 --- a/buch/chapters/20-polynome/definitionen.tex +++ b/buch/chapters/20-polynome/definitionen.tex @@ -12,8 +12,8 @@ Rechnen mit Polynomen zusammen. % % Skalare % -\subsection{Skalare -\label{buch:subsection:polynome:skalare}} +\subsection{Polynome +\label{buch:subsection:polynome:polynome}} Wie schon in der Einleitung angedeutet sind Polynome nur dann sinnvoll, wenn man mit den Koeffizienten gewisse Rechenoperationen durchführen kann. Wir brauchen mindestens die Möglichkeit, Koeffizienten zu addieren. @@ -31,7 +31,7 @@ in das Polynom einsetzen kann, dann muss es möglich sein, in $R$ zu Multiplizieren und zu Addieren, und es müssen die üblichen Rechenregeln der Algebra gelten, $R$ muss also ein Ring sein. \index{Ring}% -Wir werden im folgenden meistens voraussetzen, dass $R$ sogar kommutativ +Wir werden im folgenden zusätzlich voraussetzen, dass $R$ sogar kommutativ ist und eine $1$ hat. \begin{definition} @@ -85,6 +85,7 @@ X^n + \frac{a_{n-1}}{a_n}X^{n-1} + \dots + \frac{a_0}{a_n} \] machen. Man sagt auch, das Polynom $p(X)$ wurde normiert. +Wenn $R$ ein Körper ist, ist die Normierung immer möglich. Die Tatsache, dass zwei Polynome nicht gleich viele von $0$ verschiedene Koeffizienten haben müssen, verkompliziert die Beschreibung der Rechenoperationen ein wenig. @@ -109,42 +110,10 @@ dass nur über diejenigen Indizes $k$ summiert wird, für die $a_k$ definiert ist. \label{summenzeichenkonvention} -% -% Abschnitt über Polynomring Definition -% -\subsection{Der Polynomring -\label{buch:subsection:polynome:ring}} -Die Menge $R[X]$ aller Polynome über $R$ wird zu einem Ring, wenn man die -Rechenoperationen Addition und Multiplikation so definiert, wie man das -in der Schule gelernt hat. -Die Summe von zwei Polynomen -\begin{align*} -p(X) &= a_nX^n + a_{n-1}X^{n-1} + \dots + a_1X + a_0\\ -q(X) &= b_mX^m + b_{m-1}X^{m-1} + \dots + b_1X + b_0 -\end{align*} -ist -\[ -p(X)+q(X) -= -\sum_{k} (a_k+b_k)X^k, -\] -wobei die Summe wieder so zu interpretieren ist, über alle Terme -summiert wird, für die mindestens einer der Summanden von $0$ -verschieden ist. - -Für das Produkt verwenden wir die Definition -\[ -p(X)q(X) -= -\sum_{k}\sum_{l} a_kb_l X^{k+l}, -\] -die natürlich mit Formel~\eqref{buch:eqn:polynome:faltung} -gleichbedeutend ist. -Die Polynom-Multiplikation und Addition sind nur eine natürliche -Erweiterung der Rechenregeln, die man schon in der Schule lernt, -es ist daher nicht überraschend, dass die bekannten Rechenregeln -auch für Polynome gelten. +Die Menge $R[X]$ aller Polynome über $R$ mit den beschriebenen +Operationen ist ein Ring. Das Distributivgesetz +\index{Distributivgesetz}% \[ p(X)(u(X)+v(X)) = p(X)u(X) + p(X)v(X) \qquad @@ -152,6 +121,7 @@ p(X)(u(X)+v(X)) = p(X)u(X) + p(X)v(X) \] zum Beispiel sagt ja nichts anderes, als dass man ausmultiplizieren kann. +\index{ausmultiplizieren}% Oder die Assoziativgesetze \begin{align*} p(X)+q(X)+r(X) @@ -178,6 +148,7 @@ Reihenfolge man die Additionen oder Multiplikationen ausführt. \begin{definition} Der {\em Grad} eines Polynoms $p(X)$ ist die höchste Potenz von $X$, die im Polynom vorkommt. +\index{Grad eines Polynoms}% Das Polynom \[ p(X) = a_nX^n + a_{n-1}X^{n-1}+\dots a_1X + a_0 @@ -219,10 +190,12 @@ $\deg(\lambda p) \le \deg\lambda + \deg p$. \begin{proof}[Beweis] Wir schreiben die Polynome wieder in der Form -\begin{align*} +\[ +\begin{aligned} p(X) &= a_nX^n + a_{n-1}X^{n-1} + \dots + a_1X + a_0&&\Rightarrow&\deg p&=n\\ q(X) &= b_mX^m + b_{m-1}X^{m-1} + \dots + b_1X + b_0&&\Rightarrow&\deg q&=m. -\end{align*} +\end{aligned} +\] Dann kann der höchste Koeffizient in der Summe $p+q$ nicht weiter oben sein als die grössere von den beiden Zahlen $n$ und $m$ angibt, dies beweist \eqref{buch:eqn:polynome:gradsumme}. @@ -230,48 +203,15 @@ Ebenso kann der höchste Koeffizient im Produkt nach der Formel~\eqref{buch:eqn:polynome:faltung} nicht weiter oben als bei $n+m$ liegen, dies beweist beweist \eqref{buch:eqn:polynome:gradprodukt}. -Es könnte aber passieren, dass $a_nb_m=0$ ist, d.~h.~es ist durchaus möglich, +In einem Ring mit Nullteilern +(Siehe Definition~\ref{buch:grundlagen:def:nullteiler}) +könnte es passieren, dass $a_nb_m=0$ ist, d.~h.~es ist durchaus möglich, dass der Grad kleiner ist. Schliesslich kann der höchsten Koeffizient von $\lambda p(X)$ nicht grösser als der höchste Koeffizient von $p(X)$ sein, was \eqref{buch:eqn:polynome:gradskalar} beweist. \end{proof} -Etwas enttäuschend an diesen Rechenregeln ist, dass der Grad eines -Produktes nicht exakt die Summe der Grade hat. -Der Grund ist natürlich, dass es in gewissen Ringen $R$ passieren kann, -dass das Produkt $a_n\cdot b_m=0$ ist. -Zum Beispiel ist im Ring der $2\times 2$ Matrizen das Produkt der Elemente -\begin{equation} -a_n = \begin{pmatrix}1&0\\0&0\end{pmatrix} -\quad\text{und}\quad -b_m = \begin{pmatrix}0&0\\0&1\end{pmatrix} -\qquad\Rightarrow\qquad -a_nb_m = \begin{pmatrix}0&0\\0&0\end{pmatrix}. -\label{buch:eqn:definitionen:nullteilerbeispiel} -\end{equation} -Diese unangehme Situation tritt immer ein, wenn es von Null verschiedene -Elemente gibt, deren Produkt $0$ ist. -In Matrizenringen ist das der Normalfall, man kann diesen Fall also nicht -einfach ausschliessen. -In den Zahlenmengen wie $\mathbb{Z}$, $\mathbb{Q}$ und $\mathbb{R}$ passiert -das natürlich nie. - -\begin{definition} -Ein Ring $R$ heisst {\em nullteilerfrei}, wenn für zwei Elemente -$a,b\in R$ aus $ab=0$ immer geschlossen werden kann, dass -$a=0$ oder $b=0$. -Ein von $0$ verschiedenes Element $a\in R$ heisst Nullteiler, -wenn es eine $b\in R$ mit $b\ne 0$ gibt derart dass $ab=0$. -\index{Nullteiler} -\index{nullteilerfrei} -\end{definition} - -Die beiden Matrizen in -\eqref{buch:eqn:definitionen:nullteilerbeispiel} -sind Nullteiler im Ring $M_2(\mathbb{Z})$ der $2\times 2$-Matrizen. -Der Matrizenring $M_2(\mathbb{Z})$ ist also nicht nullteilerfrei. - In einem nullteilerfreien Ring gelten die Rechenregeln für den Grad jetzt exakt: @@ -381,6 +321,7 @@ R^{(k+l)}[X]. Im Ring der ganzen Zahlen sind nicht alle Divisionen ohne Rest ausführbar, so entsteht das Konzept der Teilbarkeit. Der Divisionsalgorithmus, den man in der Schule lernt, liefert +\index{Divisionsalgorithmus}% zu beliebigen ganzen Zahlen $a,b\in\mathbb{Z}$ den Quotienten $q$ und den Rest $r$ derart, dass $a=qb+r$. Der Algorithmus basiert auf der Zehnersystemdarstellung @@ -399,11 +340,12 @@ b &= b_mX^{n} + b_{m-1}X^{n-1} + \dots + b_1X^{1} + b_0, \end{align*} mit dem einzigen Unterschied, dass statt $X$ mit der festen Zahl $X=10$ gearbeitet wird. -Der Teilungsalgorithmus für Polynome lässt sich aber leicht +Der Divisionsalgorithmus für Polynome lässt sich aber leicht rekonstruieren. \subsubsection{Polynomdivision} Wir zeigen den Polynomdivisionsalgorithmus an einem konkreten Beispiel. +\index{Polynomdivision}% Gesucht sind Quotient $q\in \mathbb{Z}[X]$ und Rest $r\in\mathbb{Z}[X]$ der beiden Polynome \begin{equation} @@ -427,7 +369,7 @@ X^4&-& X^3&-&7X^2&+& X&+&6&:&X^2&+&X&+&1&=&X^2&-&2X&-&6=q\\ & & & & & &9X&+&12\rlap{$\mathstrut=r$}& & & & & & & & & & & & \\ \cline{7-9} \end{array} \] -Durch nachrechnen kann man überprüfen, dass tatsächlich +Durch Nachrechnen kann man überprüfen, dass tatsächlich \begin{align*} bq &= @@ -445,7 +387,7 @@ Jedes für $q$ in Frage kommende Polynom vom Grad $2$ muss von der Form $q=q_2X^2+q_1X+q_0$ sein. Multipliziert man mit $b$, erhält man $bq=2q_2X^4 + (2q_1+q_2)X^3+\dots$. Insbesondere ist es nicht möglich mit ganzzahligen Quotienten -$q_k\in\mathbb{Z}$ auch nur der ersten Koeffizienten von $a$ zu +$q_k\in\mathbb{Z}$ auch nur den ersten Koeffizienten von $a$ zu erhalten. Dazu müsste nämlich $a_n = 1 = 2q_2$ oder $q_2 = \frac12\not\in\mathbb{Z}$ sein. @@ -454,7 +396,7 @@ Division durch den führenden Koeffizienten des Divisorpolynomes $b$ immer ausführbar ist. Im Beispiel~\eqref{buch:polynome:eqn:divisionsaufgabe} war das der Fall, weil der führende Koeffizient $1$ war. -Für beliebige Polynome $b\in R[X]$ ist das aber nur der Fall, +Für beliebige Polynome $b\in R[X]$ ist dies aber nur dann immer der Fall, wenn die Koeffizienten in Tat und Wahrheit einem Körper entstammen. Im Folgenden betrachten wir daher nur noch Polynomringe mit Koeffizienten @@ -494,6 +436,7 @@ $f=qg+r$, wobei ausserdem $\deg r<\deg g$ ist. \begin{definition} Ein {\em euklidischer Ring} $R$ ist ein nullteilerfreier Ring mit einer +\index{euklischer Ring}% Gradfunktion $\deg\colon R\setminus\{0\}\to\mathbb{N}$ mit folgenden Eigenschaften \begin{enumerate} @@ -520,10 +463,12 @@ zerlegt werden. \subsubsection{Irreduzible Polynome} Das Konzept der Primzahl lässt sich wie folgt in den Polynomring übertragen. +\index{Primzahl}% \begin{definition} -Ein Polynom $f\in R[X]$ heisst irreduzibel, es keine Faktorisierung $f=gh$ -in Faktoren $g,h\in R[X]$ mit $\deg(g)>0$ und $\deg(h) >0$. +Ein Polynom $f\in R[X]$ heisst irreduzibel, wenn es keine Faktorisierung $f=gh$ +in Faktoren $g,h\in R[X]$ mit $\deg(g)>0$ und $\deg(h) >0$ gibt. +\index{irreduzibles Polynom}% \end{definition} \begin{beispiel} @@ -540,7 +485,7 @@ x_i = -\frac{b}2\pm\sqrt{\frac{b^2}{4}-c} \] gefunden werden. Die Faktorisierung ist also genau dann möglich, wenn $b^2/4-c$ ein -Quadrat in $\mathbb{Q}$. +Quadrat in $\mathbb{Q}$ ist. In $\mathbb{R}$ ist das Polynom faktorisierbar, wenn $b^2-4c\ge 0$ ist. In $\mathbb{C}$ gibt es keine Einschränkung, die Wurzel zu ziehen, in $\mathbb{C}$ gibt es also keine irreduziblen Polynome im Grad $2$. @@ -572,12 +517,3 @@ eindeutig sind. \end{satz} -% -% Abschnitt über formale Potenzreihen -% -\subsection{Formale Potenzreihen -\label{buch:subsection:polynome:potenzreihen}} -XXX TODO - - - diff --git a/buch/chapters/20-polynome/vektoren.tex b/buch/chapters/20-polynome/vektoren.tex index 408587d..0743592 100644 --- a/buch/chapters/20-polynome/vektoren.tex +++ b/buch/chapters/20-polynome/vektoren.tex @@ -25,14 +25,14 @@ a_{n-1}\\ a_{n} \end{pmatrix} \in -R^n. +R^{n+1}. \] Diese Darstellung eines Polynoms gibt auch die Addition von Polynomen und die Multiplikation von Polynomen mit Skalaren aus $R$ korrekt wieder. Die Abbildung von Vektoren auf Polynome \[ \varphi -\colon R^n \to R[X] +\colon R^{n+1} \to R[X] : \begin{pmatrix}a_0\\\vdots\\a_n\end{pmatrix} \mapsto @@ -52,7 +52,7 @@ Die Abbildung $\varphi$ ist also ein Isomorphismus \varphi \colon \{p\in R[X]\;|\; \deg(p) \le n\} -\overset{\equiv}{\to} +\overset{\cong}{\to} R^{n+1} \] zwischen der Menge @@ -93,7 +93,7 @@ mit der Eigenschaft, dass die Komponenten mit Indizes $m+1,\dots n$ verschwinden. Polynome vom Grad $m<n$ bilden einen Unterraum der Polynome vom Grad $n$. Wir können auch die $m+1$-dimensionalen Vektoren in den $n+1$-dimensionalen -Vektoren einbetten, indem wir die Vektoren durch ``auffüllen'' mit Nullen +Vektoren einbetten, indem wir die Vektoren durch ``Auffüllen'' mit Nullen auf die richtige Länge bringen. Es gibt also eine lineare Abbildung \[ @@ -108,25 +108,25 @@ b_0\\b_1\\\vdots\\b_m\\0\\\vdots \end{pmatrix} . \] -Die Moduln $R^{k}$ sind also alle ineinandergeschachtelt, können aber +Die Moduln $R^{k+1}$ sind also alle ineinandergeschachtelt, können aber alle auf konsistente Weise mit der Abbildung $\varphi$ in den Polynomring $R[X]$ abgebildet werden. \begin{center} -\begin{tikzcd} -\{0\}\ar[r] %\arrow[d,"\varphi"] - &R \ar[r] %\arrow[d, "\varphi"] - &R^2 \ar[r] %\arrow[d, "\varphi"] +\begin{tikzcd}[>=latex] +R \ar[r] \arrow[d, "\varphi"] + &R^2 \ar[r] \arrow[d, "\varphi"] + &R^3 \ar[r] \arrow[d, "\varphi"] &\dots \ar[r] - &R^k \ar[r] %\arrow[d, "\varphi"] - &R^{k+1} \ar[r] %\arrow[d, "\varphi"] + &R^k \ar[r] \arrow[d, "\varphi"] + &R^{k+1} \ar[r] \arrow[d, "\varphi"] &\dots \\ R^{(0)}[X]\arrow[r,hook] \arrow[drrr,hook] &R^{(1)}[X]\arrow[r,hook] \arrow[drr,hook] &R^{(2)}[X]\arrow[r,hook] \arrow[dr,hook] &\dots\arrow[r,hook] - &R^{(k)}[X]\arrow[r,hook] \arrow[dl,hook] - &R^{(k+1)}[X]\arrow[r,hook] \arrow[dll,hook] + &R^{(k-1)}[X]\arrow[r,hook] \arrow[dl,hook] + &R^{(k)}[X]\arrow[r,hook] \arrow[dll,hook] &\dots \\ & @@ -137,10 +137,115 @@ R^{(0)}[X]\arrow[r,hook] \arrow[drrr,hook] & \end{tikzcd} \end{center} +In diesem Sinne können wir $R^m$ für $m<n$ als Teilmenge von $R^n$ betrachten +und $R^\infty$ als deren Vereinigung definieren. +Polynome in $R[X]$ sind also Vektoren beliebiger Länge mit Kompoenten +in $R$. + \subsection{Multiplikative Struktur \label{buch:subsection:polynome:multiplikativestruktur}} +Den Polynomring $R[X]$ aus den Vektoren $R^{k}$ aufzubauen, bedeutet, +dass wir die multiplikative Struktur ignorieren. +Augrund der Rechenregeln für das Symbol $X$ können wir $X$ als einen +Multiplikationsoperator +\[ +{X\cdot} +\colon R^{m} \to R^{n} +: +\begin{pmatrix}a_0\\a_1\\a_2\\\vdots\end{pmatrix} +\mapsto +\begin{pmatrix}0\\a_0\\a_1\\\vdots\end{pmatrix} +\] +betrachten. +Diese Operatoren setzen sich zusammen zu einem Operator +\[ +{X\cdot} \colon R^\infty \to \infty, +\] +der die Multiplikation mit $X$ beschreibt. +Ist $p(X)$ ein Polynom, dann lässt sich die Multiplikation +in von Polynome mit $R[X]$ ebenfalls als Operator schreiben. +Die Potenz $X^k$ wird durch $k$-fache Iteration des Operators +$X\cdot$. +Das Polynom $p(X)$ wird durch Linearkombination, entspricht +also dem Operator, den man durch Einsetzen von $X\cdot$ +in das Polynom erhalten kann: +\[ +p(X\cdot) += +a_n(X\cdot)^n + a_{n-1}(X\cdot)^{n+1} + \dots + a_1(X\cdot) + a_0 +\colon +R^\infty \to R^\infty +: +q(X) +\mapsto +p(X)q(X). +\] +Man kann den Operator $X\cdot$ oder den iterierten Operator +$(X\cdot)^k$ auch in Matrixform darstellen: +\begin{align*} +{X\cdot} +&= +\begin{pmatrix} +0&0&0&0&\dots\\ +1&0&0&0&\dots\\ +0&1&0&0&\dots\\ +0&0&1&0&\dots\\ +\vdots&\vdots&\vdots&\ddots&\ddots +\end{pmatrix} +& +(X\cdot)^k +&= +\begin{pmatrix} + 0 & 0 & 0 & 0 &\dots\\ +\vdots&\vdots&\vdots&\vdots& \\ + 0 & 0 & 0 & 0 &\dots\\ + 1 & 0 & 0 & 0 &\dots\\ + 0 & 1 & 0 & 0 &\dots\\ + 0 & 0 & 1 & 0 &\dots\\ +\vdots&\vdots&\vdots&\ddots&\ddots +\end{pmatrix}. +\end{align*} +In der Matrix für $(X\cdot)^k$ steht die erste $1$ auf der +$k+1$-ten Zeile. +Der zum Polynom $p(X)$ gehörige Operator $p(X\cdot)$ bekommt +damit die Matrix +\[ +p(X\cdot) += +\begin{pmatrix} +a_0 & 0 & 0 & 0 & 0 & \dots \\ +a_1 &a_0 & 0 & 0 & 0 & \dots \\ +a_2 &a_1 & a_0 & 0 & 0 & \dots \\ +a_3 &a_2 & a_1 & a_0 & 0 & \dots \\ +a_4 &a_3 & a_2 & a_1 & a_0 & \dots \\ +\vdots &\vdots &\vdots&\vdots&\vdots&\ddots +\end{pmatrix}. +\] +Da die Matrix-Operation als Produkt +$\text{Zeile}\times\text{Spalte}$ ausgeführt wird, +kann man erkennen, dass das Polynomprodukt auch auf +eine Faltung hinausläuft. +Die wichtigste Lehre aus obigen Ausführungen aber ist +die Beobachtung, dass sich eine ganz allgemeine Algebra +wie die der Polynome auf sehr direkte Art und Weise auf +abbilden lässt in eine Algebra von Matrizen auf einem +geeigneten Vektorraum. +Im vorliegenden Fall sind das zwar ``undendliche'' +Matrizen, in zukünftigen Beispielen werden wir das +selbe Prinzip jedoch in Aktion sehen in Situationen, +wo eine Operation auf einem endlichen Vektorraum +und ``gewöhnliche'' Matrizen entstehen. +Die Möglichkeit, beliebige Polynome solcher Operatoren +zu berechnen, erlaubt uns, mehr über den Operator +herauszufinden - +Dies eröffnet vielfältige Möglichkeiten, auf einfachere +Art mit den Operatoren zu rechnen. +In Kapitel~\ref{buch:chapter:eigenwerte-und-eigenvektoren} +wird sich daraus eine Reihe von Normalformen einer Matrix +ergeben sowie die Möglichkeit, für viele Matrizen $A$ +die Matrix $f(A)$ für eine grosse Zahl von praktisch +interessanten Funktionen $f(z)$ zu berechnen. diff --git a/buch/chapters/30-endlichekoerper/chapter.tex b/buch/chapters/30-endlichekoerper/chapter.tex index 1a0a323..b4c602e 100644 --- a/buch/chapters/30-endlichekoerper/chapter.tex +++ b/buch/chapters/30-endlichekoerper/chapter.tex @@ -8,13 +8,14 @@ \lhead{Endliche Körper} \rhead{} Aus den ganzen Zahlen $\mathbb{Z}$ entsteht ein Körper, indem wir Brüche -bilden alle von $0$ verschiedenen Nenner zulassen. +bilden und dabei alle von $0$ verschiedenen Nenner zulassen. Der Körper der rationalen Zahlen $\mathbb{Q}$ enthält unendliche viele Zahlen und hat zusätzlich die sogenannte archimedische Eigenschaft, nämliche dass es zu zwei positiven rationalen Zahlen $a$ und $b$ immer eine ganze Zahl $n$ gibt derart, dass $na>b$. Dies bedeutet auch, dass es in den rationalen Zahlen beliebig grosse Zahlen gibt. + Man kann aus den ganzen Zahlen aber auch eine Reihe von Körpern ableiten, die diese Eigenschaft nicht haben. Nicht überraschend werden die ersten derartigen Körper, die wir diff --git a/buch/chapters/30-endlichekoerper/euklid.tex b/buch/chapters/30-endlichekoerper/euklid.tex index 0bf3016..a75046f 100644 --- a/buch/chapters/30-endlichekoerper/euklid.tex +++ b/buch/chapters/30-endlichekoerper/euklid.tex @@ -8,18 +8,33 @@ \rhead{Der euklidische Algorithmus} Der euklidische Algorithmus bestimmt zu zwei gegebenen ganzen Zahlen $a$ und $b$ den grössten gemeinsamen Teiler $g$. -Zusätzlich findet er ganze Zahlen $s$ und $t$ derart, dass + +\begin{definition} +\label{buch:endliche-koerper:def:ggt} +Der grösste gemeinsame Teiler von $a$ und $b$ ist die grösste +ganze Zahl $g$, die sowohl $a$ als auch $b$ teilt: $g|a$ und +$g|b$. +\index{grösster gemeinsamer Teiler}% +\index{ggT}% +\end{definition} + +Zusätzlich findet der euklidische Algorithmus ganze Zahlen $s$ +\index{euklidischer Algorithmus}% +und $t$ derart, dass \[ sa + tb = g. \] In diesem Abschnitt soll der Algorithmus zunächst für ganze Zahlen vorgestellt werden, bevor er auf Polynome verallgemeinert und dann in Matrixform niedergeschrieben wird. +Die Matrixform ermöglicht, einfach zu implementierende iterative +Algorithmen für die Zahlen $s$ und $t$ un später auch für die +Berechnung des kleinsten gemeinsamen Vielfachen zu finden. % % Der euklidische Algorithmus für ganze Zahlen % -\subsection{Ganze Zahlen} +\subsection{Grösster gemeinsamer Teiler ganzer Zahlen} Gegeben sind zwei ganze Zahlen $a$ und $b$ und wir dürfen annehmen, dass $a\ge b$. Gesucht ist der grösste gemeinsame Teiler $g$ von $a$ und $b$. @@ -55,11 +70,11 @@ neuen Quotienten $q_1$ und einen neuen Rest $r_1$ liefert mit $a_1-q_1b_1=r_1$. So entstehen vier Folgen von Zahlen $a_k$, $b_k$, $q_k$ und $r_k$ derart, dass in jedem Schritt gilt \begin{align*} -a_k - q_kb_k &= r_k & g&|a_k & g&|b_k & a_k &= b_{k-1} & b_k = r_{k-1} +a_k - q_kb_k &= r_k & g&|a_k & g&|b_k & a_k &= b_{k-1} & b_k = r_{k-1}. \end{align*} Der Algorithmus bricht im Schritt $n$ ab, wenn $r_{n+1}=0$. Der letzte nicht verschwindende Rest $r_n$ muss daher der grösste gemeinsame -Teiler sein: $g=r_n$. +Teiler $g$ von $a$ und $b$ sein: $g=r_n$. \begin{beispiel} \label{buch:endlichekoerper:beispiel1} @@ -131,7 +146,7 @@ In jedem Schritt arbeitet man mit zwei ganzen Zahlen $a_k$ und $b_k$, die wir als zweidimensionalen Spaltenvektor betrachten können. Der Algorithmus macht aus $a_k$ und $b_k$ die neuen Zahlen $a_{k+1} = b_k$ und $b_{k+1} = r_k = a_k - q_kb_k$, dies -kann man als +kann man als die Matrixoperation \[ \begin{pmatrix} a_{k+1} \\ b_{k+1} \end{pmatrix} = @@ -143,7 +158,7 @@ kann man als schreiben. Der Algorithmus bricht ab, wenn die zweite Komponente des Vektors $=0$ ist, in der ersten steht dann der grösste gemeinsame Teiler. -Hier ist die Durchführung des Algorithmus in Matrix-Schreibweise: +Hier die Durchführung des Algorithmus in Matrix-Schreibweise: \begin{align*} \begin{pmatrix} 23205 \\ 6800 \end{pmatrix} &= @@ -196,16 +211,16 @@ beschreiben. \begin{algorithmus}[Euklid] \label{lifting:euklid} -Der Algorithmus operiert auf zweidimensionalen Zustandsvektoren +Der Algorithmus operiert auf zweidimensionalen Vektoren $x\in\mathbb Z^2$ wie folgt: \begin{enumerate} -\item Initialisiere den Zustandsvektor mit den ganzen Zahlen $a$ und $b$: -$\displaystyle x = \begin{pmatrix}a\\b\end{pmatrix}$ +\item Initialisiere den Vektor mit den ganzen Zahlen $a$ und $b$: +$\displaystyle x = \begin{pmatrix}x_1\\x_2\end{pmatrix}=\begin{pmatrix}a\\b\end{pmatrix}$ \item Bestimme den Quotienten $q$ als die grösste ganze Zahl, für die $qx_2\le x_1$ gilt. -\item Berechne den neuen Zustandsvektor als $Q(q)x$. -\item Wiederhole Schritte 2 und 3 bis die zweite Komponente des Zustandsvektors +\item Berechne den neuen Vektor als $Q(q)x$. +\item Wiederhole Schritte 2 und 3 bis die zweite Komponente des Vektors verschwindet. Die erste Komponente ist dann der gesuchte grösste gemeinsame Teiler. \end{enumerate} @@ -319,13 +334,11 @@ Q(q) = \begin{pmatrix} 0 & 1 \\ 1 & -q \end{pmatrix} \] lässt sich mit genau einer Multiplikation und einer Addition berechnen. -Dies ist die Art von Matrix, die wir für die Implementation der -Wavelet-Transformation anstreben. % % Vereinfachte Durchführung des euklidischen Algorithmus % -\subsection{Vereinfachte Durchführung +\subsection{Iterative Durchführung des erweiterten euklidischen Algorithmus \label{buch:endlichekoerper:subsection:matrixschreibweise}} Die Durchführung des euklidischen Algorithmus mit Hilfe der Matrizen $Q(q_k)$ ist etwas unhandlich. @@ -334,7 +347,7 @@ dargestellt werden, die leichter als Programm zu implementieren ist. In Abschnitt~\ref{buch:endlichekoerper:subsection:matrixschreibweise} wurde gezeigt, dass das Produkt der aus den Quotienten $q_k$ gebildeten -Matrizen $Q(q_k)$ berechnet werden müssen. +Matrizen $Q(q_k)$ berechnet werden muss. Dazu beachten wir zunächst, dass die Multiplikation mit der Matrix $Q(q_k)$ die zweite Zeile in die erste Zeile verschiebt: \[ @@ -357,7 +370,7 @@ u-q_kc&v-q_kd \] Die Matrizen \[ -Q_k = Q(q_k)Q(q_{k-1})\dots Q(q_0) +Q_k = Q(q_k)Q(q_{k-1})\cdots Q(q_0) \] haben daher jeweils für aufeinanderfolgende Werte vo $k$ eine Zeile gemeinsam. @@ -419,7 +432,7 @@ gesetzt werden muss. Mit diesen Notationen kann man den Algorithmus jetzt in der früher verwendeten Tabelle durchführen, die man um die zwei -Spalten $c_k$ und $d_k$ hinzufügt und die Werte in dieser +Spalten $c_k$ und $d_k$ erweitert und die Werte in dieser Spalte mit Hilfe der Rekursionsformeln~\eqref{buch:endlichekoerper:eqn:cdrekursion} aus den initialen Werten~\eqref{buch:endlichekoerper:eqn:cdinitial} @@ -428,7 +441,7 @@ berechnet. \begin{beispiel} Wir erweitern das Beispiel von Seite~\pageref{buch:endlichekoerper:beispiel1} zur Bestimmung des grössten gemeinsamen Teilers von $76415$ und $23205$ -zur Berechnung der Koeffizienten $c_k$ und $d_k$ +um die Spalten zur Berechnung der Koeffizienten $c_k$ und $d_k$ Wir schreiben die gefundenen Zahlen in eine Tabelle: \begin{center} \label{buch:endlichekoerper:beispiel1erweitert} @@ -503,7 +516,7 @@ Tabelle vertauscht wurden. % % Der euklidische Algorithmus für Polynome % -\subsection{Polynome} +\subsection{Grösster gemeinsare Teiler von Polynomen} Der Ring $\mathbb{Q}[X]$ der Polynome in der Variablen $X$ mit rationalen Koeffizienten\footnote{Es kann auch ein beliebiger anderer Körper für die Koeffizienten verwendet werden. @@ -579,7 +592,7 @@ ta+sb (X^4+X^3-7X^2-X+6) \\ &= --4X^2+4X+8 +-4X^2+4X+8, \end{align*} und dies ist tatsächlich der gefundene grösste gemeinsame Teiler. Die zweite Zeile von $Q$ gibt uns die Polynomfaktoren, mit denen @@ -621,6 +634,8 @@ $ua-vb = ab/g - ab/g = 0$, wie erwartet. % \subsection{Das kleinste gemeinsame Vielfache \label{buch:subsection:daskgv}} +\index{kleinstes gemeinsames Vielfaches}% +\index{kgV}% Das kleinste gemeinsame Vielfache zweier Zahlen $a$ und $b$ ist \[ \operatorname{kgV}(a,b) @@ -631,8 +646,8 @@ Wir suchen nach einen Algorithmus, mit dem man das kleinste gemeinsame Vielfache effizient berechnen kann. Die Zahlen $a$ und $b$ sind beide Vielfache des grössten gemeinsamen -Teilers $g=\operatorname{ggT}(a,b)$, es gibt also Zahlen $u$ und $v$ derart, -dass $a=ug$ und $b=vg$. +Teilers $g=\operatorname{ggT}(a,b)$. +Es gibt daher Zahlen $u$ und $v$ derart, dass $a=ug$ und $b=vg$. Wenn $t$ ein gemeinsamer Teiler von $u$ und $v$ ist, dann ist $tg$ ein grösserer gemeinsamer Teiler von $a$ und $b$. Dies kann nicht sein, also müssen $u$ und $v$ teilerfremd sein. @@ -641,6 +656,7 @@ Die Bestimmung des kleinsten gemeinsamen Vielfachen ist also gleichbedeutend mit der Bestimmung der Zahlen $u$ und $v$. Die definierende Eigenschaften von $u$ und $v$ kann man in Matrixform als +\index{Matrixform des kgV-Algorithmus}% \begin{equation} \begin{pmatrix} a\\b @@ -669,7 +685,7 @@ Algorithmus beschreiben, ergeben ihn als \operatorname{ggT}(a,b)\\0 \end{pmatrix} = -Q(q_n)Q(q_{n-1}) \dots Q(q_1)Q(q_0) +Q(q_n)Q(q_{n-1}) \cdots Q(q_1)Q(q_0) \begin{pmatrix}a\\b\end{pmatrix}. \] Indem wir die Matrizen $Q(q_n)$ bis $Q(q_0)$ auf die linke Seite der @@ -679,7 +695,7 @@ Gleichung schaffen, erhalten wir = Q(q_0)^{-1} Q(q_1)^{-1} -\dots +\cdots Q(q_{n-1})^{-1} Q(q_n)^{-1} \begin{pmatrix}\operatorname{ggT}(a,b)\\0\end{pmatrix}. @@ -692,15 +708,14 @@ K = Q(q_0)^{-1} Q(q_1)^{-1} -\dots +\cdots Q(q_{n-1})^{-1} Q(q_n). \] Insbesondere ist die Matrix $K$ die Inverse der früher gefundenen Matrix $Q$. -Die Berechnung der Matrix $K$ als Inverse von $Q$ ist nicht sehr -effizient. +Die Berechnung der Matrix $K$ als Inverse von $Q$ ist nicht schwierig. Genauso wie es möglich war, das Produkt $Q$ der Matrizen $Q(q_k)$ iterativ zu bestimmen, muss es auch eine Rekursionsformel für das Produkt der inversen Matrizen $Q(q_k)^{-1}$ geben. @@ -709,7 +724,7 @@ Schreiben wir die gesuchte Matrix \[ K_k = -Q(q_0)^{-1}\dots Q(q_{k-1})^{-1} +Q(q_0)^{-1}\cdots Q(q_{k-1})^{-1} = \begin{pmatrix} e_k & e_{k-1}\\ @@ -825,13 +840,12 @@ va \] \end{beispiel} +\subsection{Kleinstes gemeinsames Vielfaches von Polynomen} Der erweiterte Algorithmus kann auch dazu verwendet werden, das kleinste gemeinsame Vielfache zweier Polynome zu berechnen. Dies wird zum Beispiel bei der Decodierung des Reed-Solomon-Codes in Kapitel~\ref{chapter:reedsolomon} verwendet. -\subsubsection{Polynome -\label{buch:endlichekoerper:eqn:polynomkgv}} Im Beispiel auf Seite~\pageref{buch:endlichekoerper:eqn:polynomggt} wird der grösste gemeinsame Teiler der Polynome \[ @@ -844,6 +858,8 @@ b = X^4 + X^3 -7X^2 -X + 6 berechnet. Dies kann jetzt erweitert werden für die Berechnung des kleinsten gemeinsamen Vielfachen. +\index{kleinstes gemeinsames Vielfaches von Polynomen}% +\index{kgV von Polynomen}% \begin{beispiel} Die Berechnungstabelle nur für die Spalten $e_k$ und $f_k$ ergibt @@ -890,8 +906,9 @@ Daraus ergibt sich das kleinste gemeinsame Vielfache auf zwei verschiedene Weise Die beiden Berechnungsmöglichkeiten stimmen wie erwartet überein. \end{beispiel} -\subsubsection{Anwendung: Decodierung des Reed-Solomon-Codes} +\subsection{Anwendung: Decodierung des Reed-Solomon-Codes} Der Reed-Solomon-Code verwendet Polynome zur Codierung der Daten, +\index{Reed-Solomon-Code}% dies wird in Kapitel~\ref{chapter:reedsolomon} im Detail beschrieben. Bei der Decodierung muss der Faktor $u$ für zwei gegebene Polynome $n(X)$ und $r(X)$ bestimmt werden. @@ -902,6 +919,7 @@ Algorithmus braucht. Daraus lässt sich genügend Information gewinnen, um die Faktoren $u$ und $v$ zu bestimmen. Das Video \url{https://youtu.be/uOLW43OIZJ0} von Edmund Weitz +\index{Weitz, Edmund} erklärt die Theorie hinter dieser Teilaufgabe anhand von Beispielen. \begin{beispiel} diff --git a/buch/chapters/30-endlichekoerper/galois.tex b/buch/chapters/30-endlichekoerper/galois.tex index c7147bf..7ffef0b 100644 --- a/buch/chapters/30-endlichekoerper/galois.tex +++ b/buch/chapters/30-endlichekoerper/galois.tex @@ -9,11 +9,11 @@ \rhead{Galois-Körper} Ein Körper $\Bbbk$ enthält mindestens die Zahlen $0$ und $1$. Die Null ist nötig, damit $\Bbbk$ eine Gruppe bezüglich der -Addition ist, die immer ein neutrales Element, geschrieben $0$ +Addition ist, die immer ein neutrales Element, geschrieben $0$, enthält. Die Eins ist nötig, damit $\Bbbk^*=\Bbbk\setminus\{0\}$ eine Gruppe bezüglich der Multiplikation ist, die immer eine neutrales -Element, geschrieben $1$ enthält. +Element, geschrieben $1$, enthält. Durch wiederholte Addition entstehen auch die Zahlen $2=1+1$, $3=2+1$ und so weiter. Es sieht also so aus, als ob ein Körper immer unendliche viele @@ -21,6 +21,8 @@ Elemente enthalten müsste. Wie können also endliche Körper entstehen? In diesem Abschnitt sollen die sogenannten Galois-Körper $\mathbb{F}_p$ +\index{Galois-Körper}% +\index{Fp@$\mathbb{F}_p$}% mit genau $p$ Elementen konstruiert werden, die es für jede Primzahl $p$ gibt. Sie sind die Basis für weitere endliche Körper, die eine beliebige Primzahlpotenz $p^n$ von Elementen haben und die die Basis wichtiger @@ -51,6 +53,7 @@ Zahlen $\{0,1,2,\dots,n-1\}$ identifiziert werden kann. \begin{definition} Die Zahlen $a,b\in\mathbb{Z}$ heissen {\em kongruent modulo $n$}, +\index{kongruent modulo $n$}% geschrieben \[ a\equiv b\mod n, @@ -60,6 +63,7 @@ wenn $a-b$ durch $n$ teilbar ist, also $n|(a-b)$. Die Zahlen mit gleichem Rest sind Äquivalenzklassen der Kongruenz modulo $n$. Die Zahlen mit Rest $k$ modulo $n$ bilden die {\em Restklasse} +\index{Restklasse}% \[ \llbracket k\rrbracket=\{\dots,k-2n,k-n,k,k+n,k+2n,\dots\} \subset\mathbb{Z}. \] @@ -90,7 +94,7 @@ Tatsächlich kann man auf den Restklassen eine Ringstruktur definieren. Dazu muss man sicherstellen, dass die Auswahl eines Repräsentanten keinen Einfluss auf den Rest hat. Der Rest $a$ kann jede Zahl der Form $a+kn$ darstellen. -Ebenso kann der Rest $b$ jede zahl der Form $b+ln$ darstellen. +Ebenso kann der Rest $b$ jede Zahl der Form $b+ln$ darstellen. Deren Summe ist $a+b+(k+l)n\equiv a+b\mod n$. Der Repräsentant des Restes hat also keinen Einfluss auf die Summe. @@ -121,8 +125,9 @@ Insbesondere darf kein Produkt $a\cdot b$ mit Faktoren in $\mathbb{Z}/n\mathbb{Z} \setminus \{\llbracket0\rrbracket\}$ zu Null werden. Für $n=15$ funktioniert dies nicht, das Produkt $3\cdot 5\equiv 0\mod 15$. -Man nennt von Null verschiedene Faktoren, deren Produkt Null ist, einen -{\em Nullteiler}. +Wir kommen daher zu der Forderung, dass der Ring $\mathbb{Z}/n\mathbb{Z}$ +nur dann ein Körper sein kann, wenn er nullteilerfrei ist. + Falls sich $n=p_1\cdot p_2$ in zwei Faktoren zerlegen lässt, dann sind $p_1$ und $p_2$ Nullteiler in $\mathbb{Z}/n\mathbb{Z}$. Ein Körper kann also nur entstehen, wenn $n$ eine Primzahl ist. @@ -130,7 +135,9 @@ Ein Körper kann also nur entstehen, wenn $n$ eine Primzahl ist. \begin{definition} \label{buch:endlichekoerper:def:galois-koerper} Ist $p$ eine Primzahl, dann heisst $\mathbb{F}_p=\mathbb{Z}/p\mathbb{Z}$ +\index{Primzahl}% der Galois-Körper der Ordnung $p$. +\index{Galois-Körper}% \end{definition} Diese Definition ist nur gerechtfertigt, wenn $\mathbb{F}_p^*$ tatsächlich @@ -152,6 +159,7 @@ lösen kann, wenn die beiden gegebenen Zahlen $a$ und $p$ teilerfremd sind. Dies ist aber dadurch garantiert, dass $p$ eine Primzahl ist und $1\le a <p$. Die multiplikative Inverse von $a$ in $\mathbb{F}_p^*$ kann also mit Hilfe des euklidischen Algorithmus effizient gefunden werden. +\index{multiplikative Inverse in $\mathbb{F}_p$}% \begin{beispiel} Die kleinste Primzahl grösser als $2021$ ist $p=2063$. @@ -210,6 +218,8 @@ Inverse von $2021$ in $\mathbb{F}_{2063}$. \end{beispiel} \subsubsection{Der kleine Satz von Fermat} +\index{Fermat, kleiner Satz von}% +\index{kleiner Satz von Fermat}% In $\mathbb{Z}$ wachsen die Potenzen einer Zahl immer weiter an. In einem endlichen Körper kann dies nicht gelten, da nur endlich viele Werte zur Verfügung stehen. @@ -221,6 +231,22 @@ die Potenz mit Exponent $p$ muss also mit einer früheren Potenz Der kleine Satz von Fermat sagt etwas genauer: die $p$-te Potenz von $a$ ist genau die Zahl $a$: +\begin{figure} +\centering +\includegraphics{chapters/30-endlichekoerper/images/fermat.pdf} +\caption{$G$ ist die Menge aller verschiedenfarbigen geschlossenen +Perlenketten mit $p$ Perlen und $a$ Farben. +$A$ ist die Menge aller linearen verschiedenfarbigen Ketten. +Die Abbildung $s_i$ schneidet die Ketten an der Stelle $i$ auf, +dadurch entstehen die Menge $A_i$, verschiedenfarbigen linearen +Ketten der Länge $p$ mit $a$ Farben. +Die Abbildungen $s_i$ sind injektiv, die Mengen $A_i$ haben alle +die gleiche Anzahl Elemente. +Genau dann ist $|A|$ durch $p$ teilbar, wenn die Mengen $A_i$ +disjunkt sind. +\label{buch:endliche-koerper:fig:fermat}} +\end{figure} + \begin{satz}[Kleiner Satz von Fermat] \label{buch:endliche-koerper:satz:fermat} In $\mathbb{F}_p$ gilt $a^p=a$ für alle $a\in\mathbb{F}_p^*$. @@ -237,10 +263,10 @@ $p$ eine Primzahl ist. \begin{proof}[Beweis] Wir müssen zeigen, dass $p$ ein Teiler ist von $a^p-a$. Das nachfolgende kombinatorische Argument wird zum Beispiel -von Mathologor auf seinem Youtube-Kanal im Video +von Mathologer auf seinem Youtube-Kanal im Video \url{https://youtu.be/_9fbBSxhkuA} illustriert. -Zum Beiweis interpretieren wir die vorkommenden Zahlen kombinatorisch. +Zum Beweis interpretieren wir die vorkommenden Zahlen kombinatorisch. Die Zahl $a^p$ ist die Anzahl der verschiedenen Perlenketten der Länge $p$, die sich aus Glasperlen mit $a$ verschiedenen Farben herstellen lassen. @@ -248,26 +274,52 @@ Davon bestehen $a$ Perlenketten aus nur einer einzigen Farbe. Die Zahl $a^p-a$ ist also die Anzahl der Perlenketten der Länge $p$ aus Glasperlen mit $a$ verschiedenen Farben, die mindestens zwei verschiedene Farben verwenden. +Wir bezeichnen die Menge der nicht einfarbigen Perlenketten der +Länge $p$ mit $a$ Farben mit $A$. +Es ist $|A|=a^p-a$. + +Zu sagen, dass $a^p-a$ durch $p$ teilbar ist, ist gleichbedeutend +damit, dass die Menge der Perlenkette in $p$ +disjunkte, gleichmächtige Mengen aufgeteilt werden kann. +Es ist also zu zeigen, dass sich die Menge $A$ genau dann in +disjunkte gleichmächtige Mengen zerlegen lässt, wenn $p$ eine +Primzahl ist. + +Wir betrachten dazu die Menge der nicht einfarbigen, geschlossenen +Perlenketten der Länge $p$ mit $a$ Farben. +Einge dieser Perlenketten unterscheiden sich nur durch eine +Drehung um einzelne Perlen. +Sei $G$ die Menge der nicht einfarbigen, geschlossenen +Perlenketten, die sich nicht nur um eine Drehung unterscheiden. + +Die Abbildung $s_i\colon G\to A$ +in Abbildung~\ref{buch:endliche-koerper:satz:fermat} +schneidet die Perlenkette in $G$ an der Stelle $i$ auf. +Diese Abbildungen sind ganz offensichtlich injektiv. +Die Bildmengen $A_i = s_i(G)$ haben daher alle gleich +viele Elemente wie $G$: $|A_i|=|G|$. + +Da jede lineare Perlenkette in $A$ durch geeignetes Aufschneiden +einer geschlossenen Perlenkette in $G$ entsteht, ist +\[ +A=\bigcup_{i=1}^p A_i. +\] -Wir stellen jetzt die Frage nach der Anzahl der geschlossenen -Perlenketten der Länge $p$ als Glasperlen in $a$ verschiedenen Farben. -Aus jeder geschlossenen Perlenkette lassen sich $p$ Perlenketten machen, -indem man sie an einer der $p$ Trennstellen zwischen Perlen aufteilt. - -Wir müssen uns noch überlegen, unter welchen Voraussetzungen -alle diese möglichen Auftrennungen zu verschiedenen Perlenketten -führen. -Zwei Trennstellen, die $k$-Perlen auseinander liegen, führen nur dann -zur gleichen Perlenkette, wenn die geschlossenen Ketten durch Drehung -um $k$ Perlen ineinander übergehen. -Dies bedeutet aber auch, dass sich das Farbmuster alle $k$-Perlen -wiederholen muss. -Folglich ist $k$ ein Teiler von $p$. -$p$ verschiedene Perlenketten entstehen also immer genau dann, wenn $p$ +Wir müssen jetzt nur noch untersuchen, unter welchen Bedingungen +die Mengen $A_i$ disjunkt sind. +Zwei Mengen $A_i$ und $A_j$ enthalten genau dann eine +gemeinsame Perlenkette, wenn es eine geschlossene Kette in $G$ +gibt, die beim Aufschneiden an den Stellen $i$ und $j$ die +gleiche Kette ergeben. +Dies bedeutet, dass sich die Farben zwischen $i$ und $j$ nach +der Stelle $j$ wiederholen. +Die Mengen sind also genau dann nicht disjunkt, wenn es +peridische Ketten gibt mit einer Periode $k<p$. + +Da die Periode einer periodischen Kette ein Teiler von $p$ +ist, gibt es genau dann keine periodischen Ketten, wenn $p$ eine Primzahl ist. - -Wir schliessen daraus, dass $a^p-a$ durch $p$ teilbar ist, genau dann, -wenn $p$ eine Primzahl ist. +Damit ist die Behauptung gezeigt. \end{proof} Der kleine Satz von Fermat kann auch dazu verwendet werden, Potenzen @@ -302,6 +354,8 @@ Sie ist zwar nicht unbedingt einfacher, aber manchmal nützlich für theoretische Überlegungen. \begin{satz}[Wilson] +\index{Wilson, Satz von}% +\index{Satz von Wilson}% Die ganze Zahl $p\ge 2$ ist genau dann eine Primzahl, wenn $(p-1)!\equiv -1\mod p$. \end{satz} @@ -341,7 +395,7 @@ die Behauptung des Satzes. \end{proof} Mit dem Satz von Wilson kann man die Inverse einer beliebigen Zahl -$a\in\mathbb{F}_p$ finden. +$a\in\mathbb{F}_p$ wie folgt finden. Dazu verwendet man, dass $a$ einer der Faktoren in $(p-1)!$ ist. Lässt man diesen Faktor weg, erhält man eine Zahl \[ @@ -390,6 +444,7 @@ der Körper $\mathbb{F}_p$ in $\Bbbk$ enthalten sein muss. Dies ist der kleinste Teilkörper, der in $\Bbbk$ enthalten ist. \begin{definition} +\index{Primkörper} Der kleinste Teilkörper eines Körpers $\Bbbk$ heisst der {\em Primkörper} von $\Bbbk$. \end{definition} @@ -398,7 +453,8 @@ Der Primkörper erlaubt jetzt, die Charakteristik eines Körpers $\Bbbk$ zu definieren. \begin{definition} -Die Charakteristik eines Körpers $\Bbbk$ ist $p$, wenn der Primkörper +\index{Charakteristik}% +Die {\em Charakteristik} eines Körpers $\Bbbk$ ist $p$, wenn der Primkörper $\mathbb{F}_p$ ist. Falls der Primkörper $\mathbb{Q}$ ist, ist die Charakteristik $0$. \end{definition} @@ -411,6 +467,10 @@ Ein Körper mit Charakteristik $0$ enthält immer unendliche viele Elemente. \subsubsection{Teilbarkeit von Binomialkoeffizienten} +Als Beispiel für die Auswrikung der Charakteristik auf die Arithmetik +in einem endlichen Körper betrachten wir die Teilbarkeitseigenschaften +der Binomialkoeffizienten. + \begin{figure} \centering \includegraphics{chapters/30-endlichekoerper/images/binomial2.pdf} @@ -437,11 +497,14 @@ sind alle Koeffizienten ausser dem ersten und letzten durch $5$ teilbar. \egroup Die Abbildung~\ref{buch:endliche-koerper:fig:binomial2} zeigt den Rest bei Teilung durch $2$ der Binomialkoeffizienten. +\index{Binomialkoeffizient}% Man kann daraus ablesen, dass $\binom{n}{m}\equiv 0\mod 2$ für $n=2^k$ und $0<m<n$. Abbildung~\ref{buch:endliche-koerper:fig:binomial5} zeigt das Pascal-Dreieck auch noch für $p=5$. Hier ist auch schön die Selbstähnlichkeit des Pascal-Dreiecks erkennbar. +\index{Selbstähnlichkeit}% +\index{Pascal-Dreieck}% Ersetzt man die ``5er-Dreiecke'' durch ein volles Dreieck mit der Farbe des kleinen Dreiecks an seiner Spitze, entsteht wieder das ursprüngliche Pascal-Dreieck. @@ -454,6 +517,10 @@ Sei $p$ eine Primzahl, dann ist \binom{p}{m} \equiv 0\mod p \] für $0<m<n$. +Für $a,b\in\mathbb{Z}$ bedeutet dies +\[ +(a+b)^p \equiv a^p + b^p\mod p. +\] \end{satz} \begin{proof}[Beweis] @@ -466,6 +533,30 @@ Für den Binomialkoeffizienten gilt Für $m<p$ kann keiner der Faktoren im Nenner $p$ sein, der Faktor $p$ im Zähler kann also nicht weggekürzt werden, so dass der Binomialkoeffizient durch $p$ teilbar sein muss. + +In der binomischen Formel +\[ +(a+b)^p += +a^p ++ +\binom{p}{1} a^{p-1}b ++ +\binom{p}{2} a^{p-2}b^2 ++ +\dots ++ +\binom{p}{p-1} ab^{p-1} ++ +b^p +\] +sind alle ``inneren'' Terme auf der rechten Seite durch $p$ teilbar, +weil der Binomialkoeffizient durch $p$ teilbar ist. +Modulo $p$ ergibt sich daher +\[ +(a+b)^p \equiv a^p + b^p \mod p. +\] +Damit ist alles bewiesen. \end{proof} \begin{satz} @@ -544,6 +635,7 @@ Binomialkoeffizienten der Zwischenterme der Summe \eqref{buch:endliche-koerper:fig:binomischeformel} als Elemente von $\mathbb{F}_p$. Daher gilt +\index{Frobenius-Automorphismus}% \begin{satz}[Frobenius-Automorphismus] In einem Körper $\Bbbk$ der Charakteristik $p$ ist die Abbildung diff --git a/buch/chapters/30-endlichekoerper/images/Makefile b/buch/chapters/30-endlichekoerper/images/Makefile index c49fe56..bf53c29 100644 --- a/buch/chapters/30-endlichekoerper/images/Makefile +++ b/buch/chapters/30-endlichekoerper/images/Makefile @@ -3,10 +3,14 @@ # # (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule # -all: binomial2.pdf binomial5.pdf +all: binomial2.pdf binomial5.pdf fermat.pdf binomial2.pdf: binomial2.tex pdflatex binomial2.tex binomial5.pdf: binomial5.tex farben.tex pdflatex binomial5.tex + +fermat.pdf: fermat.tex + pdflatex fermat.tex + diff --git a/buch/chapters/30-endlichekoerper/images/fermat.pdf b/buch/chapters/30-endlichekoerper/images/fermat.pdf Binary files differnew file mode 100644 index 0000000..4513e62 --- /dev/null +++ b/buch/chapters/30-endlichekoerper/images/fermat.pdf diff --git a/buch/chapters/30-endlichekoerper/images/fermat.tex b/buch/chapters/30-endlichekoerper/images/fermat.tex new file mode 100644 index 0000000..6cdafaa --- /dev/null +++ b/buch/chapters/30-endlichekoerper/images/fermat.tex @@ -0,0 +1,138 @@ +% +% fermat.tex -- Illustration zum kleinen Satz von Fermat +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math,calc} +\begin{document} +\def\skala{1} +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\def\s{34} + +\definecolor{farbe1}{rgb}{0.0,0.4,0.0} +\definecolor{farbe2}{rgb}{0.0,1.0,1.0} +\definecolor{farbe3}{rgb}{0.0,0.4,0.6} +\definecolor{farbe4}{rgb}{0.0,0.0,0.8} +\definecolor{farbe5}{rgb}{0.4,0.0,1.0} +\definecolor{farbe6}{rgb}{0.8,0.0,0.0} +\definecolor{farbe7}{rgb}{0.8,0.4,0.4} +\definecolor{farbe8}{rgb}{1.0,0.8,0.0} + +\def\perle#1#2#3{ + \fill[color=#3] ($#1+({#2*0.15},0)$) circle[radius=0.075]; +} + +\def\perlena#1#2#3#4#5#6{ + \draw #1 -- ($#1+({0.15*9},0)$); + \perle{#1}{0}{#2} + \perle{#1}{1}{#3} + \perle{#1}{2}{#4} + \perle{#1}{3}{#5} + \perle{#1}{4}{#6} +} +\def\perlenb#1#2#3#4#5#6{ + \perle{#1}{5}{#2} + \perle{#1}{6}{#3} + \perle{#1}{7}{#4} + \perle{#1}{8}{#5} + \perle{#1}{9}{#6} +} + +\begin{scope}[xshift=3cm] +\draw (0,0) circle[radius=4]; +\foreach \k in {-1,...,8}{ + \draw (0,0) -- ({90+\k*\s}:4); +} +\foreach \k in {1,...,8}{ + \node at ({90+\s*(\k-0.5)}:3.7) {$A_{\k\mathstrut}$}; +} + +\pgfmathparse{90-(360-9*\s)/2-\s} +\xdef\b{\pgfmathresult} +\foreach \d in {-10,-5,...,10}{ + \fill ({\b+\d}:2.8) circle[radius=0.04]; +} +\node at ({90-(\s/2)}:3.7) {$A_{p\mathstrut}$}; + +\node at (-4,4) {$s_1$}; +\node at (-3.8,2.6) {$s_2$}; +\node at (-4.8,0.6) {$s_3$}; +\node at (-4.2,-2) {$s_4$}; +\node at (-4,-4) {$s_5$}; + +\perlena{({-3*sin(-0.5*\s)-0.54},{3*cos(-0.5*\s)})}{farbe8}{farbe1}{farbe2}{farbe3}{farbe4} +\perlenb{({-3*sin(-0.5*\s)-0.54},{3*cos(-0.5*\s)})}{farbe5}{farbe6}{farbe7}{black,opacity=0}{black,opacity=0} + +\perlena{({-3*sin(0.5*\s)-0.74},{3*cos(0.5*\s)})}{farbe1}{farbe2}{farbe3}{farbe4}{farbe5} +\perlenb{({-3*sin(0.5*\s)-0.74},{3*cos(0.5*\s)})}{farbe6}{farbe7}{black,opacity=0}{black,opacity=0}{farbe8} + +\perlena{({-3*sin(1.5*\s)-0.74},{3*cos(1.5*\s)-0.2})}{farbe2}{farbe3}{farbe4}{farbe5}{farbe6} +\perlenb{({-3*sin(1.5*\s)-0.74},{3*cos(1.5*\s)-0.2})}{farbe7}{black,opacity=0}{black,opacity=0}{farbe8}{farbe1} + +\perlena{({-3*sin(2.5*\s)-0.0},{3*cos(2.5*\s)-0.0})}{farbe3}{farbe4}{farbe5}{farbe6}{farbe7} +\perlenb{({-3*sin(2.5*\s)-0.0},{3*cos(2.5*\s)-0.0})}{black,opacity=0}{black,opacity=0}{farbe8}{farbe1}{farbe2} + +\perlena{({-3*sin(3.5*\s)-0.74},{3*cos(3.5*\s)+0.2})}{farbe4}{farbe5}{farbe6}{farbe7}{black,opacity=0} +\perlenb{({-3*sin(3.5*\s)-0.74},{3*cos(3.5*\s)+0.2})}{black,opacity=0}{farbe8}{farbe1}{farbe2}{farbe3} + +\perlena{({-3*sin(4.5*\s)-0.74},{3*cos(4.5*\s)})}{farbe5}{farbe6}{farbe7}{black,opacity=0}{black,opacity=0} +\perlenb{({-3*sin(4.5*\s)-0.74},{3*cos(4.5*\s)})}{farbe8}{farbe1}{farbe2}{farbe3}{farbe4} + +\perlena{({-3*sin(5.5*\s)-0.64},{3*cos(5.5*\s)})}{farbe6}{farbe7}{black,opacity=0}{black,opacity=0}{farbe8} +\perlenb{({-3*sin(5.5*\s)-0.64},{3*cos(5.5*\s)})}{farbe1}{farbe2}{farbe3}{farbe4}{farbe5} + +\perlena{({-3*sin(6.5*\s)-0.64},{3*cos(6.5*\s)})}{farbe7}{black,opacity=0}{black,opacity=0}{farbe8}{farbe1} +\perlenb{({-3*sin(6.5*\s)-0.64},{3*cos(6.5*\s)})}{farbe2}{farbe3}{farbe4}{farbe5}{farbe6} + +\perlena{({-3*sin(7.5*\s)-1.14},{3*cos(7.5*\s)+0.1})}{black,opacity=0}{black,opacity=0}{farbe8}{farbe1}{farbe2} +\perlenb{({-3*sin(7.5*\s)-1.14},{3*cos(7.5*\s)+0.1})}{farbe3}{farbe4}{farbe5}{farbe6}{farbe7} + +\node at (45:4) [above right] {$A$}; + +\clip (-7,-4.4) rectangle (0,4.8); +\foreach \k in {1,...,5}{ + \pgfmathparse{20*(3-\k)} + \xdef\c{\pgfmathresult} + \pgfmathparse{90+(\k-0.5)*\s} + \xdef\a{\pgfmathresult} + \pgfmathparse{\a-180} + \xdef\b{\pgfmathresult} + \draw[->] (-7.5,0) to[out={\c},in={180+\b}] (\a:4); + %\node at (\a:4) [left] {$\b$}; +} +\end{scope} + +\def\pearl#1#2{ + \fill[color=#2] ($({90+(#1-0.5)*\s}:0.6)$) circle[radius=0.12]; + \draw[line width=0.1pt] ($({90+(#1-0.5)*\s}:0.6)$) circle[radius=0.12]; +} + +\def\kette{ + \draw (0,0) circle[radius=0.6]; + \pearl{1}{farbe1} + \pearl{2}{farbe2} + \pearl{3}{farbe3} + \pearl{4}{farbe4} + \pearl{5}{farbe5} + \pearl{6}{farbe6} + \pearl{7}{farbe7} + \pearl{0}{farbe8} +} + +\begin{scope}[xshift=-4.5cm] +\fill[color=white] (-1.5,-2.5) rectangle (1.5,2.5); +\draw (-1.5,-2.5) rectangle (1.5,2.5); +\kette +\node at (-1.5,2.5) [below right] {$G$}; +\end{scope} + +\end{tikzpicture} +\end{document} + diff --git a/buch/chapters/30-endlichekoerper/wurzeln.tex b/buch/chapters/30-endlichekoerper/wurzeln.tex index 600336c..b066969 100644 --- a/buch/chapters/30-endlichekoerper/wurzeln.tex +++ b/buch/chapters/30-endlichekoerper/wurzeln.tex @@ -52,10 +52,10 @@ Inverse kann zum Beispiel als die inverse Matrix mit dem Gauss-Algorithmus berechnet werden. In einem zweiten Schritt zeigen wir dann, dass man die Rechnung noch etwas vereinfachen kann, wenn man in Polynomringen arbeitet. -Schliesslich zeigen wir dann im -Abschnitt~\ref{buch:subsection:zerfaellungskoerper}, wie man -den Prozess iterieren kann und so für beliebige Polynome immer einen -Körper finden kann, der alle Nullstellen enthält. +%Schliesslich zeigen wir dann im +%Abschnitt~\ref{buch:subsection:zerfaellungskoerper}, wie man +%den Prozess iterieren kann und so für beliebige Polynome immer einen +%Körper finden kann, der alle Nullstellen enthält. Wir beginnen in Abschnitt~\ref{buch:subsection:irreduziblepolynome} damit, die Polynome, die für die Konstruktion in Frage kommen, etwas genauer zu charakterisieren. @@ -608,7 +608,17 @@ $J$ mit $I\subset J\subset R$ entweder $I=J$ oder $J=R$ gilt. Die Ideale $p\mathbb{Z}\subset \mathbb{Z}$ sind maximal genau dann, wenn $p$ eine Primzahl ist. -TODO: XXX Begründung +Ist nämlich $p=n_1n_2$ eine Faktorisierung, dann ist +$\mathbb{Z}\supset n_1\mathbb{Z} \supset p\mathbb{Z}$ +und $n_1\mathbb{Z}$ ist ein grössers Ideal als $p\mathbb{Z}$, +d.~h.~$p\mathbb{Z}$ ist nicht maximal. + +In $\mathbb{Z}$ sind alle Ideale von der Form $n\mathbb{Z}$. +Wenn es also ein Ideal $I\supset p\mathbb{Z}$ gibt, welches +$p\mathbb{Z}$ echt enthält, dann gibt es $n\in\mathbb{Z}$ derart, +dass $n\mathbb{Z} \subset p\mathbb{Z}$. +Dies ist gleichbedeutend damit, dass $n$ ein echter Teiler von $p$ +ist, also ist $p$ keine Primzahl. \end{beispiel} \begin{satz} @@ -616,6 +626,23 @@ Der Ring $R/I$ ist genau dann ein Körper, wenn $I$ ein maximales Ideal ist. \end{satz} \begin{proof}[Beweis] +Nehmen wir zunächst an, dass $I$ ein maximales Ideal ist. +Damit $R/I$ ein Körper ist, muss jedes von $0$ verschiedene Element +eine multiplikatives Inverses haben. +Sei als $a\in R\setminus I$, dann ist $a+I$ ein von $0$ verschiedenes +Körperelement. +Die Menge $Ra+I$ ist dann ein Ideal von $R$, welches $I$ echt enthält. +Weil $I$ maximal ist, ist $Ra+I=R$, also gibt es ein Element $b\in I$ +derart, dass $ab+I=1+I$, d.~h.~$b+I$ ist das gesuchte multiplikative +Inverse. + +Sei nun umgekehrt $R/I$ ein Körper und $J\supset I$ sei ein Ideal, +welches $I$ echt enhält. +Sei $a\in J\setminus I$. +Da $R/I$ ein Körper ist, ist $a+I$ invertierbar, es gibt also ein +$b\in R$ mit $ab+I=1+I$. +Da $a\in J$ folgt $Ra\subset J$. +Andererseits ist $1\in Ra$, also ist $J=R$ und das Ideal $J$ ist maximal. \end{proof} Ein irreduzibles Polynom $m\in\Bbbk[X]$ erzeugt ein maximales Ideal, @@ -894,10 +921,3 @@ Dieser Spezialfall ist für die praktische Anwendung in der Kryptographie von besonderer Bedeutung, daher wird er im In Kapitel~\ref{buch:chapter:kryptographie} genauer untersucht. -\subsection{Zerfällungskörper -\label{buch:subsection:zerfaellungskoerper}} -XXX TODO - - - - diff --git a/buch/chapters/40-eigenwerte/Makefile.inc b/buch/chapters/40-eigenwerte/Makefile.inc index 5f30ab5..9ca0a97 100644 --- a/buch/chapters/40-eigenwerte/Makefile.inc +++ b/buch/chapters/40-eigenwerte/Makefile.inc @@ -8,6 +8,7 @@ CHAPTERFILES = $(CHAPTERFILES) \ chapters/40-eigenwerte/numerisch.tex \ chapters/40-eigenwerte/normalformen.tex \ chapters/40-eigenwerte/grundlagen.tex \ + chapters/40-eigenwerte/eigenwerte.tex \ chapters/40-eigenwerte/spektralradius.tex \ chapters/40-eigenwerte/spektraltheorie.tex \ chapters/40-eigenwerte/uebungsaufgaben/4001.tex \ diff --git a/buch/chapters/40-eigenwerte/chapter.tex b/buch/chapters/40-eigenwerte/chapter.tex index 24ea57d..65cf608 100644 --- a/buch/chapters/40-eigenwerte/chapter.tex +++ b/buch/chapters/40-eigenwerte/chapter.tex @@ -8,30 +8,56 @@ \lhead{Eigenwerte und Eigenvektoren} \rhead{} Die algebraischen Eigenschaften einer Matrix $A$ sind eng mit der -Frage nach linearen Beziehungen unter den Potenzen von $A^k$ verbunden. +Frage nach linearen Beziehungen zwischen den Potenzen $A^k$ von $A$ verbunden. Im Allgemeinen ist die Berechnung dieser Potenzen eher unübersichtlich, es sei denn, die Matrix hat eine spezielle Form. Die Potenzen einer Diagonalmatrix erhält man, indem man die Diagonalelemente potenziert. +\index{Diagonalmatrix}% Auch für Dreiecksmatrizen ist mindestens die Berechnung der Diagonalelemente von $A^k$ einfach. +\index{Dreiecksmatrix}% Die Theorie der Eigenwerte und Eigenvektoren ermöglicht, Matrizen in -eine solche besonders einfache Form zu bringen. +\index{Eigenwert}% +\index{Eigenvektor} +eine solche besonders einfache sogenannte Normalform zu bringen. +\index{Normalform}% +Ziel ist, einen Algorithmus zu finden, mit dem sich für jede lineare +Abbildung eine Basis finden lässt, in der ihre Matrix eine besonders +einfach Form hat, in der auch die Berechnung von Potenzen leicht +möglich ist. -In Abschnitt~\ref{buch:section:grundlagen} werden die grundlegenden -Definitionen der Eigenwerttheorie in Erinnerung gerufen. +Die Untersuchungen beginnen in +Abschnitt~\ref{buch:section:grundlagen} mit Betrachtungen über +Potenzen von Matrizen und ihren invarianten Unterräumen. +\index{Matrixpotenz}% +\index{invarianter Unterraum}% +\index{Unterraum, invarianter}% +Es ergibt sich bereits eine Normalform für nilpotente Matrizen. +\index{nilpotent}% +In Abschnitt~\ref{buch:section:eigenwerte-eigenvektoren} wird daraus die +allgemeine Eigenwerttheorie entwickelt. Damit kann dann in Abschnitt~\ref{buch:section:normalformen} -gezeigt werden, wie Matrizen in besonders einfache Form gebracht -werden können. -Die Eigenwerte bestimmen auch die Eigenschaften von numerischen -Algorithmen, wie in den Abschnitten~\ref{buch:section:spektralradius} -und \ref{buch:section:numerisch} dargestellt wird. -Für viele Funktionen kann man auch den Wert $f(A)$ berechnen, unter -geeigneten Voraussetzungen an den Spektralradius. -Dies wird in Abschnitt~\ref{buch:section:spektraltheorie} beschrieben. +gezeigt werden, wie Matrizen in Normalform gebracht werden können. +Für viele Funktionen kann man auch den Wert $f(A)$ berechnen. +In Abschnitt~\ref{buch:section:analytische-funktionen-einer-matrix} wird +gezeigt, wie dies für analytische Funktionen und für Funktionen möglich +\index{analytische Funktion}% +ist, die durch Polynome approximiert werden. +Es zeigt sich, dass dazu geeigneten Voraussetzungen an den sogenannten +Spektralradius gestelltw erden müssen. +\index{Spektralradius}% +Es stellt sich heraus, dass man nicht für alle Matrizen $A$ eine +sinnvolle Definition von $f(A)$ für beliebige stetige Funktionen $f$ +erwarten kann. +Möglich ist dies nur für sogenannte normale Matrizen, wie in +der Spektraltheorie in +Abschnitt~\ref{buch:section:spektraltheorie} dargestellt wird. +\index{Spektraltheorie} \input{chapters/40-eigenwerte/grundlagen.tex} +\input{chapters/40-eigenwerte/eigenwerte.tex} \input{chapters/40-eigenwerte/normalformen.tex} \input{chapters/40-eigenwerte/spektralradius.tex} \input{chapters/40-eigenwerte/spektraltheorie.tex} diff --git a/buch/chapters/40-eigenwerte/eigenwerte.tex b/buch/chapters/40-eigenwerte/eigenwerte.tex new file mode 100644 index 0000000..563b58a --- /dev/null +++ b/buch/chapters/40-eigenwerte/eigenwerte.tex @@ -0,0 +1,593 @@ +% +% eigenwerte.tex +% +% Begriff des Eigenwertes und Eigenvektors +% +\section{Eigenwerte und Eigenvektoren +\label{buch:section:eigenwerte-und-eigenvektoren}} +In diesem Abschnitt betrachten wir Vektorräume $V=\Bbbk^n$ über einem +beliebigen Körper $\Bbbk$ und quadratische Matrizen +$A\in M_n(\Bbbk)$. +In den meisten Anwendungen wird $\Bbbk=\mathbb{R}$ sein. +Da aber in $\mathbb{R}$ nicht alle algebraischen Gleichungen lösbar sind, +ist es manchmal notwendig, den Vektorraum zu erweitern um zum Beispiel +auf dem Umweg über komplexe Zahlen +Eigenschaften der Matrix $A$ abzuleiten. + +\begin{definition} +\label{buch:eigenwerte:def:evew} +\label{buch:eigenwerte:def:spektrum} +Ein Vektor $v\in V$ heisst {\em Eigenvektor} von $A$ zum {\em Eigenwert} +\index{Eigenwert}% +\index{Eigenvekor}% +$\lambda\in\Bbbk$, wenn $v\ne 0$ und $Av=\lambda v$ gilt. +Die Menge +\[ +\operatorname{Sp}(A) += +\{\lambda\in\mathbb{C}\,|\, \text{$\lambda$ ist Eigenwert von $A$}\} +\] +heisst das {\em Spektrum} von $A$. +\index{Spektrum}% +\end{definition} + +Die Bedingung $v\ne 0$ dient dazu, pathologische Situationen auszuschliessen. +Für den Nullvektor gilt $A0=\lambda 0$ für jeden beliebigen Wert von +$\lambda\in\Bbbk$. +Würde man $v=0$ zulassen, wäre jede Zahl in $\Bbbk$ ein Eigenwert, +ein Eigenwert von $A$ wäre nichts besonderes. +Ausserdem wäre $0$ ein Eigenvektor zu jedem beliebigen Eigenwert. + +Eigenvektoren sind nicht eindeutig bestimmt, jedes von $0$ verschiedene +Vielfache von $v$ ist ebenfalls ein Eigenvektor. +Zu einem Eigenwert kann man also einen Eigenvektor mit +geeigneten Eigenschaften finden, zum Beispiel kann man für $\Bbbk = \mathbb{R}$ +Eigenvektoren auf Länge $1$ normieren. +Im Folgenden werden wir oft die abkürzend linear unabhängige Eigenvektoren +einfach als ``verschiedene'' Eigenvektoren bezeichnen. + +Wenn $v$ ein Eigenvektor von $A$ zum Eigenwert $\lambda$ ist, dann kann +man ihn mit zusätzlichen Vektoren $v_2,\dots,v_n$ zu einer Basis +$\mathcal{B}=\{v,v_2,\dots,v_n\}$ +von $V$ ergänzen. +Die Vektoren $v_k$ mit $k=2,\dots,n$ werden von $A$ natürlich auch +in den Vektorraum $V$ abgebildet, können also als Linearkombinationen +\[ +Av = a_{1k}v + a_{2k}v_2 + a_{3k}v_3 + \dots a_{nk}v_n +\] +dargestellt werden. +In der Basis $\mathcal{B}$ bekommt die Matrix $A$ daher die Form +\[ +A' += +\begin{pmatrix} +\lambda&a_{12}&a_{13}&\dots &a_{1n}\\ + 0 &a_{22}&a_{23}&\dots &a_{2n}\\ + 0 &a_{32}&a_{33}&\dots &a_{3n}\\ +\vdots &\vdots&\vdots&\ddots&\vdots\\ + 0 &a_{n2}&a_{n3}&\dots &a_{nn} +\end{pmatrix}. +\] +Bereits ein einzelner Eigenwert und ein zugehöriger Eigenvektor +ermöglichen uns also, die Matrix in eine etwas einfachere Form +zu bringen. + +\begin{definition} +Für $\lambda\in\Bbbk$ heisst +\[ +E_\lambda += +\{ v\;|\; Av=\lambda v\} +\] +der {\em Eigenraum} zum Eigenwert $\lambda$. +\index{Eigenraum}% +\end{definition} + +Der Eigenraum $E_\lambda$ ist ein Unterraum von $V$, denn wenn +$u,v\in E_\lambda$, dann ist +\[ +A(su+tv) += +sAu+tAv += +s\lambda u + t\lambda v += +\lambda(su+tv), +\] +also ist auch $su+tv\in E_\lambda$. +Der Spezialfall $E_\lambda = \{0\}=0$ bedeutet natürlich, dass $\lambda$ gar kein +Eigenwert ist. + +\begin{satz} +Wenn $\dim E_\lambda=n$ ist, dann ist $A=\lambda I$. +\end{satz} + +\begin{proof}[Beweis] +Da $V$ ein $n$-dimensionaler Vektoraum ist, ist $E_\lambda=V$. +Jeder Vektor $v\in V$ erfüllt also die Bedingung $Av=\lambda v$, +oder $A=\lambda I$. +\end{proof} + +Wenn man die Eigenräume von $A$ kennt, dann kann man auch die Eigenräume +von $A+\mu E$ berechnen. +Ein Vektor $v\in E_\lambda$ erfüllt +\[ +Av=\lambda v +\qquad\Rightarrow\qquad +(A+\mu)v = \lambda v + \mu v += +(\lambda+\mu)v, +\] +somit ist $v$ ein Eigenvektor von $A+\mu I$ zum Eigenwert $\lambda+\mu$. +Insbesondere können wir statt die Eigenvektoren von $A$ zum Eigenwert $\lambda$ +zu studieren, auch die Eigenvektoren zum Eigenwert $0$ von $A-\lambda I$ +untersuchen. + +% +% Invariante Räume +% +\subsection{Verallgemeinerte Eigenräume +\label{buch:subsection:verallgemeinerte-eigenraeume}} +Wenn $\lambda$ ein Eigenwert der Matrix $A$ ist, dann ist +ist $A-\lambda I$ injektiv und $\ker(A-\lambda I)\ne 0$. +Man kann daher die invarianten Unterräume $\mathcal{K}(A-\lambda I)$ +und $\mathcal{J}(A-\lambda I)$ bilden. + +\begin{beispiel} +Wir untersuchen die Matrix +\[ +A += +\begin{pmatrix} +1&1&-1&0\\ +0&3&-1&1\\ +0&2& 0&1\\ +0&0& 0&2 +\end{pmatrix} +\] +Man kann zeigen, dass $\lambda=1$ ein Eigenwert ist. +Wir suchen die Zerlegung des Vektorraums $\mathbb{R}^4$ in invariante +Unterräume $\mathcal{K}(A-I)$ und $\mathcal{J}(A-I)$. +Die Matrix $B=A-I$ ist +\[ +B += +\begin{pmatrix} +0&1&-1&0\\ +0&2&-1&1\\ +0&2&-1&1\\ +0&0& 0&2 +\end{pmatrix} +\] +und wir berechnen davon die vierte Potenz +\[ +D=B^4=(A-E)^4 += +\begin{pmatrix} +0&0& 0&0\\ +0&2&-1&4\\ +0&2&-1&4\\ +0&0& 0&1 +\end{pmatrix}. +\] +Daraus kann man ablesen, dass das Bild $\operatorname{im}D$ +von $D$ die Basis +\[ +b_1 += +\begin{pmatrix} +0\\0\\0\\1 +\end{pmatrix} +, \qquad +b_2 += +\begin{pmatrix} +0\\1\\1\\0 +\end{pmatrix} +\] +hat. +Für den Kern von $D$ können wir zum Beispiel die Basisvektoren +\[ +b_3 += +\begin{pmatrix} +0\\1\\2\\0 +\end{pmatrix} +,\qquad +b_4 += +\begin{pmatrix} +1\\0\\0\\0 +\end{pmatrix} +\] +verwenden. + +Als erstes überprüfen wir, ob diese Basisvektoren tatsächlich invariante +Unterräume sind. +Für $\mathcal{J}(A-I) = \langle b_1,b_2\rangle$ +berechnen wir +\begin{align*} +(A-I)b_1 +&= +\begin{pmatrix} 0\\4\\4\\1 \end{pmatrix} += +4b_2+b_1, +\\ +(A-I)b_2 +&= +\begin{pmatrix} 0\\1\\1\\0 \end{pmatrix} += +b_2. +\end{align*} +Dies beweist, dass $\mathcal{J}(A-I)$ invariant ist. +In dieser Basis hat die von $A-I$ beschriebene lineare Abbildung +auf $\mathcal{J}(A-I)$ die Matrix +\[ +A_{\mathcal{J}(A-I)} += +\begin{pmatrix} +1&4\\ +0&1 +\end{pmatrix}. +\] + +Für den Kern $\mathcal{K}(A-I)$ findet man analog +\[ +\left. +\begin{aligned} +Ab_3 +&= +-b_4 +\\ +Ab_4 +&=0 +\end{aligned} +\quad\right\} +\qquad\Rightarrow\qquad +A_{\mathcal{K}(A-I)} += +\begin{pmatrix} +0&-1\\ +0& 0 +\end{pmatrix}. +\] +In der Basis $\mathcal{B}=\{b_1,b_2,b_3,b_4\}$ hat $A$ die Matrix +in Blockform +\[ +A' += +\left( +\begin{array}{cc|cr} +2&4& & \\ +0&2& & \\ +\hline + & &1&-1\\ + & &0& 1 +\end{array}\right), +\] +die Blöcke gehören zu den invarianten Unterräumen $\mathcal{K}(A-I)$ +und $\mathcal{K}(A-I)$. +Die aus $A-E$ gewonnen invarianten Unterräume sind offenbar auch invariante +Unterräume für $A$. +\end{beispiel} + +\begin{definition} +Ist $A$ eine Matrix mit Eigenwert $\lambda$, dann heisst der invariante +Unterraum +\[ +\mathcal{E}_{\lambda}(A) += +\mathcal{K}(A-\lambda I) +\] +der {\em verallgemeinerte Eigenraum} von $A$. +\index{verallgemeinerter Eigenraum}% +\index{Eigenraum, verallgemeinerter}% +\end{definition} + +Es ist klar, dass +$E_\lambda(A)=\ker (A-\lambda I)\subset\mathcal{E}_{\lambda}(A)$. + +\subsection{Zerlegung in invariante Unterräume +\label{buch:subsection:zerlegung-in-invariante-unterraeume}} +Wenn $\lambda$ kein Eigenwert von $A$ ist, dann ist $A-\lambda I$ +injektiv und damit $\ker(A-\lambda I)=0$. +Es folgt, dass $\mathcal{K}^i(A-\lambda I)=0$ und daher auch +$\mathcal{J}^i(A-\lambda I)=V$. +Die Zerlegung in invariante Unterräume $\mathcal{J}(A-\lambda I)$ und +$\mathcal{E}_\lambda(A)=\mathcal{K}(A-\lambda I)$ liefert in diesem Falle also nichts Neues. + +Für einen Eigenwert $\lambda_1$ von $A$ dagegen erhalten wir die Zerlegung +\[ +V += +\mathcal{E}_{\lambda_1}(A) +\oplus +\underbrace{\mathcal{J}(A-\lambda_1 I)}_{\displaystyle =V_2}, +\] +wobei $\mathcal{E}_{\lambda_1}(A)\ne 0$ ist. +Die Matrix $A-\lambda_1 I$ eingeschränkt auf $\mathcal{E}_{\lambda_1}(A)$ ist +nilpotent. +Man kann sagen, auf dem Unterraum $\mathcal{E}_{\lambda_i}(A)$ hat +$A$ die Form $\lambda_1 I + N$, wobei $N$ nilpotent ist. + +Die Zerlegung in invariante Unterräume ist zwar mit Hilfe von $A-\lambda_1I$ +gewonnen worden, ist aber natürlich auch eine Zerlegung in invariante +Unterräume für $A$. +Wir können daher das Problem auf $V_2$ einschränken und nach einem weiteren +Eigenwert $\lambda_2$ von $A$ in $V_2$ suchen. +Dieser neue Eigenwert liefert eine Zerlegung von $V_2$ +in invariante Unterräume. +Indem wir so weiterarbeiten, bis wir den ganzen Raum ausgeschöpft haben, +können wir eine Zerlegung des ganzen Raumes $V$ finden, so dass $A$ auf +jedem einzelnen Summanden die sehr einfach Form +``$\lambda I + \text{nilpotent}$'' hat: + +\begin{satz} +\label{buch:eigenwerte:satz:zerlegung-in-eigenraeume} +Sei $V$ ein $\Bbbk$-Vektorraum und $f$ eine lineare Abbildung mit Matrix +$A$ derart, dass alle Eigenwerte $\lambda_1,\dots,\lambda_l$ von $A$ +in $\Bbbk$ sind. +Dann gibt es eine Zerlegung von $V$ in verallgemeinerte Eigenräume +\[ +V += +\mathcal{E}_{\lambda_1}(A) +\oplus +\mathcal{E}_{\lambda_2}(A) +\oplus +\dots +\oplus +\mathcal{E}_{\lambda_l}(A). +\] +Die Einschränkung von $A-\lambda_{i}I$ auf den Eigenraum +$\mathcal{E}_{\lambda_i}(A)$ ist nilpotent. +\end{satz} + +\subsection{Das charakteristische Polynom +\label{buch:subsection:das-charakteristische-polynom}} +Ein Eigenvektor von $A$ erfüllt $Av=\lambda v$ oder gleichbedeutend +$(A-\lambda I)v=0$, er ist also eine nichttriviale Lösung des homogenen +Gleichungssystems mit Koeffizientenmatrix $A-\lambda I$. +Ein Eigenwert ist also ein Skalar derart, dass $A-\lambda I$ +singulär ist. +Ob eine Matrix singulär ist, kann mit der Determinante festgestellt +werden. +Die Eigenwerte einer Matrix $A$ sind daher die Nullstellen +von $\det(A-\lambda I)$. + +\begin{definition} +Das {\em charakteristische Polynom} +\[ +\chi_A(x) += +\det (A-x I) += +\left| +\begin{matrix} +a_{11}-x & a_{12} & \dots & a_{1n} \\ +a_{21} & a_{22}-x & \dots & a_{2n} \\ +\vdots &\vdots &\ddots & \vdots \\ +a_{n1} & a_{n2} &\dots & a_{nn}-x +\end{matrix} +\right|. +\] +der Matrix $A$ ist ein Polynom vom Grad $n$ mit Koeffizienten in $\Bbbk$. +\index{charakteristisches Polynom}% +\index{Polynome, charakteristisches}% +\end{definition} + +Findet man eine Nullstelle $\lambda\in\Bbbk$ von $\chi_A(x)$, +dann ist die Matrix $A-\lambda I\in M_n(\Bbbk)$ und mit dem Gauss-Algorithmus +kann man auch mindestens einen Vektor $v\in \Bbbk^n$ finden, +der $Av=\lambda v$ erfüllt. +Eine Dreiecksmatrix der Form +\[ +A=\begin{pmatrix} +\lambda& * & * & * &\dots &*\\ + 0 &\lambda& * & * &\dots &*\\ + 0 & 0 &\lambda& * &\dots &*\\ + 0 & 0 & 0 &\lambda&\dots &*\\ +\vdots &\vdots &\vdots & &\ddots&\vdots\\ + 0 & 0 & 0 & 0 &\dots &\lambda +\end{pmatrix} +\] +hat +\[ +\chi_A(x) += +\left| +\begin{matrix} +\lambda-x & * & * & & * & * \\ + & \lambda-x & * & & * & * \\ + & & \lambda-x & & * & * \\ + & & &\ddots& * & * \\ + & & & &\lambda-x& * \\ + & & & & &\lambda-x +\end{matrix} +\right| += +(\lambda-x)^n += +(-1)^n (x-\lambda)^n +\] +als charakteristisches Polynom, welches $\lambda$ als einzige +Nullstelle hat. +Wenn die Einträge oberhalb der Diagonalen nicht alle 0 sind, +dann hat der Eigenraum der Matrix Dimension, die keiner ist als +$n$. +Man kann also im Allgemeinen für jede Nullstelle des charakteristischen +Polynoms nicht mehr als einen Eigenvektor (d.~h.~einen eindimensionalen +Eigenraum) erwarten. + +Wenn das charakteristische Polynom von $A$ keine Nullstellen in $\Bbbk$ hat, +dann kann es auch keine Eigenvektoren in $\Bbbk^n$ geben. +Gäbe es nämlich einen solchen Vektor, dann müsste eine der Komponenten +des Vektors von $0$ verschieden sein. +Wir nehmen an, dass es die Komponente in Zeile $k$ ist. +Die Komponente $v_k$ kann man auf zwei Arten berechnen, einmal als +die $k$-Komponenten von $Av$ und einmal als $k$-Komponente von $\lambda v$: +\[ +a_{k1}v_1+\dots+a_{kn}v_n = \lambda v_k. +\] +Da $v_k\ne 0$ kann man nach $\lambda$ auflösen und erhält +\[ +\lambda = \frac{a_{k1}v_1+\dots + a_{kn}v_n}{v_k}. +\] +Alle Terme auf der rechten Seite sind in $\Bbbk$ und werden nur mit +Körperoperationen in $\Bbbk$ verknüpft, also muss auch $\lambda\in\Bbbk$ +sein, im Widerspruch zur Annahme. + +Durch Hinzufügen von geeigneten Elementen können wir immer zu einem +Körper $\Bbbk'$ übergehen, in dem das charakteristische Polynom +in Linearfaktoren zerfällt. +\index{Linearfaktor}% +Für reelle Matrizen kann man zum Beispiel zu $\mathbb{C}$ übergehen, +da ein reelles Polynom alle Nullstellen in $\mathbb{C}$ hat. +In diesem Körper $\Bbbk'$ kann man jetzt das homogene lineare Gleichungssystem +mit Koeffizientenmatrix $A-\lambda I$ lösen und damit mindestens +einen Eigenvektor $v$ für jeden Eigenwert finden. +Die Komponenten von $v$ liegen in $\Bbbk'$, und mindestens eine davon kann +nicht in $\Bbbk$ liegen. +Das bedeutet aber nicht, dass man diese Vektoren nicht für theoretische +Überlegungen über von $\Bbbk'$ unabhängige Eigenschaften der Matrix $A$ machen. +Das folgende Beispiel soll diese Idee illustrieren. + +\begin{beispiel} +Wir arbeiten in diesem Beispiel über dem Körper $\Bbbk=\mathbb{Q}$. +Die Matrix +\[ +A=\begin{pmatrix} +-4&7\\ +-2&4 +\end{pmatrix} +\in +M_2(\mathbb{Q}) +\] +hat das charakteristische Polynom +\[ +\chi_A(x) += +\left| +\begin{matrix} +-4-x&7\\-2&4-x +\end{matrix} +\right| += +(-4-x)(4-x)-7\cdot(-2) += +-16+x^2+14 += +x^2-2. +\] +Die Nullstellen sind $\pm\sqrt{2}$ und damit nicht in $\mathbb{Q}$. +Wir gehen daher über zum Körper $\mathbb{Q}(\!\sqrt{2})$, in dem +sich zwei Nullstellen $\lambda=\pm\sqrt{2}$ finden lassen. +Zu jedem Eigenwert lässt sich auch ein Eigenvektor +$v_{\pm\sqrt{2}}\in \mathbb{Q}(\!\sqrt{2})^2$, und unter Verwendung dieser +Basis bekommt die Matrix $A'=TAT^{-1}$ Diagonalform. +Die Transformationsmatrix $T$ enthält Matrixelemente aus +$\mathbb{Q}(\!\sqrt{2})$, die nicht in $\mathbb{Q}$ liegen. +Die Matrix $A$ lässt sich also über dem Körper $\mathbb{Q}(\!\sqrt{2})$ +diagonalisieren, nicht aber über dem Körper $\mathbb{Q}$. + +Da $A'$ Diagonalform hat mit $\pm\sqrt{2}$ auf der Diagonalen, folgt +$A^{\prime 2} = 2I$, die Matrix $A'$ erfüllt also die Gleichung +\begin{equation} +A^{\prime 2}-I= \chi_{A}(A) = 0. +\label{buch:grundlagen:eqn:cayley-hamilton-beispiel} +\end{equation} +Die Gleichung~\ref{buch:grundlagen:eqn:cayley-hamilton-beispiel} +wurde zwar in $\mathbb{Q}(\!\sqrt{2})$ hergeleitet, aber in ihr kommen +keine Koeffizienten aus $\mathbb{Q}(\!\sqrt{2})$ vor, die man nicht auch +in $\mathbb{Q}$ berechnen könnte. +Sie gilt daher ganz allgemein, also $A^2-I=0$. +Dies is ein Spezialfall des Satzes von Cayley-Hamilton +\index{Cayley-Hamilton, Satz von}% +\index{Satz von Cayley-Hamilton}% +(Satz~\ref{buch:normalformen:satz:cayley-hamilton}) +welcher besagt, dass jede Matrix $A$ eine Nullstelle ihres +charakteristischen Polynoms ist: $\chi_A(A)=0$. +\end{beispiel} + +\begin{beispiel} +Die Matrix +\[ +A=\begin{pmatrix} +32&-41\\ +24&-32 +\end{pmatrix} +\in +M_2(\mathbb{R}) +\] +über dem Körper $\Bbbk = \mathbb{R}$ +hat das charakteristische Polynom +\[ +\det(A-xI) += +\left| +\begin{matrix} +32-x&-41 \\ +25 &-32-x +\end{matrix} +\right| += +(32-x)(-32-x)-25\cdot(-41) += +x^2-32^2 + 1025 += +x^2+1. +\] +Die charakteristische Gleichung $\chi_A(x)=0$ hat in $\mathbb{R}$ +keine Lösungen, daher gehen wir zum Körper $\Bbbk'=\mathbb{C}$ über, +in dem dank dem Fundamentalsatz \ref{buch:zahlen:satz:fundamentalsatz} +der Algebra alle Nullstellen zu finden sind, sie sind $\pm i$. +In $\mathbb C$ lassen sich dann auch Eigenvektoren finden, man muss dazu die +folgenden homogenen linearen Gleichungssyteme in Tableauform lösen: +\begin{align*} +\begin{tabular}{|>{$}c<{$}>{$}c<{$}|} +\hline +32-i&-41\\ +25 &-32-i\\ +\hline +\end{tabular} +& +\rightarrow +\begin{tabular}{|>{$}c<{$}>{$}c<{$}|} +\hline +1 & t\\ +0 & 0 \\ +\hline +\end{tabular} +& +\begin{tabular}{|>{$}c<{$}>{$}c<{$}|} +\hline +32+i&-41\\ +25 &-32+i\\ +\hline +\end{tabular} +& +\rightarrow +\begin{tabular}{|>{$}c<{$}>{$}c<{$}|} +\hline +1 & \overline{t}\\ +0 & 0 \\ +\hline +\end{tabular}, +\intertext{wobei wir $t=-41/(32-i) =-41(32+i)/1025= -1.28 -0.04i = (64-1)/50$ +abgekürzt haben. +Die zugehörigen Eigenvektoren sind} +v_i&=\begin{pmatrix}t\\-1\end{pmatrix} +& +v_{-i}&=\begin{pmatrix}\overline{t}\\-1\end{pmatrix}. +\end{align*} +Mit den Vektoren $v_i$ und $v_{-i}$ als Basis kann die Matrix $A$ als +komplexe Matrix, also mit komplexem $T$ in die komplexe Diagonalmatrix +$A'=\operatorname{diag}(i,-i)$ transformiert werden. +Wieder kann man sofort ablesen, dass $A^{\prime2}+I=0$, und wieder kann +man schliessen, dass für die relle Matrix $A$ ebenfalls $\chi_A(A)=0$ +gelten muss. +\end{beispiel} + + + + diff --git a/buch/chapters/40-eigenwerte/grundlagen.tex b/buch/chapters/40-eigenwerte/grundlagen.tex index 69618a9..91294f1 100644 --- a/buch/chapters/40-eigenwerte/grundlagen.tex +++ b/buch/chapters/40-eigenwerte/grundlagen.tex @@ -3,18 +3,23 @@ % % (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule % -\section{Grundlagen +\section{Matrixpotenzen \label{buch:section:grundlagen}} -\rhead{Grundlagen} -Die Potenzen $A^k$ sind besonders einfach zu berechnen, wenn die Matrix -Diagonalform hat, wenn also $A=\operatorname{diag}(\lambda_1,\dots,\lambda_n)$ -ist. -In diesem Fall ist $Ae_k=\lambda_k e_k$ für jeden Standardbasisvektor $e_k$. -Statt sich auf Diagonalmatrizen zu beschränken könnten man also auch -Vektoren $v$ suchen, für die gilt $Av=\lambda v$, die also von $A$ nur -gestreckt werden. -Gelingt es, eine Basis aus solchen sogenanten {\em Eigenvektoren} zu finden, -dann kann man die Matrix $A$ durch Basiswechsel in diese Form bringen. +\rhead{Matrixpotenzen} +Die Zerlegung einer Matrix in einfachere Blöcke ist gleichbedeutend +damit, Basen für Unterräume zu finden, die sich unter der Abbildung +nicht ändern. +Im Allgemeinen wird der ganze Raum $\Bbbk^n$ kein solcher invarianter +Unterraum sein. +In diesem Abschnitt soll gezeigt werden, wie man durch Iteration +der Abbildung, also durch Betrachtung von Matrixpotenzen, immer zu +\index{Matrixpotenz}% +einer Zerlegung in invariante Unterräume kommen kann. +\index{invarianter Unterraum}% +\index{Unterraum, invarianter}% +Daraus ergibt sich dann in Abschnitt~\ref{buch:subsection:nilpotente-matrizen} +bereits eine Normalform für nilpotente Matrizen. +\index{nilpotent}% \begin{figure} \centering @@ -53,8 +58,7 @@ ist. \label{buch:subsection:kern-und-bild}} In diesem Abschnitt ist $A\in M_n(\Bbbk)$, $A$ beschreibt eine lineare Abbildung $f\colon\Bbbk^n\to \Bbbk^n$. -In diesem Abschnitt sollen Kern und Bild der Potenzen $A^k$ untersucht -werden. +Im Folgenden sollen Kern und Bild der Potenzen $A^k$ untersucht werden. \begin{definition} Wir bezeichnen Kern und Bild der iterierten Abbildung $A^k$ mit \[ @@ -66,6 +70,8 @@ Wir bezeichnen Kern und Bild der iterierten Abbildung $A^k$ mit = \operatorname{im} A^k. \] +\index{KkA@$\mathcal{K}^k(A)$}% +\index{JkA@$\mathcal{J}^k(A)$}% \end{definition} Durch Iteration wird das Bild immer kleiner. @@ -106,7 +112,7 @@ folgt \{0\}. \label{buch:eigenwerte:eqn:Jkchain} \end{equation} -Für die Kerne gilt etwas Ähnliches. +Für die Kerne gilt etwas Ähnliches, sie werden immer grösser. Ein Vektor $x\in \mathcal{K}^k(A)$ erfüllt $A^kx=0$. Dann erfüllt er aber erst recht auch \[ @@ -181,7 +187,7 @@ bestimmten $\mathcal{J}^{i+2}(A)$. $\mathcal{J}^{i+2}(A)$ besteht aus all jenen Vektoren, die als $Ax$ mit $x\in\mathcal{J}^{i+1}(A)=\mathcal{J}^i(A)$ erhalten werden können. -Es gibt also insbesondere ein $y\in\Bbbk^i$ mit $x=A^iy$. +Es gibt also insbesondere ein $y\in\Bbbk^n$ mit $x=A^iy$. Dann ist $Ax=A^{i+1}y\in\mathcal{J}^{i+1}(A)$. Insbesondere besteht $\mathcal{J}^{i+2}(A)$ genau aus den Vektoren von $\mathcal{J}^{i+1}(A)$. @@ -238,11 +244,13 @@ $\mathcal{K}^i(A)$ für $i\ge k$ und die identischen Unterräume $\mathcal{J}^i(A)$ für $i\ge k$ werden mit \[ \begin{aligned} -\mathcal{K} &= \mathcal{K}^i(A)&&\forall i\ge k \qquad\text{und} +\mathcal{K}(A) &= \mathcal{K}^i(A)&&\forall i\ge k \qquad\text{und} \\ -\mathcal{J} &= \mathcal{J}^i(A)&&\forall i\ge k +\mathcal{J}(A) &= \mathcal{J}^i(A)&&\forall i\ge k \end{aligned} \] +\index{KA@$\mathcal{K}(A)$} +\index{JA@$\mathcal{J}(A)$} bezeichnet. \end{definition} @@ -259,6 +267,7 @@ Abbildungen zwischen ``kleineren'' Räumen zu zerlegen, wo sie leichter analysiert werden können. \begin{definition} +\label{buch:eigenwerte:def:invarianter-unterraum} Sei $f\colon V\to V$ eine lineare Abbildung eines Vektorraums in sich selbst. Ein Unterraum $U\subset V$ heisst {\em invarianter Unterraum}, @@ -267,6 +276,8 @@ wenn f(U) = \{ f(x)\;|\; x\in U\} \subset U \] gilt. +\index{invarianter Unterraum}% +\index{Unterraum, invarianter}% \end{definition} Der Kern $\ker A$ einer linearen Abbildung ist trivialerweise ein @@ -337,11 +348,11 @@ A' \left( \begin{array}{ccc|ccc} &&&&&\\ -&A_{\mathcal{K}'}&&&&\\ +&A'_{\mathcal{K}}&&&&\\ &&&&&\\ \hline &&&&&\\ -&&&&A_{\mathcal{J}'}&\\ +&&&&A'_{\mathcal{J}}&\\ &&&&&\\ \end{array} \right) @@ -361,21 +372,24 @@ und $\mathcal{K}(A)$ reduziert die lineare Abbildung auf zwei Abbildungen mit speziellen Eigenschaften. Es wurde bereits in Satz~\label{buch:eigenwerte:satz:fJinj} gezeigt, dass die Einschränkung auf $\mathcal{J}(A)$ injektiv ist. -Die Einschränkung auf $\mathcal{K}(A)$ bildet nach Definition alle +Die Einschränkung auf $\mathcal{K}(A)$ bildet nach +Definition~\ref{buch:eigenwerte:def:KundJ} alle Vektoren nach $k$-facher Iteration auf $0$ ab, $A^k\mathcal{K}(A)=0$. Solche Abbildungen haben eine speziellen Namen. \begin{definition} \label{buch:eigenwerte:def:nilpotent} -Eine Matrix $A$ heisst nilpotent, wenn es eine Zahl $k$ gibt, so dass +Eine Matrix $A$ heisst {\em nilpotent}, wenn es eine Zahl $k$ gibt, so dass $A^k=0$. +\index{nilpotent}% \end{definition} \begin{beispiel} Obere (oder untere) Dreiecksmatrizen mit Nullen auf der Diagonalen sind nilpotent. +\index{Dreicksmatrix}% Wir rechnen dies wie folgt nach. -Die Matrix $A$ mit Einträgen $a_{ij}$ +Die Matrix $A$ mit Einträgen $a_{i\!j}$ \[ A=\begin{pmatrix} 0 &a_{12}&a_{13}&\dots &a_{1,n-1}&a_{1n} \\ @@ -386,35 +400,35 @@ A=\begin{pmatrix} 0 & 0 & 0 &\dots & 0 & 0 \end{pmatrix} \] -erfüllt $a_{ij}=0$ für $i\ge j$. +erfüllt $a_{i\!j}=0$ für $i\ge j$. Wir zeigen jetzt, dass sich bei der Multiplikation die nicht verschwinden Elemente bei der Multiplikation noch rechts oben verschieben. Dazu multiplizieren wir zwei Matrizen $B$ und $C$ mit -$b_{ij}=0$ für $i+k>j$ und $c_{ij}=0$ für $i+l>j$. +$b_{i\!j}=0$ für $i+k>j$ und $c_{i\!j}=0$ für $i+l>j$. In der folgenden graphischen Darstellung der Matrizen sind die Bereiche, wo die Matrixelemente verschwinden, weiss. \begin{center} \includegraphics{chapters/40-eigenwerte/images/nilpotent.pdf} \end{center} -Bei der Berechnung des Elementes $d_{ij}$ wird die Zeile $i$ von $B$ +Bei der Berechnung des Elementes $d_{i\!j}$ wird die Zeile $i$ von $B$ mit der Spalte $j$ von $C$ multipliziert. Die blau eingefärbten Elemente in dieser Zeile und Spalte sind $0$. Aus der Darstellung ist abzulesen, dass das Produkt verschwindet, -die roten, von $0$ verschiedenen Elemente von den blauen Elementen -annihiliert werden. +wenn die roten, von $0$ verschiedenen Elemente von den blauen +Elementen annihiliert werden. Dies passiert immer, wenn $i+k>j-l$ ist, oder $i+(k+l)> j$. Wir wenden diese Beobachtung jetzt auf die Potenzen $A^s$ an. -Für die Matrixelemente von $A^s$ schreiben wir $a^s_{ij}$. -Wir behaupten, dass die Matrixelemente $A^s$ die Bedingung -$a_{ij}^s=0$ für $i+s>j$ erfüllen. +Für die Matrixelemente von $A^s$ schreiben wir $a^s_{i\!j}$. +Wir behaupten, dass die Matrixelemente von $A^s$ die Bedingung +$a_{i\!j}^s=0$ für $i+s>j$ erfüllen. Dies ist für $s=1$ nach Voraussetzung richtig, dies ist die -Induktionsvoraussetzung. -Nehmen wir jetzt an, dass $a_{ij}^s=0$ für $i+s>j$, dann folgt -aus obiger Rechnung, dass $a_{ij}^{s+1}=0$ für $i+s+1>j$, so +Induktionsverankerung. +Nehmen wir jetzt an, dass $a_{i\!j}^s=0$ für $i+s>j$, dann folgt +aus obiger Rechnung, dass $a_{i\!j}^{s+1}=0$ für $i+s+1>j$, so dass die Bedingung auch für $A^s$ gilt (Induktionsschritt). -Mit vollständiger Induktion folgt, dass $a_{ij}^s=0$ für $i+s>j$. +Mit vollständiger Induktion folgt, dass $a_{i\!j}^s=0$ für $i+s>j$. Insbesondere ist $A^n=0$, die Matrix $A$ ist nilpotent. \end{beispiel} @@ -468,6 +482,9 @@ Wir bezeichnen mit $N_n$ eine Matrix der Form Mit etwas mehr Sorgfalt kann man auch die Bedingung, dass $A^{n-1}\ne 0$ sein muss, im Satz~\ref{buch:eigenwerte:satz:nnilpotent} loswerden. +Sie bedeutet nämlich dass sich die Matrix in mehrere kleinere Blöcke +der Form~\eqref{buch:eigenwerte:eqn:nnilpotent} zerlegen lässt, wie +der folgende Satz zeigt. \begin{satz} \label{buch:eigenwerte:satz:allgnilpotent} @@ -492,11 +509,18 @@ A' & & &\multicolumn{1}{|c|}{\raisebox{0pt}[17pt][12pt]{\phantom{x}$N_{k_l}$}\phantom{x}}\\ \cline{4-4} \end{array} -\right) +\right). \label{buch:eigenwerte:eqn:allgnilpotent} \end{equation} \end{satz} +Im Abschnitt~\ref{buch:subsection:normalform-einer-nilpotenten-matrix} +wird ein Algorithmus zur Bestimmung einer geeigneten Basis für die +Normalform~\eqref{buch:eigenwerte:eqn:allgnilpotent} in etwas mehr +Detail dargestellt. + +Aus Satz lässt sich für eine beliebige lineare Abbildung auch bereits eine +partielle Normalform finden. Die Einschränkung von $f$ auf den invarianten Unterraum $\mathcal{K}(A)$ ist nilpotent. Die Zerlegung $V=\mathcal{J}(A)\oplus \mathcal{K}(A)$ führt also zu einer @@ -508,7 +532,6 @@ $\mathcal{K}(A)$ eine Basis so wählen, dass die Matrix die Blockform \eqref{buch:eigenwerte:eqn:allgnilpotent} erhält. - \begin{figure} \centering \includegraphics[width=\textwidth]{chapters/40-eigenwerte/images/jknilp.pdf} @@ -602,7 +625,7 @@ ist ein Block der Form $N_k$. Für $0\le k\le l-1$ sind die Vektoren $A^kb_i$, solange sie von $0$ verschieden sind, alle nach Konstruktion linear unabhängig, sie bilden eine Basis -von $\mathcal{K}^l(A)=\mathbb{R}^n$. +von $\mathcal{K}^l(A)=\Bbbk^n$. \begin{beispiel} Die Basis für die Zerlegung der Matrix @@ -618,7 +641,7 @@ A in Blockform soll nach der oben beschriebenen Methode ermittelt werden. Zunächst kann man nachrechnen, dass $A^2=0$ ist. Der Kern von $A$ ist der Lösungsraum der Gleichung $Ax=0$, da alle Zeilen -Vielfache der ersten Zeile sind, recht es zu verlangen, dass die +Vielfache der ersten Zeile sind, reicht es zu verlangen, dass die Komponenten $x_i$ der Lösung die Gleichung \[ 3x_1+x_2-2x_3=0 @@ -631,9 +654,10 @@ Wir verwenden daher die beiden Vektoren \[ b_3=e_1=\begin{pmatrix} 1\\0\\0 \end{pmatrix} ,\qquad -b_2=Ab_3=\begin{pmatrix*}[r] 3\\-21\\-6 \end{pmatrix*}, +b_2=Ab_3=\begin{pmatrix*}[r] 3\\-21\\-6 \end{pmatrix*}. \] -in dieser Basis hat $A$ die Matrix $N_2$. +In einem Unterraum mit +dieser Basis hat $A$ die Matrix $N_2$. Jetzt muss noch ein Basisvektor $b_1$ gefunden werden, der in $\ker A=\mathbb{L}$ liegt und so, dass $b_1$ und $b_2$ linear unabhängig sind. @@ -641,7 +665,7 @@ Die zweite Bedingung kann leicht dadurch sichergestellt werden, dass man die erste Komponente von $b_1$ als $0$ wählt. Eine mögliche Lösung ist dann \[ -b_1=\begin{pmatrix}0\\2\\1\end{pmatrix} +b_1=\begin{pmatrix}0\\2\\1\end{pmatrix}. \] Die Matrix \[ @@ -668,557 +692,17 @@ B^{-1}\begin{pmatrix*}[r] 0&0& -6 \end{pmatrix*} = -\begin{pmatrix} -0&0&0\\ -0&0&1\\ -0&0&0 -\end{pmatrix} -= -N_3. -\qedhere -\] -\end{beispiel} - -% -% Begriff des Eigenwertes und Eigenvektors -% -\subsection{Eigenwerte und Eigenvektoren -\label{buch:subsection:eigenwerte-und-eigenvektoren}} -In diesem Abschnitt betrachten wir Vektorräume $V=\Bbbk^n$ über einem -beliebigen Körper $\Bbbk$ und quadratische Matrizen -$A\in M_n(\Bbbk)$. -In den meisten Anwendungen wird $\Bbbk=\mathbb{R}$ sein. -Da aber in $\mathbb{R}$ nicht alle algebraischen Gleichungen lösbar sind, -ist es manchmal notwendig, den Vektorraum zu erweitern um zum Beispiel -Eigenschaften der Matrix $A$ abzuleiten. - -\begin{definition} -Ein Vektor $v\in V$ heisst {\em Eigenvektor} von $A$ zum Eigenwert -$\lambda\in\Bbbk$, wenn $v\ne 0$ und $Av=\lambda v$ gilt. -\end{definition} - -Die Bedingung $v\ne 0$ dient dazu, pathologische Situationen auszuschliessen. -Für den Nullvektor gilt $A0=\lambda 0$ für jeden beliebigen Wert von -$\lambda\in\Bbbk$. -Würde man $v=0$ zulassen, wäre jede Zahl in $\Bbbk$ ein Eigenwert, -ein Eigenwert von $A$ wäre nichts besonderes. -Ausserdem wäre $0$ ein Eigenvektor zu jedem beliebigen Eigenwert. - -Eigenvektoren sind nicht eindeutig bestimmt, jedes von $0$ verschiedene -Vielfache von $v$ ist ebenfalls ein Eigenvektor. -Zu einem Eigenwert kann man also einen Eigenvektor jeweils mit -geeigneten Eigenschaften finden, zum Beispiel kann man für $\Bbbk = \mathbb{R}$ -Eigenvektoren auf Länge $1$ normieren. -Im Folgenden werden wir oft die abkürzend linear unabhängige Eigenvektoren -einfach als ``verschiedene'' Eigenvektoren bezeichnen. - -Wenn $v$ ein Eigenvektor von $A$ zum Eigenwert $\lambda$ ist, dann kann -man ihn mit zusätzlichen Vektoren $v_2,\dots,v_n$ zu einer Basis -$\mathcal{B}=\{v,v_2,\dots,v_n\}$ -von $V$ ergänzen. -Die Vektoren $v_k$ mit $k=2,\dots,n$ werden von $A$ natürlich auch -in den Vektorraum $V$ abgebildet, können also als Linearkombinationen -\[ -Av = a_{1k}v + a_{2k}v_2 + a_{3k}v_3 + \dots a_{nk}v_n -\] -dargestellt werden. -In der Basis $\mathcal{B}$ bekommt die Matrix $A$ daher die Form -\[ -A' -= -\begin{pmatrix} -\lambda&a_{12}&a_{13}&\dots &a_{1n}\\ - 0 &a_{22}&a_{23}&\dots &a_{2n}\\ - 0 &a_{32}&a_{33}&\dots &a_{3n}\\ -\vdots &\vdots&\vdots&\ddots&\vdots\\ - 0 &a_{n2}&a_{n3}&\dots &a_{nn} -\end{pmatrix}. -\] -Bereits ein einzelner Eigenwert und ein zugehöriger Eigenvektor -ermöglichen uns also, die Matrix in eine etwas einfachere Form -zu bringen. - -\begin{definition} -Für $\lambda\in\Bbbk$ heisst -\[ -E_\lambda -= -\{ v\;|\; Av=\lambda v\} -\] -der {\em Eigenraum} zum Eigenwert $\lambda$. -\index{Eigenraum}% -\end{definition} - -Der Eigenraum $E_\lambda$ ist ein Unterraum von $V$, denn wenn -$u,v\in E_\lambda$, dann ist -\[ -A(su+tv) -= -sAu+tAv -= -s\lambda u + t\lambda v -= -\lambda(su+tv), -\] -also ist auch $su+tv\in E_\lambda$. -Der Fall $E_\lambda = \{0\}=0$ bedeutet natürlich, dass $\lambda$ gar kein -Eigenwert ist. - -\begin{satz} -Wenn $\dim E_\lambda=n$, dann ist $A=\lambda E$. -\end{satz} - -\begin{proof}[Beweis] -Da $V$ ein $n$-dimensionaler Vektoraum ist, ist $E_\lambda=V$. -Jeder Vektor $v\in V$ erfüllt also die Bedingung $Av=\lambda v$, -oder $A=\lambda E$. -\end{proof} - -Wenn man die Eigenräume von $A$ kennt, dann kann man auch die Eigenräume -von $A+\mu E$ berechnen. -Ein Vektor $v\in E_\lambda$ erfüllt -\[ -Av=\lambda v -\qquad\Rightarrow\qquad -(A+\mu)v = \lambda v + \mu v -= -(\lambda+\mu)v, -\] -somit ist $v$ ein Eigenvektor von $A+\mu E$ zum Eigenwert $\lambda+\mu$. -Insbesondere können wir statt die Eigenvektoren von $A$ zum Eigenwert $\lambda$ -zu studieren, auch die Eigenvektoren zum Eigenwert $0$ von $A-\lambda E$ -untersuchen. - -% -% Invariante Räume -% -\subsection{Verallgemeinerte Eigenräume -\label{buch:subsection:verallgemeinerte-eigenraeume}} -Wenn $\lambda$ ein Eigenwert der Matrix $A$ ist, dann ist -ist $A-\lambda E$ injektiv und $\ker(A-\lambda E)\ne 0$. -Man kann daher die invarianten Unterräume $\mathcal{K}(A-\lambda E)$ -und $\mathcal{J}(A-\lambda E)$. - -\begin{beispiel} -Wir untersuchen die Matrix -\[ -A -= -\begin{pmatrix} -1&1&-1&0\\ -0&3&-1&1\\ -0&2& 0&1\\ -0&0& 0&2 -\end{pmatrix} -\] -Man kann zeigen, dass $\lambda=1$ ein Eigenwert ist. -Wir suchen die Zerlegung des Vektorraums $\mathbb{R}^4$ in invariante -Unterräume $\mathcal{K}(A-E)$ und $\mathcal{J}(A-E)$. -Die Matrix $B=A-E$ ist -\[ -B -= -\begin{pmatrix} -0&1&-1&0\\ -0&2&-1&1\\ -0&2&-1&1\\ -0&0& 0&2 -\end{pmatrix} -\] -und wir berechnen davon die Potenz -\[ -D=B^4=(A-E)^4 -= -\begin{pmatrix} -0&0& 0&0\\ -0&2&-1&4\\ -0&2&-1&4\\ -0&0& 0&1 -\end{pmatrix}. -\] -Daraus kann man ablesen, dass das Bild $\operatorname{im}D$ -von $D$ die Basis -\[ -b_1 -= -\begin{pmatrix} -0\\0\\0\\1 -\end{pmatrix} -, \qquad -b_2 -= -\begin{pmatrix} -0\\1\\1\\0 -\end{pmatrix} -\] -hat. -Für den Kern von $D$ können wir zum Beispiel die Basisvektoren -\[ -b_3 -= -\begin{pmatrix} -0\\1\\2\\0 -\end{pmatrix} -,\qquad -b_4 -= -\begin{pmatrix} -1\\0\\0\\0 -\end{pmatrix} -\] -verwenden. - -Als erstes überprüfen wir, ob diese Basisvektoren tatsächlich invariante -Unterräume sind. -Für $\mathcal{J}(A-E) = \langle b_1,b_2\rangle$ -berechnen wir -\begin{align*} -(A-E)b_1 -&= -\begin{pmatrix} 0\\4\\4\\1 \end{pmatrix} -= -4b_2+b_1, -\\ -(A-E)b_2 -&= -\begin{pmatrix} 0\\1\\1\\0 \end{pmatrix} -= -b_2. -\end{align*} -Dies beweist, dass $\mathcal{J}(A-E)$ invariant ist. -In dieser Basis hat die von $A-E$ beschriebene lineare Abbildung -auf $\mathcal{J}(A-E)$ die Matrix -\[ -A_{\mathcal{J}(A-E)} -= -\begin{pmatrix} -1&4\\ -0&1 -\end{pmatrix}. -\] - -Für den Kern $\mathcal{K}(A-E)$ findet man analog -\[ -\left. -\begin{aligned} -Ab_3 -&= --b_4 -\\ -Ab_4 -&=0 -\end{aligned} -\quad\right\} -\qquad\Rightarrow\qquad -A_{\mathcal{K}(A-E)} -= -\begin{pmatrix} -0&-1\\ -0& 0 -\end{pmatrix}. -\] -In der Basis $\mathcal{B}=\{b_1,b_2,b_3,b_4\}$ hat $A$ die Matrix -in Blockform -\[ -A' -= \left( -\begin{array}{cc|cr} -2&4& & \\ -0&2& & \\ +\begin{array}{c|cc} +0& & \\ \hline - & &1&-1\\ - & &0& 1 -\end{array}\right), -\] -die Blöcke gehören zu den invarianten Unterräumen $\mathcal{K}(A-E)$ -und $\mathcal{K}(A-E)$. -Die aus $A-E$ gewonnen invarianten Unterräume sind offenbar auch invariante -Unterräume für $A$. -\end{beispiel} - -\begin{definition} -Ist $A$ eine Matrix mit Eigenwert $\lambda$, dann heisst der invariante -Unterraum -\[ -\mathcal{E}_{\lambda}(A) -= -\mathcal{K}(A-\lambda E) -\] -der verallgemeinerte Eigenraum von $A$. -\end{definition} - -Es ist klar, dass -$E_\lambda(A)=\ker (A-\lambda E)\subset\mathcal{E}_{\lambda}(A)$. - -\subsection{Zerlegung in invariante Unterräume -\label{buch:subsection:zerlegung-in-invariante-unterraeume}} -Wenn $\lambda$ kein Eigenwert von $A$ ist, dann ist $A-\lambda E$ -injektiv und damit $\ker(A-\lambda E)=0$. -Es folgt, dass $\mathcal{K}^i(A-\lambda E)=0$ und daher auch -$\mathcal{J}^i(A-\lambda E)=V$. -Die Zerlegung in invariante Unterräume $\mathcal{J}(A-\lambda E)$ und -$\mathcal{K}(A-\lambda E)$ liefert in diesem Falle also nichts Neues. - -Für einen Eigenwert $\lambda_1$ von $A$ dagegen, erhalten wir die Zerlegung -\[ -V -= -\mathcal{E}_{\lambda_1}(A) -\oplus -\underbrace{\mathcal{J}(A-\lambda_1 E)}_{\displaystyle =V_2}, -\] -wobei $\mathcal{E}_{\lambda_1}(A)\ne 0$ ist. -Die Matrix $A-\lambda_1 E$ ist eingeschränkt auf $\mathcal{E}_{\lambda_1}(A)$ -nilpotent. -Die Zerlegung in invariante Unterräume ist zwar mit Hilfe von $A-\lambda_1E$ -gewonnen worden, ist aber natürlich auch eine Zerlegung in invariante -Unterräume für $A$. -Wir können daher das Problem auf $V_2$ einschränken und nach einem weiteren -Eigenwert $\lambda_2$ von $A$ in $V_2$ suchen, was wieder eine Zerlegung -in invariante Unterräume liefert. -Indem wir so weiterarbeiten, bis wir den ganzen Raum ausgeschöpft haben, -können wir eine Zerlegung des ganzen Raumes $V$ finden, so dass $A$ auf -jedem einzelnen Summanden eine sehr einfach Form hat: - -\begin{satz} -\label{buch:eigenwerte:satz:zerlegung-in-eigenraeume} -Sei $V$ ein $\Bbbk$-Vektorraum und $f$ eine lineare Abbildung mit Matrix -$A$ derart, dass alle Eigenwerte $\lambda_1,\dots,\lambda_l$ von $A$ -in $\Bbbk$ sind. -Dann gibt es eine Zerlegung von $V$ in verallgemeinerte Eigenräume -\[ -V -= -\mathcal{E}_{\lambda_1}(A) -\oplus -\mathcal{E}_{\lambda_2}(A) -\oplus -\dots -\oplus -\mathcal{E}_{\lambda_l}(A). -\] -Die Einschränkung von $A-\lambda_{i}E$ auf den Eigenraum -$\mathcal{E}_{\lambda_i}(A)$ ist nilpotent. -\end{satz} - -\subsection{Das charakteristische Polynom -\label{buch:subsection:das-charakteristische-polynom}} -Ein Eigenvektor von $A$ erfüllt $Av=\lambda v$ oder gleichbedeutend -$(A-\lambda E)v=0$, er ist also eine nichttriviale Lösung des homogenen -Gleichungssystems mit Koeffizientenmatrix $A-\lambda E$. -Ein Eigenwert ist also ein Skalar derart, dass $A-\lambda E$ -singulär ist. -Ob eine Matrix singulär ist, kann mit der Determinante festgestellt -werden. -Die Eigenwerte einer Matrix $A$ sind daher die Nullstellen -von $\det(A-\lambda E)$. - -\begin{definition} -Das {\em charakteristische Polynom} -\[ -\chi_A(x) -= -\det (A-x E) -= -\left| -\begin{matrix} -a_{11}-x & a_{12} & \dots & a_{1n} \\ -a_{21} & a_{22}-x & \dots & a_{2n} \\ -\vdots &\vdots &\ddots & \vdots \\ -a_{n1} & a_{n2} &\dots & a_{nn}-x -\end{matrix} -\right|. -\] -der Matrix $A$ ist ein Polynom vom Grad $n$ mit Koeffizienten in $\Bbbk$. -\end{definition} - -Findet man eine Nullstelle $\lambda\in\Bbbk$ von $\chi_A(x)$, -dann ist die Matrix $A-\lambda E\in M_n(\Bbbk)$ und mit dem Gauss-Algorithmus -kann man auch mindestens einen Vektor $v\in \Bbbk^n$ finden, -der $Av=\lambda v$ erfüllt. -Eine Matrix der Form wie in Satz~\ref{buch:eigenwerte:satz:jordanblock} -hat -\[ -\chi_A(x) -= -\left| -\begin{matrix} -\lambda-x & 1 & & & & \\ - & \lambda-x & 1 & & & \\ - & & \lambda-x & & & \\ - & & &\ddots& & \\ - & & & &\lambda-x& 1 \\ - & & & & &\lambda-x -\end{matrix} -\right| -= -(\lambda-x)^n -= -(-1)^n (x-\lambda)^n -\] -als charakteristisches Polynom, welches $\lambda$ als einzige -Nullstelle hat. -Der Eigenraum der Matrix ist aber nur eindimensional, man kann also -im Allgemeinen für jede Nullstelle des charakteristischen Polynoms -nicht mehr als einen Eigenvektor (d.~h.~einen eindimensionalen Eigenraum) -erwarten. - -Wenn das charakteristische Polynom von $A$ keine Nullstellen in $\Bbbk$ hat, -dann kann es auch keine Eigenvektoren in $\Bbbk^n$ geben. -Gäbe es nämlich einen solchen Vektor, dann müsste eine der Komponenten -des Vektors von $0$ verschieden sein, wir nehmen an, dass es die Komponente -in Zeile $k$ ist. -Die Komponente $v_k$ kann man auf zwei Arten berechnen, einmal als -die $k$-Komponenten von $Av$ und einmal als $k$-Komponente von $\lambda v$: -\[ -a_{k1}v_1+\dots+a_{kn}v_n = \lambda v_k. -\] -Da $v_k\ne 0$ kann man nach $\lambda$ auflösen und erhält -\[ -\lambda = \frac{a_{k1}v_1+\dots + a_{kn}v_n}{v_k}. -\] -Alle Terme auf der rechten Seite sind in $\Bbbk$ und werden nur mit -Körperoperationen in $\Bbbk$ verknüpft, also muss auch $\lambda\in\Bbbk$ -sein, im Widerspruch zur Annahme. - -Durch Hinzufügen von geeigneten Elementen können wir immer zu einem -Körper $\Bbbk'$ übergehen, in dem das charakteristische Polynom -in Linearfaktoren zerfällt. -In diesem Körper kann man jetzt das homogene lineare Gleichungssystem -mit Koeffizientenmatrix $A-\lambda E$ lösen und damit mindestens -einen Eigenvektor $v$ für jeden Eigenwert finden. -Die Komponenten von $v$ liegen in $\Bbbk'$, und mindestens eine davon kann -nicht in $\Bbbk$ liegen. -Das bedeutet aber nicht, dass man diese Vektoren nicht für theoretische -Überlegungen über von $\Bbbk'$ unabhängige Eigenschaften der Matrix $A$ machen. -Das folgende Beispiel soll diese Idee illustrieren. - -\begin{beispiel} -Wir arbeiten in diesem Beispiel über dem Körper $\Bbbk=\mathbb{Q}$. -Die Matrix -\[ -A=\begin{pmatrix} --4&7\\ --2&4 -\end{pmatrix} -\in -M_2(\mathbb{Q}) -\] -hat das charakteristische Polynom -\[ -\chi_A(x) -= -\left| -\begin{matrix} --4-x&7\\-2&4-x -\end{matrix} -\right| -= -(-4-x)(4-x)-7\cdot(-2) -= --16+x^2+14 -= -x^2-2. -\] -Die Nullstellen sind $\pm\sqrt{2}$ und damit nicht in $\mathbb{Q}$. -Wir gehen daher über zum Körper $\mathbb{Q}(\!\sqrt{2})$, in dem -sich zwei Nullstellen $\lambda=\pm\sqrt{2}$ finden lassen. -Zu jedem Eigenwert lässt sich auch ein Eigenvektor -$v_{\pm\sqrt{2}}\in \mathbb{Q}(\!\sqrt{2})^2$, und unter Verwendung dieser -Basis bekommt die Matrix $A'=TAT^{-1}$ Diagonalform. -Die Transformationsmatrix $T$ enthält Matrixelemente aus -$\mathbb{Q}(\!\sqrt{2})$, die nicht in $\mathbb{Q}$ liegen. -Die Matrix $A$ lässt sich also über dem Körper $\mathbb{Q}(\!\sqrt{2})$ -diagonalisieren, nicht aber über dem Körper $\mathbb{Q}$. - -Da $A'$ Diagonalform hat mit $\pm\sqrt{2}$ auf der Diagonalen, folgt -$A^{\prime 2} = 2E$, die Matrix $A'$ erfüllt also die Gleichung -\begin{equation} -A^{\prime 2}-E= \chi_{A}(A) = 0. -\label{buch:grundlagen:eqn:cayley-hamilton-beispiel} -\end{equation} -Dies is ein Spezialfall des Satzes von Cayley-Hamilton~\ref{XXX} -welcher besagt, dass jede Matrix $A$ eine Nullstelle ihres -charakteristischen Polynoms ist: $\chi_A(A)=0$. -Die Gleichung~\ref{buch:grundlagen:eqn:cayley-hamilton-beispiel} -wurde zwar in $\mathbb{Q}(\!\sqrt{2})$ hergeleitet, aber in ihr kommen -keine Koeffizienten aus $\mathbb{Q}(\!\sqrt{2})$ vor, die man nicht auch -in $\mathbb{Q}$ berechnen könnte. -Sie gilt daher ganz allgemein. -\end{beispiel} - -\begin{beispiel} -Die Matrix -\[ -A=\begin{pmatrix} -32&-41\\ -24&-32 -\end{pmatrix} -\in -M_2(\mathbb{R}) -\] -über dem Körper $\Bbbk = \mathbb{R}$ -hat das charakteristische Polynom -\[ -\det(A-xE) -= -\left| -\begin{matrix} -32-x&-41 \\ -25 &-32-x -\end{matrix} -\right| -= -(32-x)(-32-x)-25\cdot(-41) -= -x^2-32^2 + 1025 + &0&1\\ + &0&0 +\end{array} +\right) = -x^2+1. +N_3. +\qedhere \] -Die charakteristische Gleichung $\chi_A(x)=0$ hat in $\mathbb{R}$ -keine Lösungen, daher gehen wir zum Körper $\Bbbk'=\mathbb{C}$ über, -in dem dank dem Fundamentalsatz der Algebra alle Nullstellen zu finden -sind, sie sind $\pm i$. -In $\mathbb C$ lassen sich dann auch Eigenvektoren finden, man muss dazu die -folgenden linearen Gleichungssyteme lösen: -\begin{align*} -\begin{tabular}{|>{$}c<{$}>{$}c<{$}|} -32-i&-41\\ -25 &-32-i -\end{tabular} -& -\rightarrow -\begin{tabular}{|>{$}c<{$}>{$}c<{$}|} -1 & t\\ -0 & 0 -\end{tabular} -& -\begin{tabular}{|>{$}c<{$}>{$}c<{$}|} -32+i&-41\\ -25 &-32+i -\end{tabular} -& -\rightarrow -\begin{tabular}{|>{$}c<{$}>{$}c<{$}|} -1 & \overline{t}\\ -0 & 0 -\end{tabular}, -\intertext{wobei wir $t=-41/(32-i) =-41(32+i)/1025= -1.28 -0.04i = (64-1)/50$ -abgekürzt haben. -Die zugehörigen Eigenvektoren sind} -v_i&=\begin{pmatrix}t\\i\end{pmatrix} -& -v_{-i}&=\begin{pmatrix}\overline{t}\\i\end{pmatrix} -\end{align*} -Mit den Vektoren $v_i$ und $v_{-i}$ als Basis kann die Matrix $A$ als -komplexe Matrix, also mit komplexem $T$ in die komplexe Diagonalmatrix -$A'=\operatorname{diag}(i,-i)$ transformiert werden. -Wieder kann man sofort ablesen, dass $A^{\prime2}+E=0$, und wieder kann -man schliessen, dass für die relle Matrix $A$ ebenfalls $\chi_A(A)=0$ -gelten muss. \end{beispiel} - - - diff --git a/buch/chapters/40-eigenwerte/jnorm.maxima b/buch/chapters/40-eigenwerte/jnorm.maxima new file mode 100644 index 0000000..d4c349b --- /dev/null +++ b/buch/chapters/40-eigenwerte/jnorm.maxima @@ -0,0 +1,6 @@ +J: matrix([a+b*%i, 1], [0, a+b*%i]); +v: matrix([cos(t)],[sin(t)]); +w: J.v; +n: expand(transpose(conjugate(w)).w); +d: expand(diff(n,t)); + diff --git a/buch/chapters/40-eigenwerte/normalformen.tex b/buch/chapters/40-eigenwerte/normalformen.tex index 9169f65..e59f1dc 100644 --- a/buch/chapters/40-eigenwerte/normalformen.tex +++ b/buch/chapters/40-eigenwerte/normalformen.tex @@ -6,23 +6,27 @@ \section{Normalformen \label{buch:section:normalformen}} \rhead{Normalformen} -In den Beispielen im vorangegangenen wurde wiederholt der Trick +In den Beispielen im vorangegangenen Abschnitt wurde wiederholt der Trick verwendet, den Koeffizientenkörper so zu erweitern, dass das charakteristische Polynom in Linearfaktoren zerfällt und für jeden Eigenwert Eigenvektoren gefunden werden können. Diese Idee ermöglicht, eine Matrix in einer geeigneten Körpererweiterung -in eine besonders einfache Form zu bringen, das Problem dort zu lösen. -Anschliessend kann man sich darum kümmern in welchem Mass die gewonnenen +in eine besonders einfache Form zu bringen und das Problem dort zu lösen. +Anschliessend kann man sich darum kümmern, in welchem Mass die gewonnenen Resultate wieder in den ursprünglichen Körper transportiert werden können. +Die dabei verwendete ``einfache Form'' war jeweils etwas ad hoc. +In diesem Abschnitt sollen jetzt etwas systematischer geeignete Normalformen +zusammengestellt werden. \subsection{Diagonalform} +\index{Diagonalform}% Sei $A$ eine beliebige Matrix mit Koeffizienten in $\Bbbk$ und sei $\Bbbk'$ eine Körpererweiterung von $\Bbbk$ derart, dass das charakteristische Polynom in Linearfaktoren \[ \chi_A(x) = -(x-\lambda_1)^{k_1}\cdot (x-\lambda_2)^{k_2}\cdot\dots\cdot (x-\lambda_m)^{k_m} +(x-\lambda_1)^{k_1}\cdot (x-\lambda_2)^{k_2}\dots(x-\lambda_m)^{k_m} \] mit Vielfachheiten $k_1$ bis $k_m$ zerfällt, $\lambda_i\in\Bbbk'$. Zu jedem Eigenwert $\lambda_i$ gibt es sicher einen Eigenvektor, wir @@ -31,35 +35,35 @@ aus Eigenvektoren gibt. In dieser Basis bekommt die Matrix Diagonalform, wobei auf der Diagonalen nur Eigenwerte vorkommen können. Man kann die Vektoren so anordnen, dass die Diagonalmatrix in Blöcke -der Form $\lambda_iE$ zerfällt +der Form $\lambda_iI$ zerfällt \[ \def\temp#1{\multicolumn{1}{|c}{\raisebox{0pt}[12pt][7pt]{\phantom{x}$#1$}\phantom{x}}} A' =\left( \begin{array}{cccc} \cline{1-1} -\temp{\lambda_1E} &\multicolumn{1}{|c}{}& & \\ +\temp{\lambda_1I} &\multicolumn{1}{|c}{}& & \\ \cline{1-2} - &\temp{\lambda_2E}&\multicolumn{1}{|c}{}& \\ + &\temp{\lambda_2I}&\multicolumn{1}{|c}{}& \\ \cline{2-3} & &\temp{\ddots}&\multicolumn{1}{|c}{}\\ \cline{3-4} - & & &\multicolumn{1}{|c|}{\raisebox{0pt}[12pt][7pt]{\phantom{x}$\lambda_mE$}\phantom{x}}\\ + & & &\multicolumn{1}{|c|}{\raisebox{0pt}[12pt][7pt]{\phantom{x}$\lambda_mI$}\phantom{x}}\\ \cline{4-4} \end{array} \right) \] -Über die Grösse eines solchen $\lambda_iE$-Blockes können wir zum jetzigen +Über die Grösse eines solchen $\lambda_iI$-Blockes können wir zum jetzigen Zeitpunkt noch keine Aussagen machen. -Die Matrizen $A-\lambda_kE$ enthalten jeweils einen Block aus lauter +Die Matrizen $A-\lambda_kI$ enthalten jeweils einen Block aus lauter Nullen. Das Produkt all dieser Matrizen ist daher \[ -(A-\lambda_1E) -(A-\lambda_2E) +(A-\lambda_1I) +(A-\lambda_2I) \cdots -(A-\lambda_mE) +(A-\lambda_mI) = 0. \] @@ -69,6 +73,7 @@ $m(A)=0$. Dies ist auch das Polynom von kleinstmöglichem Grad, denn für jeden Eigenwert muss ein entsprechender Linearfaktor in so einem Polynom vorkommen. Das Polynom $m(x)$ ist daher das Minimalpolynom der Matrix $A$. +\index{Minimalpolynome}% Da jeder Faktor in $m(x)$ auch ein Faktor von $\chi_A(x)$ ist, folgt wieder $\chi_A(A)=0$. Ausserdem ist über dem Körper $\Bbbk'$ das Polynom $m(x)$ ein Teiler @@ -76,6 +81,7 @@ des charakteristischen Polynoms $\chi_A(x)$. \subsection{Jordan-Normalform \label{buch:subsection:jordan-normalform}} +\index{Jordan-Normalform}% Die Eigenwerte einer Matrix $A$ können als Nullstellen des charakteristischen Polynoms gefunden werden. Da der Körper $\Bbbk$ nicht unbedingt algebraische abgeschlossen ist, @@ -90,9 +96,7 @@ Wir nehmen im Folgenden an, dass (x-\lambda_1)^{k_1} \cdot (x-\lambda_2)^{k_2} -\cdot -\dots -\cdot +\cdots (x-\lambda_l)^{k_l} \] ist mit $\lambda_i\in\Bbbk'$. @@ -101,9 +105,9 @@ Nach Satz~\ref{buch:eigenwerte:satz:zerlegung-in-eigenraeume} liefern die verallgemeinerten Eigenräume $V_i=\mathcal{E}_{\lambda_i}(A)$ eine Zerlegung von $V$ in invariante Eigenräume \[ -V=V_1\oplus V_2\oplus \dots\oplus V_l, +V=V_1\oplus V_2\oplus \dots\oplus V_l \] -derart, dass $A-\lambda_iE$ auf $V_i$ nilpotent ist. +derart, dass $A-\lambda_iI$ auf $V_i$ nilpotent ist. Wählt man in jedem der Unterräume $V_i$ eine Basis, dann zerfällt die Matrix $A$ in Blockmatrizen \begin{equation} @@ -122,17 +126,17 @@ A' \cline{4-4} \end{array} \right) -\label{buch:eigenwerte:eqn:allgnilpotent} +\label{buch:eigenwerte:eqn:allgjordan} \end{equation} wobei, $A_i$ Matrizen mit dem einzigen Eigenwert $\lambda_i$ sind. Nach Satz~\ref{buch:eigenwerte:satz:allgnilpotent} kann man in den Unterräume die Basis zusätzlich so wählen, dass -die entstehenden Blöcke $A_i-\lambda_i E$ spezielle nilpotente Matrizen -aus lauter Null sind, die höchstens unmittelbar über der Diagonalen -Einträge $1$ haben kann. +die entstehenden Blöcke $A_i-\lambda_i I$ spezielle nilpotente Matrizen sind, +die lauter Nullen als Einträge haben mit Ausnahme +höchstens der Einträge unmittelbar über der Diagonalen, die $1$ sein können. Dies bedeutet, dass sich immer eine Basis so wählen lässt, dass die -Matrix $A_i$ zerfällt in sogenannte Jordan-Blöcke. +Matrix $A_i$ in sogenannte Jordan-Blöcke zerfällt. \begin{definition} Ein $m$-dimensionaler {\em Jordan-Block} ist eine $m\times m$-Matrix @@ -150,7 +154,7 @@ J_m(\lambda) & & & & & \lambda \end{pmatrix}. \] -Eine {\em Jordan-Matrix} ist eine Blockmatrix Matrix +Eine {\em Jordan-Matrix} ist eine Blockmatrix der Form \[ J = @@ -180,7 +184,7 @@ Es gilt \[ \chi_{J_m(\lambda)}(x) = -\det (J_m(\lambda) - xE) +\det (J_m(\lambda) - xI) = (\lambda-x)^m \] @@ -192,14 +196,12 @@ bis $J_{m_p}(\lambda)$ ist = \chi_{J_{m_1}(\lambda)}(x) \chi_{J_{m_2}(\lambda)}(x) -\cdot -\dots -\cdot +\cdots \chi_{J_{m_p}(\lambda)}(x) = (\lambda-x)^{m_1} (\lambda-x)^{m_2} -\cdot\dots\cdot +\cdots (\lambda-x)^{m_p} = (\lambda-x)^m. @@ -240,6 +242,7 @@ charakteristischen Polynom $\chi_A(x)$. \begin{satz}[Cayley-Hamilton] +\label{buch:normalformen:satz:cayley-hamilton} Ist $A$ eine $n\times n$-Matrix über dem Körper $\Bbbk$, dann gilt $\chi_A(A)=0$. \end{satz} @@ -264,17 +267,13 @@ $\chi_A(x)$ ein, erhält man \[ \chi_A(J_i) = -(\lambda_1E - J_1)^{m_1} -\cdot -\ldots -\cdot +(\lambda_1I - J_1)^{m_1} +\cdots \underbrace{ -(\lambda_iE - J_i)^{m_i} +(\lambda_iI - J_i)^{m_i} }_{\displaystyle=0} -\cdot -\ldots -\cdot -(\lambda_iE - J_p)^{m_p} +\cdots +(\lambda_iI - J_p)^{m_p} = 0. \] @@ -289,7 +288,7 @@ $\chi_A(A)$ kann in $\Bbbk$ ausgeführt werden, also ist $\chi_A(A)=0$. Aus dem Beweis kann man auch noch eine strengere Bedingung ableiten. Auf jedem verallgemeinerten Eigenraum $\mathcal{E}_{\lambda_i}(A)$ ist $A_i-\lambda_i$ nilpotent, es gibt also einen minimalen Exponenten -$q_i$ derart, dass $(A_i-\lambda_iE)^{q_i}=0$ ist. +$q_i$ derart, dass $(A_i-\lambda_iI)^{q_i}=0$ ist. Wählt man eine Basis in jedem verallgemeinerten Eigenraum derart, dass $A_i$ eine Jordan-Matrix ist, kann man wieder zeigen, dass für das Polynom @@ -298,9 +297,7 @@ m_A(x) = (x-\lambda_1x)^{q_1} (x-\lambda_2x)^{q_2} -\cdot -\ldots -\cdot +\cdots (x-\lambda_px)^{q_p} \] gilt $m_A(A)=0$. @@ -312,17 +309,17 @@ $m_A(x)$ ist das {\em Minimalpolynom} der Matrix $A$. Polynom $\chi_A(x)$ in Linearfaktoren zerfällt, ist das Minimalpolynom von $A$ das Polynom \[ +m_A(x) += m(x) = (x-\lambda_1)^{q_1} (x-\lambda_2)^{q_2} \cdots -\ldots -\cdots (x-\lambda_p)^{q_p} \] wobei $q_i$ der kleinste Index ist, für den die $q_i$-te Potenz -derEinschränkung von $A-\lambda_i E$ auf den verallgemeinerten Eigenraum +der Einschränkung von $A-\lambda_i I$ auf den verallgemeinerten Eigenraum $\mathcal{E}_{\lambda_i}(A)$ verschwindet. Es ist das Polynom geringsten Grades über $\Bbbk'$, welches $m(A)=0$ erfüllt. \end{satz} @@ -465,6 +462,8 @@ d_{k-1}. Für $k=1$ fallen die Terme $c_{k-1}$ und $d_{k-1}$ weg. In der Basis $\mathcal{D}=\{c_1,d_1,\dots,c_n,d_n\}$ hat die Matrix also die {\em reelle Normalform} +\index{relle Normalform}% +\index{Normalform, reelle}% \begin{equation} \def\temp#1{\multicolumn{1}{|c}{#1\mathstrut}} \def\semp#1{\multicolumn{1}{c|}{#1\mathstrut}} @@ -478,12 +477,12 @@ A_{\text{reell}} \cline{1-6} & &\temp{\alpha}& \beta&\temp{ 1}& 0&\temp{} & & & &&\\ & &\temp{-\beta}&\alpha&\temp{ 0}& 1&\temp{} & & & &&\\ -\cline{3-6} - & & & &\temp{\alpha}& \beta&\temp{} & & & &&\\ - & & & &\temp{-\beta}&\alpha&\temp{} & & & &&\\ -\cline{5-8} - & & & & & &\temp{\phantom{0}}&\phantom{0}&\temp{ }& &&\\ - & & & & & &\temp{\phantom{0}}&\phantom{0}&\temp{ }& &&\\ +\cline{3-8} + & & & &\temp{\alpha}& \beta&\temp{} & &\temp{}& &&\\ + & & & &\temp{-\beta}&\alpha&\temp{} & &\temp{}& &&\\ +\cline{5-10} + & & & & & &\temp{\phantom{0}}&\phantom{0}&\temp{ }& &\temp{}&\\ + & & & & & &\temp{\phantom{0}}&\phantom{0}&\temp{ }& &\temp{}&\\ \cline{7-12} & & & & & & & &\temp{\alpha}& \beta&\temp{ 1}&\semp{ 0}\\ & & & & & & & &\temp{-\beta}&\alpha&\temp{ 0}&\semp{ 1}\\ diff --git a/buch/chapters/40-eigenwerte/spektralradius.tex b/buch/chapters/40-eigenwerte/spektralradius.tex index a36dc33..1cdaf35 100644 --- a/buch/chapters/40-eigenwerte/spektralradius.tex +++ b/buch/chapters/40-eigenwerte/spektralradius.tex @@ -21,23 +21,28 @@ Funktionen $f$ berechnen zu können. % \subsection{Polynom-Funktionen \label{buch:subsection:polynom-funktionen}} +Die einfachsten Funktionen $f(x)$, für die der Wert $f(A)$ +auf offensichtliche Weise berechnet werden kann, sind Polynome. +Die Jordan-Normalform kann dabei helfen, die Potenzen von $A$ +zu berechnen. + In diesem Abschnitt ist $B\in M_n(\Bbbk)$ und $\Bbbk'\supset\Bbbk$ ein -Körper, über dem das charakteristische Polynome $\chi_A(x)$ in +Körper, über dem das charakteristische Polynome $\chi_A(X)$ in Linearfaktoren \[ -\chi_A(x) +\chi_A(X) = -(\lambda_1-x)^{m_1}(\lambda_2-x)^{m_2}\cdot\ldots\cdot(\lambda_p-x)^{m_p} +(\lambda_1-X)^{m_1}(\lambda_2-X)^{m_2}\cdots(\lambda_p-X)^{m_p} \] zerfällt. -Für jedes beliebige Polynome $p(X)\in\Bbbk[X]$ der Form +Für jedes beliebige Polynom $p(X)\in\Bbbk[X]$ der Form \[ -p(X) = a_nX^n + a_{n-1}X^{n-1} + \dots a_1x + a_0 +p(X) = a_nX^n + a_{n-1}X^{n-1} + \dots + a_1x + a_0 \] kann man auch \[ -p(A) = a_nA^n + a_{n-1}A^{n-1} + \dots a_1A + a_0E +p(A) = a_nA^n + a_{n-1}A^{n-1} + \dots + a_1A + a_0I \] berechnen. In der Jordan-Normalform können die Potenzen $A^k$ leicht zusammengstellt @@ -48,6 +53,7 @@ Die $k$-te Potenz von $J_n(\lambda)$ ist die Matrix mit \begin{equation} J_n(\lambda)^k = +\renewcommand{\arraystretch}{1.4} \begin{pmatrix} \lambda^k & \binom{k}{1}\lambda^{k-1} @@ -70,6 +76,13 @@ J_n(\lambda)^k & \dots &\binom{k}{n-3}\lambda^{k-n+3} \\ +0 + & 0 + & 0 + & \lambda^k + & \dots + &\binom{k}{n-4}\lambda^{k-n+4} +\\ \vdots &\vdots &\vdots &\vdots &\ddots & \vdots \\ 0 & 0 & 0 & 0 & \dots & \lambda^k @@ -78,7 +91,7 @@ J_n(\lambda)^k \end{equation} mit den Matrixelementen \[ -(J_n(\lambda)^k)_{ij} +(J_n(\lambda)^k)_{i\!j} = \binom{k}{j-i}\lambda^{k-j+i}. \] @@ -88,12 +101,12 @@ Die Binomialkoeffizienten verschwinden für $j<i$ und $j>i+k$. \begin{proof}[Beweis] Die Herkunft der Binomialkoeffizienten wird klar, wenn man \[ -J_n(\lambda) = \lambda E + N_n +J_n(\lambda) = \lambda I + N_n \] schreibt, wobei $N_n$ die Matrix \eqref{buch:eigenwerte:eqn:nnilpotent} ist. Die Potenzen von $N_n$ haben die Matrix-Elemente \[ -(N_n^k)_{ij} +(N_n^k)_{i\!j} = \delta_{i,j-k} = @@ -104,7 +117,7 @@ Die Potenzen von $N_n$ haben die Matrix-Elemente \] sie haben also Einsen genau dort, wo in der \label{buch:eigenwerte:eqn:Jnkpotenz} die Potenz $\lambda^{k}$ steht. -Die $kt$-te Potenz von $J_n(\lambda)$ kann dann mit dem binomischen +Die $k$-te Potenz von $J_n(\lambda)$ kann dann mit dem binomischen Satz berechnet werden: \[ J_n(\lambda)^k @@ -114,7 +127,8 @@ J_n(\lambda)^k dies ist genau die Form \eqref{buch:eigenwerte:eqn:Jnkpotenz}. \end{proof} -Wir haben bereits gesehen, dass $\chi_A(A)=0$, ersetzt man also das +Wir haben bereits gesehen, dass $\chi_A(A)=0$. +Ersetzt man also das Polynom $p(X)$ durch $p(X)+\chi_A(X)$, dann ändert sich am Wert \[ (p+\chi_A)(A) @@ -126,7 +140,8 @@ p(A) nichts. Man kann also nicht erwarten, dass verschiedene Polynome $p(X)$ zu verschiedenen Matrizen $p(A)$ führen. -Doch welche Unterschiede zwischen Polynomen wirken sich genau aus? +Doch genau welche Unterschiede zwischen Polynomen wirken sich +auf den Wert $p(A)$ aus? \begin{satz} Für zwei Polynome $p(X)$ und $q(X)$ ist genau dann $p(A)=q(A)$, wenn @@ -149,13 +164,13 @@ m(X) = (\lambda_1-X)^{q_1} (\lambda_2-X)^{q_2} -\cdot\ldots -\cdot +\cdots (\lambda_p-X)^{q_p}, \] wobei $q_i$ die Dimension des grössten Jordan-Blocks ist, der in der Jordan-Normalform vorkommt. -Zwei Polynome $p_1(X)$ und $p_2(X)$ haben genau dann den gleichen Wert, +Zwei Polynome $p_1(X)$ und $p_2(X)$ ergeben genau dann den gleichen Wert +auf $A$, wenn die Differenz $p_1(X)-p_2(X)$ genau die Nullstellen $\lambda_1,\dots,\lambda_p$ mit Vielfachheiten $q_1,\dots,q_p$ hat. @@ -172,18 +187,18 @@ A \] mit dem charakteristischen Polynom \[ -\chi_A(x) +\chi_A(X) = --x^3+7x^2-16 x+12 +-X^3+7X^2-16 X+12 = --(x-3)(x-2)^2. +-(X-3)(X-2)^2. \] Daraus kann man bereits ablesen, dass das Minimalpolynom $m(X)$ von $A$ entweder $(X-2)(X-3)$ oder $(X-2)^2(X-3)$ ist. Es genügt also nachzuprüfen, ob $p(A)=0$ für das Polynom $p(X)=(X-2)(X-3) = X^2-5X+6$ ist. Tatsächlich sind die Potenzen von $A$: -\[ +\begin{equation} A^2= \begin{pmatrix} 0& 36& -16 \\ @@ -197,8 +212,9 @@ A^3= -12& -36& 28\\ -24&-126& 83 \end{pmatrix} -\] -und daraus kann man jetzt $P(A)$ berechnen: +\label{buch:eigenwerte:eqn:A2A3} +\end{equation} +und daraus kann man jetzt $p(A)$ berechnen: \begin{equation} p(A) = @@ -229,9 +245,11 @@ p(A) = \begin{pmatrix}1\\1\\2\end{pmatrix} \begin{pmatrix}1&-9&4\end{pmatrix} +\ne 0 \label{buch:eigenwerte:eqn:nichtminimalpolynom} \end{equation} -Also ist tatsächlich $(X-2)^2(X-3)$ das Minimalpolynom. +Daher kann $p(X)$ nicht das Minimalpolynom $A$ +sein, daher muss $(X-2)^2(X-3)$ das Minimalpolynom sein. Das Quadrat des Polynoms $p(X)$ ist $p(X)^2 = (X-2)^2(X-3)^2$, es hat das Minimalpolynom als Teiler, also muss $p(A)^2=0$ sein. @@ -254,11 +272,12 @@ wie zu erwarten war. Wenn sich zwei Polynome nur um das charakteristische Polynom unterscheiden, dann haben sie den gleichen Wert auf $A$. -Das Polynom $p_1(X)=X^3$ unterschiedet sich vom Polynom $p_2(X)=7X^2-16X+12$ +Das Polynom $p_1(X)=X^3$ unterschiedet sich vom Polynom +$p_2(X)=7X^2-16X+12=\chi_A(X)+X^3=p_1(X)+\chi_A(X)$ um das charakteristische Polynom, welches wir bereits als das Minimalpolynom von $A$ erkannt haben. -Die dritte Potenz $A^3$ von $A$ muss sich daher auch mit $p_2(X)$ berechnen -lassen: +Die dritte Potenz $A^3=p_1(A)$ von $A$ muss sich daher auch als $p_2(A)$ +berechnen lassen: \[ 7 \begin{pmatrix} @@ -285,9 +304,9 @@ lassen: -24&-126& 83 \end{pmatrix} = -A^3. -\qedhere +A^3, \] +wie in \eqref{buch:eigenwerte:eqn:A2A3} vorsorglich berechnet worden ist. \end{beispiel} \begin{satz} @@ -299,9 +318,11 @@ für alle Eigenwerte $\lambda$ von $A$. Über dem Körper der komplexen Zahlen ist die Bedingung, dass die Differenz $d(X)=p_1(X)-p_2(X)$ vom Minimalpolynom geteilt werden muss, gleichbedeutend -damit, dass $p_1(X)$ und $p_2(X)$ den gleichen Wert und gleiche Ableitungen -bis zur Ordnung $q_i-1$ haben in allen Eigenwerten $\lambda_i$, wobei -$q_i$ der Exponent von $\lambda_i-X$ im Minimalpolynom von $A$ ist. +damit, dass $p_1(X)$ und $p_2(X)$ die gleichen Nullstellen mit den gleichen +Vielfachheiten haben. +Eine andere Art, dies auszudrücken, ist, dass $p_1(x)$ und $p_2(X)$ +die gleichen Werte und Ableitungen bis zur Ordnung $q_i-1$ haben, wenn +$q_i$ der Exponente von $\lambda_I-X$ im Minimalpolynom von $A$ ist. Das Beispiel illustriert auch noch ein weiteres wichtiges Prinzip. Schreiben wir das Minimalpolynom von $A$ in der Form @@ -317,10 +338,10 @@ A^i = A^{i-k}A^k = -A^{i-k}(-a_{k-1}A^{k-1}+ \dots + a_1 A + a_0E) +A^{i-k}(-a_{k-1}A^{k-1}+ \dots + a_1 A + a_0I) \] in einer Linearkombination kleinerer Potenzen reduzieren. -Jedes Polynom vom Grad $\ge k$ kann also reduizert werden in +Jedes Polynom vom Grad $\ge k$ kann also reduziert werden in ein Polynom vom Grad $<k$ mit dem gleichen Wert auf $A$. \begin{satz} @@ -336,6 +357,7 @@ vom Grad $\deg q<\deg m$ mit $p(A)=q(A)$. \subsection{Approximation von $f(A)$ \label{buch:subsection:approximation}} Die Quadratwurzelfunktion $x\mapsto\sqrt{x}$ lässt sich nicht durch ein +\index{Quadratwurzelfunktion}% Polynom darstellen, es gibt also keine direkte Möglichkeit, $\sqrt{A}$ für eine beliebige Matrix zu definieren. Wir können versuchen, die Funktion durch ein Polynom zu approximieren. @@ -358,9 +380,19 @@ Solche Polynome gibt es dank dem Satz von Stone-Weierstrass immer: \begin{satz}[Stone-Weierstrass] Ist $I\subset\mathbb{R}$ kompakt, dann lässt sich jede stetige Funktion +$f(x)$ durch eine Folge $p_n(x)$ beliebig genau approximieren. \end{satz} +Die Hoffnung ist, $f(A)$ als Grenzwert der Approximationen $p_n(A)$ +zu definieren. +Dazu muss sichergestellt sein, dass verschiedene Approximationen +der Funktion $f$ den gleichen Grenzwert $\lim_{n\to\infty}p_n(A)$ +ergeben. +Im Folgenden soll genauer untersucht werden, ob sich von der +Konvergenz einer Folge $p_n(x)$ auf die Konvergenz von $p_n(A)$ +geschlossen werden kann. + Wir haben schon gezeigt, dass es dabei auf die höheren Potenzen gar nicht ankommt, nach Satz~\ref{buch:eigenwerte:satz:reduktion} kann man ein approximierendes Polynom immer durch ein Polynom von kleinerem Grad @@ -407,8 +439,99 @@ Faktor $\frac23$ kleiner geworden ist. \end{beispiel} \begin{beispiel} -Wir berechnen die Norm eines Jordan-Blocks. - +Wir berechnen die Norm eines $2\times2$-Jordan-Blocks. +Ein $2$-dimensionaler Einheitsvektor kann als +\[ +v\colon +t\mapsto v(t)= +\begin{pmatrix}\cos t\\\sin t\end{pmatrix} +\] +parametrisiert werden. +Für die Zahl $\lambda=a+bi$ bildet der +Jordanblock $J_2(\lambda)$ den Vektor $v(t)$ auf den Vektor +\[ +J_2(\lambda)v(t) += +\begin{pmatrix} +\lambda&1\\ +0&\lambda +\end{pmatrix} +\begin{pmatrix}\cos t\\\sin t\end{pmatrix} += +\begin{pmatrix} +\lambda\cos t + \sin t\\ +\lambda\sin t +\end{pmatrix} +\] +ab +mit der Länge +\begin{align*} +|J_2(\lambda)v(t)|^2 +&= +|\lambda\cos t + \sin t|^2 + |\lambda\sin t|^2 += +(\Re\lambda \cos t + \sin t)^2 ++ +(\Im\lambda \cos t)^2 ++ +|\lambda|^2 \sin^2t +\\ +&= +a^2\cos^2 t ++ +2a\cos t\sin t + \sin^2 t + b^2\cos^2t + (a^2+b^2) \sin^2 t +\\ +&= +(a^2+b^2)(\cos^2t + \sin^2t) + \sin^2t + 2a\cos t\sin t += +|\lambda|^2+2a\cos t\sin t + \sin^2 t +\\ +&= +|\lambda|^2 + a\sin 2t + \frac12(1-\cos 2t). +\end{align*} +Um den maximalen Wert zu finden, leiten wir nach $t$ ab und finden +\begin{align*} +\frac{d}{dt} +|J_2(\lambda)v(t)|^2 +&= +2a\cos 2t ++ +\sin 2t += +0. +\end{align*} +Dividieren wir durch $\cos t$, ergibt sich die Gleichung +\[ +\tan 2t = -2a +\quad\Rightarrow\quad +2t += +\arctan(-2a) +\quad\Rightarrow\quad +\left\{ +\renewcommand{\arraystretch}{2.1} +\setlength\arraycolsep{1pt} +\begin{array}{ccc} +\cos 2t &=& \displaystyle\frac{1}{\sqrt{1+4a^2}}\phantom{.}\\ +\sin 2t &=& \displaystyle\frac{-2a}{\sqrt{1+4a^2}}. +\end{array} +\right. +\] +Setzt man dies in die ursprüngliche Formel für die Länge des +Bildvektors ein, erhält man +\begin{align*} +\|J_2\|^2 += +|J_2(\lambda)v(t)|^2 +&= +|\lambda|^2 + \frac{-2a}{\sqrt{1+4a^2}} + \frac12\biggl(1-\frac{1}{\sqrt{1+4a^2}}\biggr) +\\ +&= +|\lambda|^2 ++ \frac12 +-\frac{1+4a}{2\sqrt{1+4a^2}}. +\end{align*} +Für $a\to\infty$ wächst dies asymptotisch wie $a^2-1$. \end{beispiel} % @@ -416,57 +539,111 @@ Wir berechnen die Norm eines Jordan-Blocks. % \subsection{Potenzreihen \label{buch:subsection:potenzreihen}} +Funktionen, die eine konvergente Potenzreihenentwicklung +\begin{equation} +f(z) += +\sum_{k=0}^\infty a_kz^k +\label{buch:eigenwerte:eqn:potenzreihe} +\end{equation} +\index{Potenzreihe} +haben, wie +zum Beispiel $e^x$, $\sin x$ oder $\cos x$, haben eine in der Folge +der Partialsummen +\[ +p_n(z) = \sum_{k=0}^n a_kz^k +\] +eine Approximation mit Polynomen. +Nach dem {\em Wurzelkriterium} ist die +Reihe~\eqref{buch:eigenwerte:eqn:potenzreihe} +konvergent, wenn +\[ +\limsup_{k\to\infty} \sqrt[n]{|a_kz^k|} < 1 +\] +ist. +\index{Wurzelkriterium}% +Dies führt auf die Formel $1/\varrho = \limsup_{k\to\infty}|a_k|^{\frac1k}$ +für den Konvergenzradius der Potenzreihe. - - +Setzt man die Matrix $M\in M_r(\Bbbk)$ in die Potenzreihe ein, +folgt, dass +\[ +\limsup_{n\to\infty} \sqrt[n]{\|a_kM^n\|} +\le +\limsup_{n\to\infty} \sqrt[n]{|a_n|} +\cdot +\limsup_{n\to\infty} \|M^k\|^{\frac1k} += +\frac{1}{\varrho} +\limsup_{n\to\infty} \|M^k\|^{\frac1k} +\] +sein muss. Dies führt uns auf die Grösse \begin{equation} \pi(M) = -\limsup_{n\to\infty} \|M^n\|^\frac1n. +\limsup_{n\to\infty} \|M^n\|^\frac1n, \label{buch:eqn:gelfand-grenzwert} \end{equation} +die +darüber entscheidet, ob die Potenzreihe $f(A)$ konvergiert. + +Die Zahl $\pi(M)$ erlaubt zunächst einmal zu bestimmen, wie +sich die Potenzen $M^k$ entwickeln. +Für Zahlen ist diese Frage sehr einfach zu entscheiden: wenn $q>1$ ist, +dann geht $q^n\to\infty$, wenn $|q|<1$ ist, dann geht $q^n\to 0$. +Für Matrizen ist die Frage etwas schieriger. +Man kann sich vorstellen, dass eine Streckung in einer Richtung +von einer Stauchung in eine andere Richtung kompensiert wird, wenn +dazwischen eine Drehung stattfindet. +Es ist also durchaus möglich, dass $\|M\|>1$ ist, die +Iterierten $M^k$ aber trotzdem gegen $0$ gehen. + Ist $\pi(M) > 1$, dann gibt es Anfangsvektoren $v$ für die Iteration, für die $M^kv$ über alle Grenzen wächst. Ist $\pi(M) < 1$, dann wird jeder Anfangsvektor $v$ zu einer Iterationsfolge $M^kv$ führen, die gegen $0$ konvergiert. -Die Kennzahl $\pi(M)$ erlaubt also zu entscheiden, ob ein -Iterationsverfahren konvergent ist. +Die Kennzahl $\pi(M)$ erlaubt also zu entscheiden, ob die +Iteration konvergent ist. \index{Konvergenzbedingung}% -Die Berechnung von $\pi(M)$ als Grenzwert ist sehr unhandlich. +\begin{definition} +\label{buch:eigenwerte:def:gelfand-radius} +Der Grenzwert +\[ +\pi(M) += +\limsup_{n\to\infty} \|M^k\|^{\frac1k} +\] +heisst {\em Gelfand-Radius} der Matrix $M$. +\index{Gelfand-Radius}% +\end{definition} + + +% +% Gelfand-Radius und Eigenwerte +% +\subsection{Gelfand-Radius und Eigenwerte +\label{buch:subsection:potenzreihen}} +Die Berechnung des Gelfand-Radius als Grenzwert ist sehr unhandlich. Viel einfacher ist der Begriff des Spektralradius. \index{Spektralradius}% \begin{definition} \label{buch:definition:spektralradius} Der {\em Spektralradius} der Matrix $M$ ist der Betrag des betragsgrössten +\index{Spektralradius}% Eigenwertes. \end{definition} -% -% Gelfand-Radius und Eigenwerte -% -\subsection{Gelfand-Radius und Eigenwerte -\label{buch:subsection:spektralradius}} -In Abschnitt~\ref{buch:subsection:konvergenzbedingung} -ist der Gelfand-Radius mit Hilfe eines Grenzwertes definiert worden. -\index{Gelfand-Radius}% -Nur dieser Grenzwert ist in der Lage, über die Konvergenz eines -Iterationsverfahrens Auskunft zu geben. -Der Grenzwert ist aber sehr mühsam zu berechnen. -\index{Grenzwert}% -Es wurde angedeutet, dass der Gelfand-Radius mit dem Spektralradius -übereinstimmt, dem Betrag des betragsgrössten Eigenwertes. -Dies hat uns ein vergleichsweise einfach auszuwertendes Konvergenzkriterium -geliefert. +Wir wollen in diesem Abschnitt zeigen, dass der Gelfand-Radius mit +dem Spektralradius übereinstimmt. +Dies liefert uns ein vergleichsweise einfach auszuwertendes Konvergenzkriterium. \index{Konvergenzkriterium}% -In diesem Abschnitt soll diese Identität zunächst an Spezialfällen -und später ganz allgemein gezeigt werden. \subsubsection{Spezialfall: Diagonalisierbare Matrizen} Ist eine Matrix $A$ diagonalisierbar, dann kann Sie durch eine Wahl -einer geeigneten Basis in Diagonalform +einer geeigneten Basis in die Diagonalform \index{diagonalisierbar}% \index{Diagonalform}% \[ @@ -576,8 +753,8 @@ Ihre Potenzen haben ebenfalls Blockform: \[ A^k = \begin{pmatrix} B^k & 0 \\ 0 & C^k\end{pmatrix}. \] -Ein Vektor $v$ kann in die zwei Summanden $v_1$ bestehen aus den -ersten $n$ Komponenten und $v_2$ bestehen aus den letzten $m$ +Ein Vektor $v$ kann in die zwei Summanden $v_1$ bestehend aus den +ersten $n$ Komponenten und $v_2$ bestehend aus den letzten $m$ Komponenten zerlegen. Dann ist \[ @@ -613,11 +790,11 @@ Polynom der Blockmatrix $A$ natürlich \index{charakteristisches Polynom}% \index{Polynom!charakteristisch}% \[ -\chi_A(\lambda) = \chi_B(\lambda)\chi_C(\lambda), +\chi_A(\lambda) = \chi_B(\lambda)\chi_C(\lambda). \] -woraus folgt, dass die Eigenwerte von $A$ die Vereinigung der Eigenwerte +Es folgt, dass die Eigenwerte von $A$ die Vereinigung der Eigenwerte von $B$ und $C$ sind. -Daher gilt auch für die Spektralradius die Formel +Daher gilt auch für den Spektralradius die Formel \[ \varrho(A) = \max(\varrho(B) , \varrho(C)). \] @@ -625,7 +802,7 @@ Daher gilt auch für die Spektralradius die Formel \subsubsection{Jordan-Blöcke} \index{Jordan-Block}% Nicht jede Matrix ist diagonalisierbar, die bekanntesten Beispiele sind -die Matrizen +die Jordan-Blöcke \begin{equation} J_n(\lambda) = @@ -640,12 +817,12 @@ J_n(\lambda) \label{buch:spektralradius:eqn:jordan} \end{equation} wobei $\lambda\in\mathbb C$ eine beliebige komplexe Zahl ist. -Wir nennen diese Matrizen {\em Jordan-Matrizen}. Es ist klar, dass $J_n(\lambda)$ nur den $n$-fachen Eigenwert $\lambda$ hat und dass der erste Standardbasisvektor ein Eigenvektor zu diesem Eigenwert ist. -In der linearen Algebra lernt man, dass jede Matrix durch Wahl +In Abschnitt~\ref{buch:subsection:jordan-normalform} +haben wir gesehen, dass jede Matrix durch die Wahl \index{lineare!Algebra}% einer geeigneten Basis als Blockmatrix der Form \[ @@ -658,14 +835,13 @@ J_{n_1}(\lambda_1) & 0 & \dots & 0 \\ 0 & 0 & \dots &J_{n_l}(\lambda_l) \end{pmatrix} \] -geschrieben werden kann\footnote{Sofern die Matrix komplexe Eigenwerte -hat muss man auch komplexe Basisvektoren zulassen.}. +geschrieben werden kann. Die früheren Beobachtungen über den Spektralradius und den -Gelfand-Radius von Blockmatrizen zeigen uns daher, dass +Gelfand-Radius von Blockmatrizen führen uns dazu, dass nur gezeigt werden muss, dass nur die Gleichheit des Gelfand-Radius und des Spektral-Radius von Jordan-Blöcken gezeigt werden muss. -\subsubsection{Iterationsfolgen} +\subsubsection{Potenzen von Jordan-Blöcken} \begin{satz} \label{buch:spektralradius:satz:grenzwert} Sei $A$ eine $n\times n$-Matrix mit Spektralradius $\varrho(A)$. @@ -773,7 +949,7 @@ es im Fall $\varepsilon > 0$ eine Konstante $M$ gibt mit \|A(\varepsilon) ^k\|^\frac1k\le M^\frac1k\varrho(A(\varepsilon)) \\ &\Rightarrow\quad -\pi(A) \le \varrho(A(\varepsilon)) +\pi(A(\varepsilon)) \le \varrho(A(\varepsilon)) \underbrace{\lim_{k\to\infty} M^\frac1k}_{\displaystyle=1} = \varrho(A(\varepsilon)) @@ -790,7 +966,7 @@ Andererseits gibt es für $\varepsilon <0$ eine Konstante $m$ mit \|A(\varepsilon) ^k\|^\frac1k\ge m^\frac1k\varrho(A(\varepsilon)) \\ &\Rightarrow\quad -\pi(A) \ge \varrho(A(\varepsilon)) +\pi(A(\varepsilon)) \ge \varrho(A(\varepsilon)) \underbrace{\lim_{k\to\infty} m^\frac1k}_{\displaystyle=1} = \varrho(A(\varepsilon)) diff --git a/buch/chapters/40-eigenwerte/spektraltheorie.tex b/buch/chapters/40-eigenwerte/spektraltheorie.tex index 466b99e..94a64e1 100644 --- a/buch/chapters/40-eigenwerte/spektraltheorie.tex +++ b/buch/chapters/40-eigenwerte/spektraltheorie.tex @@ -6,11 +6,12 @@ \section{Spektraltheorie \label{buch:section:spektraltheorie}} Aufgabe der Spektraltheorie ist, Bedingungen an eine Matrix $A$ und eine +\index{Spektraltheorie} Funktion $f(z)$ zu finden, unter denen es möglich ist, $f(A)$ auf konsistente Art und Weise zu definieren. Weiter müssen Methoden entwickelt werden, mit denen $f(A)$ berechnet werden kann. -Für ein Polynom $p(z)$ ist $p(A)$ durch einsetzen definiert. +Für ein Polynom $p(z)$ ist $p(A)$ durch Einsetzen definiert. Für Funktionen, die sich nicht durch ein Polynom darstellen lassen, muss eine Approximation der Funktion durch Polynome verwendet werden. Sei also $p_n(z)$ eine Folge von Polynomen, die als Approximation der @@ -41,7 +42,10 @@ konvergente Folge von Polynomen $p_n(z)$ auch die Matrizenfolge $p_n(A)$ konvergiert. Es wird sich zeigen, dass die Menge $K$ das Spektrum von $A$ ist, +$K=\operatorname{Sp}(A)$, +(Definition~\ref{buch:eigenwerte:def:spektrum}), also eine endliche Teilmenge von $\mathbb{C}$. +\index{Spektrum} Jede Funktion kann auf so einer Menge durch Polynome exakt wiedergegeben werden. Es gibt insbesondere Folgen von Polynomen, die eingeschränkt @@ -70,9 +74,11 @@ lassen, woraus sich dann Approximationen von $f(A)$ für diagonalisierbare Matrizen mit reellen Eigenwerten ergeben. Der Satz von Stone-Weierstrass, der in +\index{Stone-Weierstrass, Satz von}% +\index{Satz von Stone-Weierstrass}% Abschnitt~\ref{buch:subsetion:stone-weierstrass} dargestellt wird, ist ein sehr allgemeines Approximationsresultat, welches nicht nur -zeigt, dass die Approximation unter sehr natürlichen Voraussetzungen +zeigt, dass die Approximation unter einigermassen natürlichen Voraussetzungen beliebig genau möglich ist, sondern uns im komplexen Fall auch weitere Einsicht dafür geben kann, welche Voraussetzungen an eine komplexe Matrix gestellt werden müssen, damit man damit rechnen kann, @@ -91,8 +97,10 @@ Approximationsverfahren entwickelt, wovon zwei kurz (ohne Beweise) vorgestellt werden sollen. \subsubsection{Das Legendre-Interpolationspolynom} +\index{Legendre-Interpolationspolynom}% Zu vorgegebenen, verschiedenen Zahlen $z_i\in\mathbb{C}$, $0\le i\le n$, die auch die {\em Stützstellen} genannt werden, +\index{Stützstelle}% gibt es immer ein Polynom vom Grade $n$, welches in den $z_i$ vorgegebene Werte $f(z_i)$ annimmt. Ein solches Polynom lässt sich im Prinzip mit Hilfe eines linearen @@ -100,9 +108,9 @@ Gleichungssystems finden, man kann aber auch direkt eine Lösung konstruieren. Dazu bildet man erst die Polynome \begin{align*} -l(z) &= (z-z_0)(z-z_1)\dots (z-z_n) \qquad\text{und} +l(z) &= (z-z_0)(z-z_1)\cdots (z-z_n) \qquad\text{und} \\ -l_i(z) &= (z-z_0)\dots \widehat{(z-z_i)}\dots (z-z_n). +l_i(z) &= (z-z_0)\cdots \widehat{(z-z_i)}\cdots (z-z_n). \end{align*} Darin bedeutet der Hut, dass dieser Term weggelassen werden soll. Für $z\ne z_i$ ist $l_i(z)=l(z)/(z-z_i)$. @@ -112,10 +120,10 @@ k_i(z) = \frac{l_i(z)}{l_i(z_i)} = -\frac{(z-z_0)\dots \widehat{(z-z_i)}\dots (z-z_n)}{(z_i-z_0)\dots \widehat{(z_i-z_i)}\dots (z_i-z_n)} +\frac{(z-z_0)\cdots \widehat{(z-z_i)}\cdots (z-z_n)}{(z_i-z_0)\cdots \widehat{(z_i-z_i)}\cdots (z_i-z_n)} \] haben die Eigenschaft -$k_i(z_j)=\delta_{ij}$. +$k_i(z_j)=\delta_{i\!j}$. Damit lässt sich jetzt ein Polynom \[ p(z) = \sum_{j=0}^n f(z_j) \frac{l_j(z)}{l_j(z_j)} @@ -126,7 +134,7 @@ p(z_i) = \sum_{j=0}^n f(z_j) \frac{l_j(z_i)}{l_j(z_j)} = -\sum_{j=0}^n f(z_j) \delta_{ij} +\sum_{j=0}^n f(z_j) \delta_{i\!j} = f_(z_i) \] @@ -139,17 +147,19 @@ annimmt, doch ist die Stabilität für grosse $n$ eher beschränkt. \subsubsection{Gleichmassige Approximation mit Bernstein-Polynomen} +\index{Bernstein-Polynom}% Das Legendre-Interpolationspolynom nimmt in den Stützstellen die verlangten Werte an, aber ausserhalb der Stützstellen ist nicht garantiert, dass man eine gute Approximation einer Funktion $f(z)$ erhält. - Für die Approximation auf einem reellen Interval $[a,b]$ hat -Sergei Natanowitsch Bernstein ein +Sergei Natanowitsch Bernstein eine Methode zur expliziten +Konstruktion eines Approximationspolynoms formuliert. + Dazu werden zuerst die reellen Bernsteinpolynome vom Grad $n$ durch \begin{align*} -B_{i,n}(t) = \binom{n}{i} t^i(1-t)^{n-i}. +B_{i,n}(t) = \binom{n}{i} t^i(1-t)^{n-i} \end{align*} definiert. Als Approximationspolynom für die auf dem Interval @@ -179,6 +189,8 @@ verwendet. % \subsection{Der Satz von Stone-Weierstrasss \label{buch:subsetion:stone-weierstrass}} +\index{Stone-Weierstrass, Satz von}% +\index{Satz von Stone-Weierstrass}% Der Satz von Stone-Weierstrass behandelt im Gegensatz zu den in Abschnitt~\ref{buch:subsection:approximation-durch-polynome} besprochenen Approximationsmethoden nicht nur Funktionen von @@ -207,8 +219,8 @@ erst ermöglichen werden. Aus den konstanten Funktionen lassen sich durch algebraische Operationen nur weitere konstante Funktionen erzeugen. Die konstanten Funktionen sind also nur dann eine genügend -reichhaltige Menge, wenn die Menge $K$ nur einen einzigen Punkt -enthält. +reichhaltige Menge für die Approximation von Funktionen auf $K$, +wenn die Menge $K$ nur einen einzigen Punkt enthält. Damit sich Funktionen approximieren lassen, die in zwei Punkten verschiedene Werte haben, muss es auch unter den zur Approximation zur Verfügung stehenden Funktionen solche haben, deren Werte sich @@ -263,6 +275,8 @@ nicht widerspricht aber ein Hindernis für spätere Anwendungen ist. \subsubsection{Der Satz von Stone-Weierstrass für reelle Funktionen} +\index{Satz von Stone-Weierstrass}% +\index{Stone-Weierstrass, Satz von}% Die Beispiele von Abschnitt~\ref{buch:subsection:approximation-durch-polynome} haben bezeigt, dass sich reellwertige Funktionen einer reellen Variable durch Polynome beliebig genau approximieren lassen. @@ -308,6 +322,7 @@ in $A$. Für den Beweis des Satzes wird ein Hilfsresultat benötigt, welches wir zunächst ableiten. Es besagt, dass sich die Wurzelfunktion $t\mapsto\sqrt{t}$ +\index{Wurzelfunktion}% auf dem Interval $[0,1]$ gleichmässig von unten durch Polynome approximieren lässt, die in Abbildung~\ref{buch:eigenwerte:fig:wurzelapproximation} dargestellt @@ -365,6 +380,8 @@ Folge, die gegen $\sqrt{a}$ konvergiert. \end{proof} \begin{proof}[Beweis des Satzes von Stone-Weierstrass] +\index{Stone-Weierstrass, Beweis}% +\index{Satz von Stone-Weierstrasse, Beweis}% Da $A$ eine Algebra ist, ist mit jeder Funktion $f\in A$ für jedes Polynome $p\in\mathbb{R}[X]$ auch $p(f)$ eine Funktion in $A$. \begin{enumerate} @@ -377,12 +394,12 @@ Sei ausserdem $m^2=\sup \{f(x)^2\;|\;x\in K\}$, so dass $f^2/m^2$ eine Funktion mit Werten im Intervall $[0,1]$ ist. Die Funktionen $f_n(x)=mu_n(f(x)^2/m^2)$ sind ebenfalls in $A$ und approximieren gleichmässig $\sqrt{f(x)^2}=|f(x)|$. + \item Schritt: Für zwei Funktionen $f,g\in A$ gibt es eine monoton wachsende Folge, die $\max(f,g)$ gleichmässig beliebig genau approximiert und eine monoton fallende Folge, die $\min(f,g)$ gleichmässig beliebig genau approximiert. - Diese Folgen können aus der Approximationsfolge für den Betrag einer Funktion und den Identitäten \begin{equation} @@ -394,6 +411,7 @@ Funktion und den Identitäten \end{equation} gefunden werden, die in Abbildung~\ref{buch:eigenwerte:fig:minmax} graphisch erklärt werden. + \item Schritt: Zu zwei beliebigen Punkten $x,y\in K$ und Werten $\alpha,\beta\in\mathbb{R}$ gibt es immer eine Funktion in $A$, die in den Punkten $x,y$ die vorgegebenen Werte $\alpha$ bzw.~$\beta$ @@ -405,12 +423,13 @@ f(t) = \beta + \frac{f_0(t)-f_0(y)}{f_0(x)-f_0(y)}(\alpha-\beta) \] -wohldefiniert und nimmt die verlangten Werte an. +wohldefiniert, liegt in $A$ und nimmt die verlangten Werte an. + \item Schritt: Zu jeder stetigen Funktion $f\colon K\to\mathbb{R}$, jedem Punkt $x\in K$ und jedem $\varepsilon>0$ gibt es eine Funktion $g\in A$ derart, dass $g(x)=f(x)$ und $g(y) \le f(y)+\varepsilon$ für alle $y\in K$. -Zu jedem $z\in K$ gibt es eine Funktion in $A$ mit +Zu jedem $z\in K$ gibt es eine Funktion $h_z\in A$ mit $h_z(x)=f(x)$ und $h_z(z) \le f(z)+\frac12\varepsilon$. Wegen der Stetigkeit von $h_z$ gibt es eine Umgebung $V_z$ von $z$, in der immer noch gilt $h_z(y)\le f(y)+\varepsilon$ für $y\in V_z$. @@ -428,8 +447,8 @@ Ausserdem ist $g(z)$ nach dem zweiten Schritt beliebig genau durch Funktionen in $A$ approximierbar. \item Schritt: Jede stetige Funktion $f\colon K\to\mathbb{R}$ kann beliebig genau durch Funktionen in $A$ approximiert werden. -Sei $\varepsilon > 0$. +Sei $\varepsilon > 0$. Nach dem vierten Schritt gibt es für jedes $y\in K$ eine Funktion $g_y$ derart, dass $g_y(y)=f(y)$ und $g_y(x) \le f(x) + \varepsilon$ für $x\in K$. @@ -501,13 +520,21 @@ f(\lambda_1)& & & \\ \end{pmatrix}. \] -\begin{satz} +Insgesamt haben wir damit den folgenden {\em Spektralsatz } für symmetrische +und hermitesche Matrizen erhalten. +\index{Spektralsatz}% + +\begin{satz}[Spektralsatz] \label{buch:eigenwerte:satz:spektralsatz} -Ist $A$ symmetrische oder selbstadjungiert Matrix und $f$ eine Funktion +\index{symmetrische Matrix}% +\index{Matrix, symmetrisch}% +\index{hermitesche Matrix}% +\index{Matrix, hermitesche}% +Ist $A$ symmetrische oder hermitesche Matrix und $f$ eine Funktion auf dem Spektrum $\operatorname{Sp}(A)$ von $A$. Dann gibt es genau eine Matrix $f(A)$, die Grenzwert jeder beliebigen -Folge $p_n(A)$ für Polynomfolgen, die $\operatorname{Sp}(A)$ gleichmässig -gegen $f$ konvergieren. +Folge $p_n(A)$ für Polynomfolgen, die auf $\operatorname{Sp}(A)$ +gleichmässig gegen $f$ konvergieren. \end{satz} \subsubsection{Unmöglichkeit der Approximation von $z\mapsto \overline{z}$ @@ -518,15 +545,10 @@ In diesem Abschnitt zeigen wir, dass sich die Funktion $z\mapsto\overline{z}$ auf der Einheitskreisscheibe $K=\{z\in\mathbb{C}\;|\; |z|\le 1\}$ nicht gleichmässig durch Polynome $p(z)$ mit komplexen Koeffizienten approximieren lässt. +Sei also $p_n(z)$ eine Folge von Polynomen, die auf der Einheitskreisscheibe +gleichmässig gegen $\overline{z}$ konvergieren, also +$\overline{z}=\lim_{n\to\infty}p_n(z)$. -Wäre eine solche Approximation möglich, dann könnte man $\overline{z}$ -auch durch eine Potenzreihe -\[ -\overline{z} -= -\sum_{k=0}^\infty a_kz^k -\] -darstellen. Das Wegintegral beider Seiten über den Pfad $\gamma(t) = e^{it}$ in der komplexen Ebene ist \begin{align*} @@ -541,12 +563,12 @@ i\biggl[ \frac{1}{i(k+1)} e^{it(k+1)}\biggr]_0^{2\pi} 0 \\ \oint_\gamma -\sum_{k=0}^\infty a_kz^k +p(z) \,dz &= -\sum_{k=0}^\infty a_k \oint_\gamma z^k\,dz +\sum_{k=0}^\infty a_{n,k} \oint_\gamma z^k\,dz = -\sum_{k=0}^\infty a_k\cdot 0 +\sum_{k=0}^\infty a_{n,k}\cdot 0 = 0 \\ @@ -558,12 +580,13 @@ i\int_0^{2\pi} \,dt = 2\pi i, \end{align*} dabei wurde $\overline{\gamma}(t)=e^{-it}$ verwendet. Insbesondere widersprechen sich die beiden Integrale. -Die ursprüngliche Annahmen, $\overline{z}$ lasse sich durch Polynome +Die ursprüngliche Annahme, $\overline{z}$ lasse sich durch Polynome gleichmässig approximieren, muss daher verworfen werden. \subsubsection{Der Satz von Stone-Weierstrass für komplexe Funktionen} Der Satz von Stone-Weierstrass kann nach dem vorangegangene Abschnitt -also nicht gelten. +also für komplexe Funktionen nicht gelten, wir haben eine Funktion +gefunden, die sich nicht approximieren lässt. Um den Beweis des Satzes~\ref{buch:satz:stone-weierstrass} auf komplexe Zahlen zu übertragen, muss im ersten Schritt ein Weg gefunden werden, den Betrag einer Funktion zu approximieren. @@ -585,6 +608,8 @@ nur dann bestimmen kann, wenn mit jeder Funktion aus $A$ auch die komplex konjugierte Funktion zur Verfügung steht. \begin{satz}[Stone-Weierstrass] +\index{Satz von Stone-Weierstrass für komplexe Funktionen} +\index{Stone-Weierstrass, Satz für komplexe Funktionen} Enthält eine $\mathbb{C}$-Algebra $A$ von stetigen, komplexwertigen Funktionen auf einer kompakten Menge $K$ die konstanten Funktionen, trennt sie Punkte und ist ausserdem mit jeder Funktion $f\in A$ auch @@ -603,7 +628,8 @@ Beweis des reellen Satzes von Stone-Weierstrass übertragen lässt. \subsection{Normale Matrizen \label{buch:subsection:normale-matrizen}} Aus dem Satz von Stone-Weierstrass für komplexe Matrizen kann man -jetzt einen Spektralsätze für eine etwas grössere Klasse von Matrizen +jetzt einen Spektralsatz für eine etwas grössere Klasse von Matrizen +\index{Spektralsatz}% ableiten, als im Satz~\ref{buch:eigenwerte:satz:spektralsatz} möglich war. Der Satz besagt, dass für eine beliebige Funktion $f$ auf dem Spektrum @@ -621,7 +647,7 @@ $\overline{z}$ eingesetzt werden. Dies erklärt aber noch nicht, wie für $n\times n$-Matrizen vorzugehen ist, wenn $n>1$ ist. -Die Notwendigkeit, die Variable $\overline{z}$ hinzuzunehmen +Die Notwendigkeit, die Variable $\overline{z}$ hinzuzunehmen, ergab sich aus der Anforderung, dass der Betrag aus $|z|^2=z\overline{z}$ konstruiert werden können muss. Insbesondere muss beim Einsetzen eine Matrix entstehen, die nur @@ -660,6 +686,7 @@ $AA^* = A^*A$ ist. \begin{definition} Eine Matrix $A\in M_n(\mathbb{C})$ heisst {\em normal}, wenn $AA^*=A^*A$ gilt. +\index{normal}% \end{definition} \subsubsection{Beispiele normaler Matrizen} @@ -667,12 +694,16 @@ Eine Matrix $A\in M_n(\mathbb{C})$ heisst {\em normal}, wenn $AA^*=A^*A$ gilt. \begin{enumerate} \item Hermitesche und Antihermitesche Matrizen sind normal, denn solche +\index{hermitesch}% +\index{anithermitesch}% Matrizen erfüllen $A^*=\pm A$ und damit \( AA^* = \pm A^2 = A^*A. \) \item Symmetrische und antisymmetrische Matrizen sind normal, +\index{symmetrisch}% +\index{antisymmetrisch}% denn aus $A=A^t$ folgt $A^*=\overline{A}^t$ und damit \begin{align*} AA^* &= A\overline{A}^t = @@ -681,8 +712,10 @@ A^*A &= \end{align*} \item Unitäre Matrizen $U$ sind normal, das $UU^*=I=U^*U$ gilt. +\index{unitär}% \item Orthogonale Matrizen sind normal wegen $O(n) = U(n) \cap M_n(\mathbb{R})$. +\index{orthogonal}% \end{enumerate} Jede Matrix lässt sich durch Wahl einer geeigneten Basis in Jordansche @@ -692,6 +725,7 @@ Satz zeigt. \begin{satz} Eine Dreiecksmatrix ist genau dann normal, wenn sie diagonal ist. +\index{Dreiecksmatrix}% \end{satz} \begin{proof}[Beweis] @@ -699,15 +733,15 @@ Sei $A$ eine obere Dreiecksmatrix, das Argument für eine untere Dreiecksmatrix funktioniert gleich. Wir berechnen ein Diagonalelement für beide Produkte $AA^*$ und $A^*A$. Dazu brauchen wir die Matrixelemente von $A$ und $A^*$. -Bezeichnen wir die Matrixelemente von $A$ mit $a_{ij}$, dann hat $A^*$ -die Matrixelemente $(A^*)_{ij}=\overline{a}_{ji}$. +Bezeichnen wir die Matrixelemente von $A$ mit $a_{i\!j}$, dann hat $A^*$ +die Matrixelemente $(A^*)_{i\!j}=\overline{a}_{ji}$. Damit kann man die Diagonalelemente der Produkte als \begin{align*} (AA^*)_{ii} &= -\sum_{j=1}^n a_{ij}\overline{a}_{ij} +\sum_{j=1}^n a_{i\!j}\overline{a}_{i\!j} = -\sum_{j=i}^n |a_{ij}|^2 +\sum_{j=i}^n |a_{i\!j}|^2 \\ (A^*A)_{ii} &= @@ -716,11 +750,12 @@ Damit kann man die Diagonalelemente der Produkte als \sum_{j=1}^i |a_{ji}|^2 \end{align*} ausrechnen. -Der obere Ausdruck ist die quadrierte Länge der Zeile $i$ der Matrix $A$, -der untere ist die quadrierte Länge der Spalte $i$. +Der obere Ausdruck ist die quadrierte Länge des Zeilenvektors $i$ der Matrix $A$, +der untere ist die quadrierte Länge des Spaltenvektors $i$. Da die Matrix eine obere Dreiecksmatrix ist, hat die erste Spalte höchstens ein einziges von $0$ verschiedenes Element. -Daher kann auch die erste Zeile höchstens dieses eine Elemente haben. +Da die erste Spalte die gleiche Länge hat, +kann auch die erste Zeile höchstens dieses eine Element haben. Die Matrix hat daher Blockstruktur mit einem $1\times 1$-Block in der linken obere Ecke und einem $n-1$-dimensionalen Block für den Rest. Durch Wiederholen des Arguments für den $(n-1)\times (n-1)$-Block @@ -764,6 +799,27 @@ B^*A^*AB was zeigt, dass auch $AB$ normal ist. \end{proof} +\subsubsection{Spektralsatz für normale Matrizen} +Mit dem Begriff der normalen Matrix lässt sich der Spektralsatz nun +abschliessen formulieren. +Die vorangegangene Diskussion hat gezeigt, dass man einen solchen +Satz für nicht normale Matrizen nicht erwarten kann. + +\begin{satz} +\label{buch:eigenwerte:satz:spektralnormal} +Ist $A$ eine normale Matrix und $f$ eine Funktion auf dem Spektrum +$\operatorname{Sp}(A)$ von $A$. +Dann gibt es genau eine Matrix $f(A)$, die der Grenzwert +\[ +f(A) += +\lim_{n\to\infty} p_n(A,A^*) +\] +jeder beliebigen +Folge $p_n(z,\overline{z})$ von Polynomen in $z$ und $\overline{z}$ ist, +die auf $\operatorname{Sp}(A)$ gleichmässig gegen $f$ konvergieren. +\end{satz} + \subsubsection{Äquivalente Bedingungen} Es gibt eine grosse Zahl äquivalenter Eigenschaften für normale Matrizen. Die folgenden Eigenschaften sind äquivalent: @@ -775,24 +831,30 @@ Es gibt eine orthonormale Basis von Eigenvektoren von $A$ für $\mathbb{C}^n$ \item Für jeden Vektor $x\in\mathbb{C}^n$ gilt $\|Ax\|=\|A^*x\|$ \item -Die Forbenius-Norm der Matrix $A$ kann mit den Eigenwerten $\lambda_i$ +Die Frobenius-Norm der Matrix $A$ kann mit den Eigenwerten $\lambda_i$ +\index{Frobenius-Norm}% von $A$ berechnet werden: $\operatorname{Spur}(A^*A) = \sum_{i=1}^n |\lambda_i|^2$ \item Der hermitesche Teil $\frac12(A+A^*)$ und der antihermitesche Teil $\frac12(A-A^*)$ von $A$ vertauschen. +\index{hermitesch}% +\index{antihermitesch}% \item $A^*$ ist ein Polynom vom Grad $n-1$ in $A$. \item Es gibt eine unitäre Matrix $U$ derart, dass $A^*=AU$ +\index{unitär}% \item -Es gibt eine Polarzerlegugn $A=UP$ mit einer unitären Matrix $U$ und +Es gibt eine Polarzerlegung $A=UP$ mit einer unitären Matrix $U$ und +\index{Polarzerlegung} einer postiv semidefiniten Matrix $P$, die untereinander vertauschen. \item Es gibt eine Matrix $N$ mit verschiedenen Eigenwerten, mit denen $A$ vertauscht. \item -Wenn $A$ die (absteigend geordneten) singulärwerte $\sigma_i$ und +Wenn $A$ die (absteigend geordneten) Singulärwerte $\sigma_i$ und +\index{Singulärwert}% die absteigend geordneten Eigenwerte $\lambda_i$ hat, dann it $\sigma_i=|\lambda_i|$. \end{enumerate} diff --git a/buch/chapters/50-permutationen/chapter.tex b/buch/chapters/50-permutationen/chapter.tex index cf3f2ab..e3b6742 100644 --- a/buch/chapters/50-permutationen/chapter.tex +++ b/buch/chapters/50-permutationen/chapter.tex @@ -8,13 +8,17 @@ \lhead{Permutationen} \rhead{} Die Berechnung der Determinante einer Matrix macht ausgedehnten +\index{Determinante}% Gebrauch von der Tatsache, dass die Vertauschung von zwei Zeilen oder Spalten das Vorzeichen des Wertes der Determinanten dreht. In diesem Kapitel sollen die Permutationen der Zeilen abstrakt +\index{Permutation}% untersucht werden. Wir erhalten so eine abstrakte Permutationsgruppe. +\index{Permutationsgruppe}% Ihre Elemente lassen sich auch durch spezielle Matrizen beschreiben, eine Darstellung dieser Gruppe, die auch unmittelbar zu einer +\index{Darstellung}% Formel für die Determinante einer Matrix führt. \input{chapters/50-permutationen/endlich.tex} diff --git a/buch/chapters/50-permutationen/determinante.tex b/buch/chapters/50-permutationen/determinante.tex index 805235d..b30f9a2 100644 --- a/buch/chapters/50-permutationen/determinante.tex +++ b/buch/chapters/50-permutationen/determinante.tex @@ -17,12 +17,16 @@ Entwicklungssatz \begin{equation} \det(A) = -\sum_{i=1}^n (-1)^{i+j} a_{ij} \cdot \det(A_{ij}) +\sum_{i=1}^n (-1)^{i+j} a_{i\!j} \cdot \det(A_{i\!j}) \label{buch:permutationen:entwicklungssatz} \end{equation} von Laplace für die Determinante. -In den Produkten $a_{ij}\cdot\det(A_{ij})$ enthält -die Untermatrix $A_{ij}$ weder Elemente der Zeile $i$ noch der +\index{Entwicklungssatz}% +\index{Laplace, Entwicklungssatz von}% +Die Matrizen $A_{i\!j}$ sind die Minoren der Matrix $A$ +(siehe auch Seite~\pageref{buch:linear:def:minor}). +In den Produkten $a_{i\!j}\cdot\det(A_{i\!j})$ enthält +die Untermatrix $A_{i\!j}$ weder Elemente der Zeile $i$ noch der Zeile $j$. Die Summanden auf der rechten Seite von \eqref{buch:permutationen:entwicklungssatz} @@ -31,7 +35,7 @@ sind daher Produkte der Form a_{1i_1} a_{2i_2} a_{3i_3} -\dots +\cdots a_{ni_n}, \] in denen nur Faktoren aus verschiedenen Spalten der Matrix $A$ @@ -55,9 +59,10 @@ in der Form = \sum_{\sigma\in S_n} c(\sigma) +\, a_{1\sigma(1)} a_{2\sigma(2)} -\dots +\cdots a_{n\sigma(n)} \label{buch:permutationen:cformel} \end{equation} @@ -73,13 +78,15 @@ also = \sum_{\sigma \in S_n} c(\sigma) +\, (P_\tau)_{1\sigma(1)} (P_\tau)_{2\sigma(2)} -\dots +\cdots (P_\tau)_{n\sigma(n)} = c(\tau) -1\cdot 1\cdot\dots\cdot 1 +\, +1\cdot 1\cdots 1 = c(\tau). \] @@ -96,14 +103,14 @@ Die Determinante einer $n\times n$-Matrix $A$ kann berechnet werden als \operatorname{sgn}(\sigma) a_{1\sigma(1)} a_{2\sigma(2)} -\dots +\cdots a_{n\sigma(n)} = \sum_{\tau\in S_n} \operatorname{sgn}(\tau) a_{\tau(1)1} a_{\tau(2)2} -\dots +\cdots a_{\tau(n)n}. \] Insbesondere folgt auch $\det(A)=\det(A^t)$. diff --git a/buch/chapters/50-permutationen/endlich.tex b/buch/chapters/50-permutationen/endlich.tex index 700c0f2..2577b48 100644 --- a/buch/chapters/50-permutationen/endlich.tex +++ b/buch/chapters/50-permutationen/endlich.tex @@ -8,15 +8,24 @@ \rhead{Permutationen} Eine endliche Anzahl $n$ von Objekten können auf $n!$ Arten angeordnet werden. -Als Objektmenge nehmen wir $[n] = \{ 1,\dots,n\}$. +Da es in dieser Diskussion nicht auf die Art der Objekte ankommt, +nehmen wir als Objektmenge die Zahlen $[n] = \{ 1,\dots,n\}$ +(siehe auch Definition~\ref{buch:zahlen:def:[n]}). Die Operation, die die Objekte in eine bestimmte Reihenfolge bringt, ist eine Abbildung $\sigma\colon[n]\to[n]$. -Eine Permutation ist eine umkehrbare Abbildung $[n]\to[n]$. + +\begin{definition} +\label{buch:permutationen:def:permutation} +Eine {\em Permutation} ist eine umkehrbare Abbildung $[n]\to[n]$. +\index{Permutation} Die Menge $S_n$ aller umkehrbaren Abbildungen $[n]\to[n]$ mit der Verknüpfung von Abbildungen als Operation heisst die die {\em symmetrische Gruppe}. +\index{symmetrische Gruppe}% Die identische Abbildung $\sigma(x)=x$ ist das {\em neutrale Element} der Gruppe $S_n$ und wir auch mit $e$ bezeichnet. +\index{neutrales Element}% +\end{definition} \subsection{Permutationen als $2\times n$-Matrizen} Eine Permutation kann als $2\times n$-Matrix geschrieben werden: @@ -67,24 +76,28 @@ dass die Zahlen in der ersten Zeile ansteigend sind: \subsection{Zyklenzerlegung \label{buch:subsection:zyklenzerlegung}} Eine Permutation $\sigma\in S_n$ kann auch mit sogenanten Zyklenzerlegung +\index{Zyklenzerlegung}% analysiert werden. -Zum Beispiel: -\begin{center} -\includegraphics{chapters/50-permutationen/images/zyklenzerlegung.pdf} -\end{center} \begin{definition} Ein Zyklus $Z$ ist eine unter $\sigma$ invariante Teilmenge von $[n]$ minimaler Grösse. +\index{Zyklus}% +\index{invariante Teilmenge}% +\index{minimale Grösse}% Die Zyklenzerlegung ist eine Zerlegung von $[n]$ in Zyklen \[ [n] = -\cup_{i=1}^k Z_i, +\bigcup_{i=1}^k Z_i, \] wobei jede Menge $Z_i$ ein Zyklus ist. \end{definition} +Zum Beispiel: +\begin{center} +\includegraphics{chapters/50-permutationen/images/zyklenzerlegung.pdf} +\end{center} Der folgende Algorithmus findet die Zyklenzerlegung einer Permutation. \begin{satz} @@ -116,18 +129,21 @@ weiter bei 2. Mit Hilfe der Zyklenzerlegung von $\sigma$ lassen sich auch gewisse Eigenschaften von $\sigma$ ableiten. -Sei also $[n] = Z_1\cup\dots\cup Z_k$ die Zyklenzerlegung. -Für jedes Element $x\in S_i$ gilt $\sigma^{|S_i|}(x) = x$. +Sei also $[n] = Z_1\cup\dots\cup Z_k$ die Zyklenzerlegung von $\sigma$. +Für jedes Element $x\in Z_i$ gilt $\sigma^{|Z_i|}(x) = x$. Die kleinste Zahl $m$, für die $\sigma^m=e$ ist, das kleinste gemeinsame Vielfache der Zyklenlängen: \[ m = \operatorname{kgV} (|Z_1|,|Z_2|,\dots,|Z_k|). \] +\index{kgV} +\index{kleinstes gemeinsames Vielfaches} \subsection{Konjugierte Elemente in $S_n$} -Zwei Elemente $g_1,g_2\in G$ einer Gruppe heissen konjugiert, wenn +Zwei Elemente $g_1,g_2\in G$ einer Gruppe heissen {\em konjugiert}, wenn +\index{konjugiert} es ein Element $c\in G$ gibt derart, dass $cg_1c^{-1}=g_2$. -Bei Matrizen hat dies bedeutet, dass die beiden Matrizen durch +Bei Matrizen bedeutet dies bedeutet, dass die beiden Matrizen durch Basiswechsel auseinander hervorgehen. Dasselbe lässt sich auch im Kontext der symmetrischen Gruppe sagen. @@ -136,7 +152,18 @@ Es gibt also eine Permutation $\gamma\in S_n$ derart, dass $\sigma_1=\gamma\sigma_2\gamma^{-1}$ oder $\gamma^{-1}\sigma_1\gamma=\sigma_2$. Dann gilt auch für die Potenzen \begin{equation} -\sigma_1^k = \gamma\sigma_2^k\gamma^{-1}. +\sigma_1^k += +(\gamma\sigma_2\gamma^{-1})^k += +\gamma\sigma_2\underbrace{\gamma^{-1} +\gamma}_{\displaystyle=e}\sigma_2\underbrace{\gamma^{-1} +\gamma}_{\displaystyle=e}\sigma_2\underbrace{\gamma^{-1}\gamma}_{\displaystyle=e} +\cdots +\underbrace{\gamma^{-1} +\gamma}_{\displaystyle=e}\sigma_2\gamma^{-1} += +\gamma\sigma_2^k\gamma^{-1}. \label{buch:permutationen:eqn:konjpot} \end{equation} Ist $Z_i$ ein Zyklus von $\sigma_2$ und $x\in Z_i$, dann ist @@ -156,18 +183,21 @@ von $\sigma_1$ ab. Es folgt daher der folgende Satz: \begin{satz} -Sind $\sigma_1,\sigma_2\in S_n$ konjugiert $\sigma_1=\gamma\sigma_2\gamma^{-1}$ +Seien $\sigma_1,\sigma_2\in S_n$ konjugiert $\sigma_1=\gamma\sigma_2\gamma^{-1}$ mit dem $\gamma\in S_n$. Wenn $Z_1,\dots,Z_k$ die Zyklen von $\sigma_2$ sind, dann sind $\gamma(Z_1),\dots,\gamma(Z_k)$ die Zyklen von $\sigma_1$. \end{satz} -Die Zyklenzerlegung kann mit der Jordan-Normalform \ref{XXX} +Die Zyklenzerlegung kann mit der Jordan-Normalform +\index{Jordan-Normalform}% +(Abschnitt~\ref{buch:subsection:jordan-normalform}) einer Matrix verglichen werden. Durch einen Basiswechsel, welcher durch eine ``Konjugation'' +\index{Basiswechsel}% von Matrizen ausgedrückt wir, kann die Matrix in eine besonders übersichtliche Form gebracht werden. -Wenn $\sigma$ die Zyklenzerlegung $Z_1,\dots,Z_k$ mit Zyklenlängen +Wenn $\sigma$ die Zyklenzerlegung $Z_1,\dots,Z_k$ hat mit Zyklenlängen $l_i=|Z_i|$, dann kann man die Menge $[n]$ wie folgt in Teilmengen \begin{align*} X_1 &= \{1,\dots, l_1\}, diff --git a/buch/chapters/50-permutationen/images/komposition.pdf b/buch/chapters/50-permutationen/images/komposition.pdf Binary files differindex 9e532bf..3922096 100644 --- a/buch/chapters/50-permutationen/images/komposition.pdf +++ b/buch/chapters/50-permutationen/images/komposition.pdf diff --git a/buch/chapters/50-permutationen/images/komposition.tex b/buch/chapters/50-permutationen/images/komposition.tex index ef3ec65..2b73227 100644 --- a/buch/chapters/50-permutationen/images/komposition.tex +++ b/buch/chapters/50-permutationen/images/komposition.tex @@ -10,39 +10,71 @@ \usepackage{pgfplots} \usepackage{csvsimple} \usetikzlibrary{arrows,intersections,math} +\usetikzlibrary{decorations.pathreplacing} \begin{document} \def\skala{1} \begin{tikzpicture}[>=latex,thick,scale=\skala] -\begin{scope}[xshift=-4.5cm] +\begin{scope}[xshift=-4.0cm] + +\def\s{0.527} +\def\o{0.133} + +\def\verbindung#1{ +\fill[color=red!20] ({\o+(#1*\s)},-1.0) rectangle ({\o+(#1*\s)+0.3},0.0); +} + +\verbindung{1} +\verbindung{2} +\verbindung{3} +\verbindung{4} +\verbindung{5} +\verbindung{6} + + \node at (0,0) {$\displaystyle \sigma_1=\begin{pmatrix} 1&2&3&4&5&6\\ 2&1&3&5&6&4 +\end{pmatrix} +%$}; +=\begin{pmatrix} +1&2&3&4&5&6\\ +2&1&3&5&6&4 \end{pmatrix}$}; \node at (0,-1) {$\displaystyle \sigma_2=\begin{pmatrix} 1&2&3&4&5&6\\ 3&4&5&6&1&2 \end{pmatrix} -$}; -\end{scope} -\begin{scope} -\node at (0,0) {$\displaystyle -\begin{pmatrix} -1&2&3&4&5&6\\ -2&1&3&5&6&4 -\end{pmatrix}$}; -\node at (0,-1) {$\displaystyle += \begin{pmatrix} 2&1&3&5&6&4\\ 4&3&5&1&2&6 \end{pmatrix} $}; - \end{scope} -\begin{scope}[xshift=4.5cm] + +%\begin{scope} +%\node at (0,0) {$\displaystyle +%\begin{pmatrix} +%1&2&3&4&5&6\\ +%2&1&3&5&6&4 +%\end{pmatrix}$}; +%\node at (0,-1) {$\displaystyle +%\begin{pmatrix} +%2&1&3&5&6&4\\ +%4&3&5&1&2&6 +%\end{pmatrix} +%$}; +%\end{scope} + +\draw[decorate,decoration={brace,amplitude=4pt}] +(0,0.4) -- (0,-1.4); + +\begin{scope}[xshift=3.1cm] \node at (0,-0.5) {$\displaystyle +\Rightarrow\quad \sigma_2\sigma_1=\begin{pmatrix} 1&2&3&4&5&6\\ 4&3&5&1&2&6 diff --git a/buch/chapters/50-permutationen/matrizen.tex b/buch/chapters/50-permutationen/matrizen.tex index f7e9e31..037c441 100644 --- a/buch/chapters/50-permutationen/matrizen.tex +++ b/buch/chapters/50-permutationen/matrizen.tex @@ -7,11 +7,12 @@ \label{buch:section:permutationsmatrizen}} \rhead{Permutationsmatrizen} Die Eigenschaft, dass eine Vertauschung das Vorzeichen kehrt, ist -eine wohlebekannte Eigenschaft der Determinanten. +eine wohlbekannte Eigenschaft der Determinanten. In diesem Abschnitt soll daher eine Darstellung von Permutationen als Matrizen gezeigt werden und die Verbindung zwischen dem Vorzeichen einer Permutation und der Determinanten hergestellt werden. +\index{Determinante}% \subsection{Matrizen} Gegeben sei jetzt eine Permutation $\sigma\in S_n$. @@ -33,7 +34,7 @@ e_n&\mapsto e_{\sigma(n)} Die Matrix $P_\sigma$ der linearen Abbildung $f_{\sigma}$ hat in Spalte $i$ genau eine $1$ in der Zeile $\sigma(i)$, also \[ -(P_\sigma)_{ij} = \delta_{j\sigma(i)}. +(P_\sigma)_{i\!j} = \delta_{j\sigma(i)}. \] \begin{beispiel} @@ -61,27 +62,35 @@ A_\sigma \end{beispiel} \begin{definition} -Eine Permutationsmatrix ist eine Matrix $P\in M_n(\Bbbk)$ +\label{buch:permutationen:def:permutationsmatrix} +\index{Permutationsmatrix}% +Eine {\em Permutationsmatrix} ist eine Matrix $P\in M_n(\Bbbk)$ derart, die in jeder Zeile und Spalte genau eine $1$ enthalten ist, während alle anderen Matrixelemente $0$ sind. \end{definition} Es ist klar, dass aus einer Permutationsmatrix auch die Permutation der Standardbasisvektoren abgelesen werden kann. +\index{Standardbasisvektor}% Die Verknüpfung von Permutationen wird zur Matrixmultiplikation +\index{Matrixmultiplikation}% von Permutationsmatrizen, die Zuordnung $\sigma\mapsto P_\sigma$ ist also ein Homomorphismus -$ -S_n \to M_n(\Bbbk^n), -$ -es ist $P_{\sigma_1\sigma_2}=P_{\sigma_1}P_{\sigma_2}$. +\index{Homomorphismus}% +$S_n \to M_n(\Bbbk^n)$, +es ist +$P_{\sigma_1\sigma_2}=P_{\sigma_1}P_{\sigma_2}$. +$\sigma$ heisst gemäss Definition~\ref{buch:vektorenmatrizen:def:darstellung} +auch Darstellung der Gruppe $S_n$. +\index{Darstellung}% \subsection{Transpositionen} Transpositionen sind Permutationen, die genau zwei Elemente von $[n]$ vertauschen. -Wir ermitteln jetzt die Permutationsmatrix der Transposition $\tau=\tau_{ij}$ +Wir ermitteln jetzt die Permutationsmatrix der Transposition $\tau=\tau_{i\!j}$. +Sie ist \[ -P_{\tau_{ij}} +P_{\tau_{i\!j}} = \begin{pmatrix} 1& & & & & & & & \\ @@ -93,8 +102,7 @@ P_{\tau_{ij}} & & & & & &1& & \\ & & & & & & &\ddots& \\ & & & & & & & &1 -\end{pmatrix} -\qedhere +\end{pmatrix}. \] Die Permutation $\sigma$ mit dem Zyklus $1\to 2\to\dots\to l-1\to l\to 1$ @@ -148,7 +156,7 @@ P_{\tau_{l-1,l}} 0&0&1&0&\dots\\ \vdots&\vdots&\vdots&\vdots&\ddots \end{pmatrix} -\dots +\cdots \\ &= \begin{pmatrix} @@ -159,7 +167,7 @@ P_{\tau_{l-1,l}} \vdots&\vdots&\vdots&\vdots&\ddots \end{pmatrix} \\ -&\vdots\\ +&\quad\vdots\\ &= \begin{pmatrix} 0&0&0&0&\dots&0&1\\ @@ -168,15 +176,17 @@ P_{\tau_{l-1,l}} 0&0&1&0&\dots&0&0\\ \vdots&\vdots&\vdots&\vdots&\ddots&\vdots&\vdots\\ 0&0&0&0&\dots&1&0 -\end{pmatrix} +\end{pmatrix}. \end{align*} \subsection{Determinante und Vorzeichen} Die Transpositionen haben Permutationsmatrizen, die aus der Einheitsmatrix +\index{Einheitsmatrix}% +\index{Determinante}% entstehen, indem genau zwei Zeilen vertauscht werden. Die Determinante einer solchen Permutationsmatrix ist \[ -\det P_{\tau} = - \det E = -1 = \operatorname{sgn}(\tau). +\det P_{\tau} = - \det I = -1 = \operatorname{sgn}(\tau). \] Nach der Produktregel für die Determinante folgt für eine Darstellung der Permutation $\sigma=\tau_1\dots\tau_l$ als Produkt von Transpositionen, @@ -184,7 +194,7 @@ dass \begin{equation} \det P_{\sigma} = -\det P_{\tau_1} \dots \det P_{\tau_l} +\det P_{\tau_1} \cdots \det P_{\tau_l} = (-1)^l = diff --git a/buch/chapters/50-permutationen/transpositionen.tex b/buch/chapters/50-permutationen/transpositionen.tex index 748b2e9..b8f3d41 100644 --- a/buch/chapters/50-permutationen/transpositionen.tex +++ b/buch/chapters/50-permutationen/transpositionen.tex @@ -12,11 +12,12 @@ Es zeigt sich aber, dass sich eine Permutation in noch elementarere Bausteine zerlegen lässt, die Transpositionen. \begin{definition} -Einen Transposition $\tau\in S_n$ ist ein Permutation, die genau +Eine {\em Transposition} $\tau\in S_n$ ist ein Permutation, die genau zwei Elemente vertauscht. -Die Transposition $\tau_{ij}$ ist definiert durch +\index{Transposition}% +Die Transposition $\tau_{i\!j}$ ist definiert durch \[ -\tau_{ij}(x) +\tau_{i\!j}(x) = \begin{cases} i&\qquad x=j\\ @@ -41,7 +42,7 @@ Es ist also \[ \sigma = -\tau_{12} \tau_{23} \tau_{34} \dots \tau_{k-3,k-2} \tau_{k-2,k-1} \tau_{k-1,k}. +\tau_{12} \tau_{23} \tau_{34} \cdots \tau_{k-3,k-2} \tau_{k-2,k-1} \tau_{k-1,k}. \] \begin{satz} Jede Permutation $\sigma\in S_n$ lässt sich als ein Produkt von @@ -66,6 +67,8 @@ die Anzahl gerade ist oder nicht, ist sehr wohl eine charkterisierende Eigenschaft einer Permutation. \begin{definition} +\index{Vorzeichen}% +\index{Signum}% Das {\em Vorzeichen} oder {\em Signum} einer Permutation $\sigma$ ist die Zahl $\operatorname{sgn}(\sigma)=(-1)^k$, wenn $\sigma$ als Produkt von $k$ Transpositionen geschrieben werden kann. @@ -77,16 +80,18 @@ dann ist $\sigma^{-1}=\tau_k\dots\tau_2\tau_1$, sowohl $\sigma$ wie $\sigma^{-1}$ können also mit der gleichen Zahl von Transpositionen geschrieben werden, sie haben also auch das gleiche Vorzeichen. -Die Abbildung $S_n\to\{\pm\}$, die einer Permutation das Signum zuordnet, -ist ein Homomorphismus von Gruppen, +Die Abbildung $S_n\to\{\pm1\}$, die einer Permutation das Signum zuordnet, +ist ein Homomorphismus von Gruppen +(siehe Definition~\ref{buch:gruppen:def:homomorphismus}), +\index{Homomorphismus}% d.~h. \[ \operatorname{sgn}(\sigma_1\sigma_2) = \operatorname{sgn}(\sigma_1) -\operatorname{sgn}(\sigma_2) +\operatorname{sgn}(\sigma_2). \] -da ganz offensichtlich $\sigma_1\sigma_2$ mit $k_1+k_2$ Transpositionen +Da ganz offensichtlich $\sigma_1\sigma_2$ mit $k_1+k_2$ Transpositionen geschrieben kann, wenn $\sigma_i$ mit $k_i$ Transpositionen geschrieben werden kann. @@ -101,16 +106,24 @@ A_n \{ \sigma\in S_n\;|\; \operatorname{sgn}(\sigma)=1 \} -\subset S_n. += +\ker \operatorname{sgn} +\subset +S_n. \] +\index{Kern}% +\index{alterniernde Gruppe}% heisst die {\em alternierende Gruppe} der Ordnung $n$ Die Elemente von $A_n$ heissen auch die {\em geraden} Permutationen, +\index{gerade Permutation}% +\index{ungerade Permutation}% die Elemente von $S_n\setminus A_n$ heissen auch die {\em ungeraden} Permutationen. \end{definition} Die alternierende Gruppe $A_n$ ist tatsächlich eine Untergruppe. +\index{Untergruppe}% Zunächst ist $\operatorname{sgn}(e)=(-1)^0=1$, also ist $e\in A_n$. Es wurde schon gezeigt, dass mit jedem Element $\sigma\in A_n$ auch das inverse Element $\sigma^{-1}\in A_n$ ist. diff --git a/buch/papers/clifford/0_ElevatorPitch.tex b/buch/papers/clifford/0_ElevatorPitch.tex index ad9bcc2..a68ac8f 100644 --- a/buch/papers/clifford/0_ElevatorPitch.tex +++ b/buch/papers/clifford/0_ElevatorPitch.tex @@ -1,6 +1,12 @@ -Der Nutzen, welche die Clifford Algebra hat, lässt sich am besten mit den Worten des modernen Begründers dieser erläutern. +Der Nutzen, welche die Clifford Algebra hat, lässt sich am besten mit den Worten des modernen Begründers derselben erläutern. +\index{Clifford Algebra}% +\index{geometrische Algebra}% -"GA [Geometric Algebra i.a.W. Clifford Algebra] provides a unified language for the whole of physics and for much of mathematics and its applications that is conceptually and computationally superior to alternative mathematical systems in many application domains." \cite{clifford:hestenes_GA} +\begin{quote} +GA [Geometric Algebra i.~a.~W.~Clifford Algebra] +provides a unified language for the whole of physics and for much of mathematics and its applications that is conceptually and computationally superior to alternative mathematical systems in many application domains. \cite{clifford:hestenes_GA} +\end{quote} + +Im folgenden hoffen wir den Leser von der Nützlichkeit und der geometrischen Schönheit der Clifford Algebra zu überzeugen. -Im folgenden hoffen wir den Leser von der Nützlichkeit und der geometrischen Schönheit der Clifford Algebra zu überzeugen.
\ No newline at end of file diff --git a/buch/papers/clifford/10_Quaternionen.tex b/buch/papers/clifford/10_Quaternionen.tex index d04ea38..20220cb 100644 --- a/buch/papers/clifford/10_Quaternionen.tex +++ b/buch/papers/clifford/10_Quaternionen.tex @@ -6,12 +6,13 @@ \section{Quaternionen} \rhead{Quaternionen} -Wie die komplexen Zahlen eine Erweiterung der reellen Zahlen sind, sind die Quaternionen eine Erweiterung der komplexen Zahlen für den dreidimensionalen Raum. Sie haben, wie die komplexen Zahlen, eine drehstreckende Eigenschaft. +Wie die komplexen Zahlen eine Erweiterung der reellen Zahlen sind, sind die Quaternionen eine Erweiterung der komplexen Zahlen für den dreidimensionalen Raum. +Sie haben wie die komplexen Zahlen eine drehstreckende Eigenschaft. Sie finden beispielsweise in der Computergrafik und Robotik Anwendung. Die Quaternionen -\begin{align} -q = w + xi + yj + zk \quad w,x,y,z \in \mathbb{R}\enspace q \in \mathbb{H} -\end{align} +\begin{align*} +q = w + xi + yj + zk \quad w,x,y,z \in \mathbb{R},\enspace q \in \mathbb{H} +\end{align*} können dabei eine Drehstreckung mit \begin{align} \label{QuatRot} \begin{split} @@ -19,100 +20,140 @@ v \mapsto v'' = qvq^{-1} \end{split} \end{align} erreichen, falls $q,v,q^{-1} \in \mathbb{H}$ und die Zusammenhänge -\begin{align} +\begin{align*} \operatorname{Re}(q) = \operatorname{Re}(q^{-1})\quad\text{und}\quad \operatorname{Im}(q) = -\operatorname{Im}(q^{-1}) -\end{align} -gelten. Auffallend ist bei der abbildenden Funktion \eqref{QuatRot} schon die Ähnlichkeit zur Funktion \eqref{rotGA} im Abschnitt Drehung. Man könnte sich nun fragen wieso es drei imaginäre Einheiten $i,j,k$ gibt und nicht zwei, was doch näherliegender wäre. Der Grund liegt darin, weil es in drei Dimensionen drei Drehachsen gibt, anstatt nur eine. Wie im Abschnitt Drehung beschrieben, können wir auch hier die drei Drehungen durch Linearkombinationen von drei Bivektoren beschreiben. In der geometrischen Algebra ist es leicht herauszufinden, wie viele Imaginärteile für jede weitere Dimension existieren. Dabei muss man nur die Anzahl der unabhängigen Bivektoren ermitteln. In vier Dimensionen würden es beispielsweise durch alle Vektorkombinationen von $\mathbf{e}_1, \mathbf{e}_2,\mathbf{e}_3, \mathbf{e}_4$ insgesamt 8 Bivektoren existieren (Nicht 16, da $\mathbf{e}_{ij} = -\mathbf{e}_{ji}$ nicht unabhängig voneinander sind). +\end{align*} +gelten. +Auffallend ist bei der abbildenden Funktion \eqref{QuatRot} schon die Ähnlichkeit zur Funktion \eqref{rotGA} im Abschnitt~\ref{clifford:section:drehung}. +Man könnte sich nun fragen wieso es drei imaginäre Einheiten $i,j,k$ gibt und nicht zwei, was doch näherliegender wäre. +Der Grund liegt darin, weil es in drei Dimensionen drei Drehachsen gibt, anstatt nur eine. +Wie im Abschnitt~\ref{clifford:section:drehung} beschrieben, können wir auch hier die drei Drehungen durch Linearkombinationen von drei Bivektoren beschreiben. +In der geometrischen Algebra ist es leicht herauszufinden, wie viele Imaginärteile für jede weitere Dimension existieren. +Dabei muss man nur die Anzahl der unabhängigen Bivektoren ermitteln. +In vier Dimensionen würden es beispielsweise durch alle Vektorkombinationen von $\mathbf{e}_1, \mathbf{e}_2,\mathbf{e}_3, \mathbf{e}_4$ insgesamt 8 Bivektoren existieren (Nicht 16, da $\mathbf{e}_{i\!j} = -\mathbf{e}_{ji}$ nicht unabhängig voneinander sind). -Ohne die geometrische Algebra, haben wir jetzt aber leider ein kleines Problem. Für die Darstellung der Quaternionen bräuchten wir insgesamt vier Achsen. Drei für die imaginären Einheiten und eine für die reelle Einheit. Ein weiterer Nachteil in visueller Hinsicht entsteht beim Anwenden einer Quaternion auf einen Vektor. Sie befinden sich nicht im gleichen Raum und müssen zuerst durch +Ohne die geometrische Algebra haben wir jetzt aber leider ein kleines Problem. +Für die Darstellung der Quaternionen bräuchten wir insgesamt vier Achsen. +Drei für die imaginären Einheiten und eine für die reelle Einheit. +Ein weiterer Nachteil in visueller Hinsicht entsteht beim Anwenden einer Quaternion auf einen Vektor. +Sie befinden sich nicht im gleichen Raum und müssen zuerst durch \begin{align} \mathbf{v} = x\mathbf{\hat{x}} + y\mathbf{\hat{y}} + z \mathbf{\hat{z}} \in \mathbb{R}^3 \enspace\mapsto\enspace v = 0 + xi + yj + zk \in \mathbb{H} \end{align} ineinander umgewandelt werden, um damit zu rechnen. \subsection{Geometrische Algebra} -Die geometrische Algebra kann beide Probleme beheben. Die Quaternionen können, wie schon im zweidimensionalen Fall durch die gerade Grade $G_3^+(\mathbb{R}) \cong \mathbb{H}$ dargestellt werden. Da wir uns jetzt aber in $G_3(\mathbb{R})$ befinden haben wir drei Basisvektoren $\mathbf{e}_1, \mathbf{e}_2, \mathbf{e}_3$ und können somit drei Bivektoren $\mathbf{e}_{12}, \mathbf{e}_{23}, \mathbf{e}_{31}$ bilden. +Die geometrische Algebra kann beide Probleme beheben. +Die Quaternionen können, wie schon im zweidimensionalen Fall durch die Multivektoren gerader Grade $G_3^+(\mathbb{R}) \cong \mathbb{H}$ dargestellt werden. +Da wir uns jetzt aber in $G_3(\mathbb{R})$ befinden haben wir drei Basisvektoren $\mathbf{e}_1, \mathbf{e}_2, \mathbf{e}_3$ und können somit drei Bivektoren $\mathbf{e}_{12}, \mathbf{e}_{23}, \mathbf{e}_{31}$ bilden. \begin{definition} Die Multivektoren mit drehstreckenden Eigenschaften in $G_3(\mathbb{R})$ sind - \begin{align} + \begin{align*} \mathbf{q} = w + x\mathbf{e}_{12} + y\mathbf{e}_{23} + z\mathbf{e}_{31} \quad w,x,y,z \in \mathbb{R}\enspace \mathbf{q} \in \mathbb{G}_3^+. - \end{align} + \end{align*} \end{definition} -Die Probleme werden dadurch gelöst, da wir die Bivektoren im Raum nicht durch einzelne Achsen darstellen müssen, sondern sie als eine orientiere Fläche darstellen können. Anstatt die Vektoren in Quaternionen umzurechnen, können wir jetzt die Vektoren separat im gleichen Raum, wie in Abbildung \ref{BildQuaternionen} gezeigt, darstellen. +Die Probleme werden dadurch gelöst, dass wir die Bivektoren im Raum nicht durch einzelne Achsen darstellen müssen, sondern sie als eine orientiere Fläche darstellen können. +Anstatt die Vektoren in Quaternionen umzurechnen, können wir jetzt die Vektoren separat im gleichen Raum, wie in Abbildung \ref{BildQuaternionen} gezeigt, darstellen. \begin{figure} \centering \includegraphics{papers/clifford/3d/dq.pdf} - \caption{Darstellung eines Quaternion $\mathbf{q}$ und eines Vektors $\mathbf{v}$ im selben Raum} + \caption{Darstellung eines Quaternion $\mathbf{q}$ und eines Vektors $\mathbf{v}$ im selben Raum.} \label{BildQuaternionen} \end{figure} Betrachten wir nun das Produkt -\begin{align} +\begin{align*} \mathbf{qv} &= (w + x\mathbf{e}_{12} + y\mathbf{e}_{23} + z\mathbf{e}_{31})(a\mathbf{e}_1+b\mathbf{e}_2+c\mathbf{e}_3)\\ &= \underbrace{w(a\mathbf{e}_1+b\mathbf{e}_2+c\mathbf{e}_3)}_{\displaystyle{w\mathbf{v}}} + \underbrace{x(-a\mathbf{e}_2+b\mathbf{e}_1}_{\displaystyle{x\mathbf{v}_{\angle 90^\circ, \parallel \mathbf{e}_{12}}}}+c\mathbf{e}_{123}) + \underbrace{y(-b\mathbf{e}_3+c\mathbf{e}_2}_{\displaystyle{y\mathbf{v}_{\angle 90^\circ, \parallel \mathbf{e}_{23}}}}+a\mathbf{e}_{123}) + \underbrace{z(a\mathbf{e}_3-c\mathbf{e}_1}_{\displaystyle{z\mathbf{v}_{\angle 90^\circ, \parallel \mathbf{e}_{31}}}}-b\mathbf{e}_{123}). -\end{align} -Wie schon im zweidimensionalen Fall \eqref{GAdrehstreck}, beschreibt im dreidimensionalen Fall mit drei Bivektoren jeder Bivektoranteil um wie viel der um 90° gedrehte zu der Ebene parallele Teil des Vektors gestreckt wird. Dabei dreht jeder Bivektor den Vektor um eine andere Achse und man sieht die drehstreckende Eigenschaft ähnlich zu den komplexen Zahlen. Der störende Trivektoranteil $(xc+ya+zb)\mathbf{e}_{123}$ bekommt man aber nur weg, indem man, wie in der Drehungsgleichung \eqref{QuatRot}, mit der Inversen Quaternion $\mathbf{q}^{-1}$ multipliziert, wobei die drehgestreckten parallelen Anteile nochmals drehgestreckt werden. Da nur so der Trivektoranteil wegfällt, sieht man, dass die Drehungsformel, der einzige vernünftige Weg ist, mit Quaternionen zu arbeiten. +\end{align*} +Wie schon im zweidimensionalen Fall \eqref{GAdrehstreck} beschreibt +im dreidimensionalen Fall mit drei Bivektoren jeder Bivektoranteil, +um wie viel der um $90^\circ$ gedrehte, zu der Ebene parallele Teil +des Vektors gestreckt wird. +Dabei dreht jeder Bivektor den Vektor um eine andere Achse und man sieht die drehstreckende Eigenschaft ähnlich zu den komplexen Zahlen. +Der störende Trivektoranteil $(xc+ya+zb)\mathbf{e}_{123}$ bekommt man aber nur weg, indem man, wie in der Drehungsgleichung \eqref{QuatRot}, mit der Inversen Quaternion $\mathbf{q}^{-1}$ multipliziert, wobei die drehgestreckten parallelen Anteile nochmals drehgestreckt werden. +Da nur so der Trivektoranteil wegfällt, sieht man, dass die Drehungsformel der einzige vernünftige Weg ist, mit Quaternionen zu arbeiten. -In der Computergraphik und Robotik macht eine Drehstreckung aber nicht viel Sinn. Wieso sollte ein Objekt bei einer Drehung zusätzlich noch grösser werden? Darum verwendet man sogenannte Einheitsquaternionen, welche den Betrag $|\mathbf{q}|=1$ haben und somit drehen sie die Objekte bzw. Vektoren lediglich. +In der Computergraphik und Robotik macht eine Drehstreckung aber nicht viel Sinn. +Wieso sollte ein Objekt bei einer Drehung zusätzlich noch grösser werden? Darum verwendet man sogenannte Einheitsquaternionen, welche den Betrag $|\mathbf{q}|=1$ haben und somit drehen sie die Objekte bzw.~Vektoren lediglich. \begin{definition} Die Einheitsquaternionen sind definiert als - \begin{align} + \begin{align*} \mathbf{q} = \cos(\alpha) + \sin(\alpha)(\tilde{x}\mathbf{e}_{12} + \tilde{y}\mathbf{e}_{23} + \tilde{z}\mathbf{e}_{31}) - \end{align} + \end{align*} \end{definition} Zudem setzten wir $\tilde{x}^2+\tilde{y}^2+\tilde{z}^2=1$, damit -\begin{align} +\begin{align*} |\mathbf{q}| = \sqrt{\cos(\alpha)^2 + \sin(\alpha)^2(\tilde{x}^2+\tilde{y}^2+\tilde{z}^2) } = \sqrt{\cos(\alpha)^2 + \sin(\alpha)^2} = 1. -\end{align} -Der Winkel $\alpha$ beschreibt dabei, wie im Bild \ref{BildQuaternionBeispiel2} gezeigt, den halben Winkel, um welchen der parallelen Anteil $\mathbf{v_{\parallel}}$ des Vektors $\mathbf{v}$ zur kombinierten Bivektorebene $sin(\alpha)(\tilde{x}\mathbf{e}_{12} + \tilde{y}\mathbf{e}_{23} + \tilde{z}\mathbf{e}_{31})$ gedreht wird. +\end{align*} +Der Winkel $\alpha$ beschreibt dabei, wie im Bild \ref{BildQuaternionBeispiel2} gezeigt, den halben Winkel, um welchen der parallelen Anteil $\mathbf{v_{\parallel}}$ des Vektors $\mathbf{v}$ zur kombinierten Bivektorebene $\sin(\alpha)(\tilde{x}\mathbf{e}_{12} + \tilde{y}\mathbf{e}_{23} + \tilde{z}\mathbf{e}_{31})$ gedreht wird. Um einen Vektor zu drehen, verwendet man die in Abschnitt 18.4 hergeleitete Formel \begin{align} \label{QuatRotGA} -\begin{split} \mathbf{v}'' = \mathbf{qvq}^{-1}, -\end{split} \end{align} wobei wie auch schon bei den Quaternionen gelten muss, dass \begin{align} \label{GAReIm} \operatorname{Re}(\mathbf{q}) = \operatorname{Re}(\mathbf{q}^{-1}) \quad\text{und}\quad \operatorname{Im}(\mathbf{q}) = -\operatorname{Im}(\mathbf{q}^{-1}). \end{align} -Der Grund für die Zusammenhänge \eqref{GAReIm} kann man durch die hergeleitete vereinfachte Drehungsgleichung \eqref{GAvereinfRot} sehen, weil durch den negierten Winkel $\theta$ der Reelle bzw. Grad 0 Anteil -\begin{align} -\operatorname{Re}(e^{-\theta \mathbf{e}_{12}}) = \operatorname{Re}(e^{\theta \mathbf{e}_{12}}) -\end{align} -und der imaginäre bzw. Grad 2 Anteil -\begin{align} -\operatorname{Im}(e^{-\theta \mathbf{e}_{12}}) = -\operatorname{Im}(e^{\theta \mathbf{e}_{12}}) -\end{align} -ist. Durch die geometrische Algebra sieht man nun, wieso es wichtig ist, bei Quaternionen für eine reine Drehstreckung mit $\mathbf{q}$ und $\mathbf{q}^{-1}$ beidseitig zu multiplizieren, sonst werden die senkrechten Anteile zu den Bivektorebenen ebenfalls beeinflusst, wie man im Abschnitt Drehung bei der Formel \eqref{RotAufPerpPar} sehen kann. +Der Grund für die Zusammenhänge \eqref{GAReIm} kann man durch die hergeleitete vereinfachte Drehungsgleichung \eqref{GAvereinfRot} sehen, weil durch den negierten Winkel $\vartheta$ der reelle bzw.~Grad~0-Anteil +\begin{align*} +\operatorname{Re}(e^{-\vartheta \mathbf{e}_{12}}) = \operatorname{Re}(e^{\vartheta \mathbf{e}_{12}}) +\end{align*} +und der imaginäre bzw.~Grad~2-Anteil +\begin{align*} +\operatorname{Im}(e^{-\vartheta \mathbf{e}_{12}}) = -\operatorname{Im}(e^{\vartheta \mathbf{e}_{12}}) +\end{align*} +ist. +Durch die geometrische Algebra sieht man nun, wieso es wichtig ist, bei Quaternionen für eine reine Drehstreckung mit $\mathbf{q}$ und $\mathbf{q}^{-1}$ beidseitig zu multiplizieren, sonst werden die senkrechten Anteile zu den Bivektorebenen ebenfalls beeinflusst, wie man im Abschnitt~\ref{clifford:section:drehung} bei der Formel \eqref{RotAufPerpPar} sehen kann. \begin{beispiel} - Eine Drehung eines Vektors $\mathbf{v}= 1\mathbf{e}_2$ um 90 Grad um die $\mathbf{e}_1$-Achse und danach 90 Grad um die $\mathbf{e}_2$-Achse. Dafür nehmen wir zuerst die Einheitsquaternion - \begin{align} + Eine Drehung eines Vektors $\mathbf{v}= 1\mathbf{e}_2$ um $90^\circ$ um die $\mathbf{e}_1$-Achse und danach $90^\circ$ um die $\mathbf{e}_2$-Achse. +Dafür nehmen wir zuerst die Einheitsquaternion + \begin{align*} \mathbf{q}_{23} &= \cos(\pi/4) + \sin(\pi/4)(1\mathbf{e}_{23}) = e^{(\pi/4)\mathbf{e}_{23}} &= \textstyle{\frac{\sqrt{2}}{2}}(1 + \mathbf{e}_{23})\\ \mathbf{q}_{23}^{-1} &&= \textstyle{\frac{\sqrt{2}}{2}} (1- \mathbf{e}_{23}) - \end{align} - welche um die $\mathbf{e}_{2}$-$\mathbf{e}_{3}$-Ebene um 90 Grad dreht und danach die Einheitsquaternion - \begin{align} + \end{align*} + welche um die $\mathbf{e}_{2}$-$\mathbf{e}_{3}$-Ebene um $90^\circ$ dreht und danach die Einheitsquaternion + \begin{align*} \mathbf{q}_{31} &= \cos(\pi/4) + \sin(\pi/4)(1\mathbf{e}_{31}) = e^{(\pi/4)\mathbf{e}_{31}} &= \textstyle{\frac{\sqrt{2}}{2}}(1 + \mathbf{e}_{31})\\ \mathbf{q}_{31}^{-1} &&= \textstyle{\frac{\sqrt{2}}{2}}(1 - \mathbf{e}_{31}), - \end{align} - welche um die $\mathbf{e}_{3}$-$\mathbf{e}_{1}$-Ebene um 90 Grad dreht. Um die vollständige Drehung zu beschreiben, können die Einheitsquaternionen multipliziert werden, wobei die Reihenfolge der Ausführung beachtet werden muss. Somit ist - \begin{align} \label{FormelBeispielQuaternion} - \mathbf{q} &= \mathbf{q}_{31}\mathbf{q}_{23} = \textstyle{\frac{\sqrt{2}}{2}}(1 + \mathbf{e}_{31})\textstyle{\frac{\sqrt{2}}{2}}(1 + \mathbf{e}_{23}) &= \textstyle{\frac{1}{2}}(1 + \mathbf{e}_{31} + \mathbf{e}_{23} + \mathbf{e}_{12})\\ - \mathbf{q}^{-1} &= \mathbf{q}_{23}^{-1}\mathbf{q}_{31}^{-1} = \textstyle{\frac{\sqrt{2}}{2}} (1- \mathbf{e}_{23})\textstyle{\frac{\sqrt{2}}{2}}(1 -\mathbf{e}_{31}) &= \textstyle{\frac{1}{2}}(1 - \mathbf{e}_{31} - \mathbf{e}_{23} - \mathbf{e}_{12}). - \end{align} + \end{align*} + welche um die $\mathbf{e}_{3}$-$\mathbf{e}_{1}$-Ebene um $90^\circ$ dreht. +Um die vollständige Drehung zu beschreiben, können die Einheitsquaternionen multipliziert werden, wobei die Reihenfolge der Ausführung beachtet werden muss. +Somit ist +\begin{align} +\label{FormelBeispielQuaternion} +\mathbf{q} +&= +\mathbf{q}_{31}\mathbf{q}_{23} += +\textstyle{\frac{\sqrt{2}}{2}}(1 + \mathbf{e}_{31})\textstyle{\frac{\sqrt{2}}{2}}(1 + \mathbf{e}_{23}) +& +&= +\textstyle{\frac{1}{2}}(1 + \mathbf{e}_{31} + \mathbf{e}_{23} + \mathbf{e}_{12}) +\\ +\mathbf{q}^{-1} +&= +\mathbf{q}_{23}^{-1}\mathbf{q}_{31}^{-1} += +\textstyle{\frac{\sqrt{2}}{2}} (1- \mathbf{e}_{23})\textstyle{\frac{\sqrt{2}}{2}}(1 -\mathbf{e}_{31}) +& +&= +\textstyle{\frac{1}{2}}(1 - \mathbf{e}_{31} - \mathbf{e}_{23} - \mathbf{e}_{12}). +\notag +\end{align} Wenn wir nun die Quaternion $\mathbf{q}$ auf den Vektor $\mathbf{v}$ anwenden, erhalten wir - \begin{align} + \begin{align*} \mathbf{v}'' = \mathbf{qvq}^{-1} &= \textstyle{\frac{1}{2}}(1 + \mathbf{e}_{31} + \mathbf{e}_{23} + \mathbf{e}_{12})(1\mathbf{e}_2)\textstyle{\frac{1}{2}}(1 - \mathbf{e}_{31} - \mathbf{e}_{23} - \mathbf{e}_{12})\\ &= \textstyle{\frac{1}{4}}(\mathbf{e}_2 + \mathbf{e}_{123} - \mathbf{e}_3 + \mathbf{e}_1)(1 - \mathbf{e}_{31} - \mathbf{e}_{23} - \mathbf{e}_{12})\\ &= (\textstyle{\frac{1}{4}} + \textstyle{\frac{1}{4}} + \textstyle{\frac{1}{4}} + \textstyle{\frac{1}{4}})\mathbf{e}_1 + (\textstyle{\frac{1}{4}} + \textstyle{\frac{1}{4}} - \textstyle{\frac{1}{4}} - \textstyle{\frac{1}{4}})\mathbf{e}_2 +\\ &\qquad(-\textstyle{\frac{1}{4}} + \textstyle{\frac{1}{4}} - \textstyle{\frac{1}{4}} + \textstyle{\frac{1}{4}})\mathbf{e}_3 + (\textstyle{\frac{1}{4}} - \textstyle{\frac{1}{4}} - \textstyle{\frac{1}{4}} + \textstyle{\frac{1}{4}})\mathbf{e}_{123}\\ &= 1e_1. - \end{align} + \end{align*} Anders betrachtet könnte man von der Formel \eqref{FormelBeispielQuaternion} sehen, dass der Drehwinkel - \begin{align} + \begin{align*} \alpha = \arccos(w) = \arccos(\textstyle{\frac{1}{2}}) = 60^\circ - \end{align} + \end{align*} und die Ebene der kombinierten Bivektoren wie in Abbildung \ref{BildQuaternionBeispiel2} aussieht. Somit kann man sich ebenfalls vorstellen, wie der parallele Anteil zur Ebene insgesamt um 120° gedreht wird, während der senkrechte Anteil unverändert bleibt. \end{beispiel} @@ -121,21 +162,27 @@ ist. Durch die geometrische Algebra sieht man nun, wieso es wichtig ist, bei Qua \centering \includegraphics{papers/clifford/3d/qq.pdf} - \caption{Beispiel für Drehung um 90 Grad je um die $\mathbf{e}_1$- und $\mathbf{e}_2$-Achse.} + \caption{Beispiel für Drehung um $90^\circ$ je um die $\mathbf{e}_1$- und $\mathbf{e}_2$-Achse.} \label{BildQuaternionBeispiel} \end{figure} \begin{figure} \centering \includegraphics{papers/clifford/3d/drehung.pdf} - \caption{Beim Beispiel wird der parallele Anteil um 120° gedreht während der senkrechte Anteil zur kombinierten Ebene (Bivektoraddition) gleich bleibt} + \caption{Beim Beispiel wird der parallele Anteil um 120° gedreht während der senkrechte Anteil zur kombinierten Ebene (Bivektoraddition) gleich bleibt.} \label{BildQuaternionBeispiel2} \end{figure} \subsection{Interpolation} -In der Computergrafik wird Interpolation verwendet, um eine flüssige Drehbewegung zu erreichen. Dabei wird die ganze gewünschte Drehbewegungen des Objektes in kleinere Drehbewegungen aufgeteilt, wobei diese zeitlich nacheinander auf das Objekt angewendet werden. Als Vergleich könnte man sagen, dass ein Film auch nur Bilder sind, welche zeitlich nacheinander gezeigt werden. Man kann dabei mit zwei verschiedenen Systemen arbeiten. +\index{Interpolation}% +In der Computergrafik wird Interpolation verwendet, um eine flüssige Drehbewegung zu erreichen. +Dabei wird die ganze gewünschte Drehbewegungen des Objektes in kleinere Drehbewegungen aufgeteilt, wobei diese zeitlich nacheinander auf das Objekt angewendet werden. +Als Vergleich könnte man sagen, dass ein Film auch nur Bilder sind, welche zeitlich nacheinander gezeigt werden. +Man kann dabei mit zwei verschiedenen Systemen arbeiten. \begin{itemize} - \item Mit den Eulerschen Winkeln, welche für die Meisten zwar intuitiver sind, aber dafür Nachteile haben, worauf ich in diesem Abschnitt eingehen werde. Dabei kann eine ganze Drehbewegung $\mathbf{v}'' = R\mathbf{v}$ durch die Drehmatrix + \item Mit den eulerschen Winkeln, welche für die meisten zwar intuitiver sind, aber dafür Nachteile haben, worauf +in diesem Abschnitt eingegangen werden soll. +Dabei kann eine ganze Drehbewegung $\mathbf{v}'' = R\mathbf{v}$ durch die Drehmatrix \begin{align} \label{GADrehmatrix} R = \underbrace{ @@ -154,8 +201,17 @@ In der Computergrafik wird Interpolation verwendet, um eine flüssige Drehbewegu \end{pmatrix} }_{\displaystyle{R_x(\alpha)}} \end{align} - dargestellt werden. Wichtig dabei zu sehen ist, dass die Drehbewegungen durch die einzelnen Matrizen nacheinander ausgeführt werden. Das bedeutet, wenn man die Reihenfolge vertauscht, bekommt man eine völlig andere Drehung. Man kann die Auswirkungen der Reihenfolge gut bei einem Gimbal im Bild \ref{BildReihenfolgeGimbal} sehen. Die Matrix ganz links in der Gleichung \eqref{GADrehmatrix} ist die, welche als letztes Angewendet wird. Somit bildet sie die Drehung des äusseren Rings, welche auch die zwei inneren Ringe und das Objekt mitdreht. Die Matrix ganz rechts hingegen bildet nur die Drehung des inneren Rings, welche nur das Objekt mitdreht. Man kann dabei erkennen, dass Vorgehen dabei sehr intuitiv ist, aber es kompliziert sein kann, eine gewünschte Drehbewegung auszuführen, da sich beim Drehen der äusseren Achse, sich auch die inneren drehen. Das bedeutet, wenn man sich eine Drehbewegung um die anfängliche x Achse mit $R_x(\alpha_2)$ wünscht, und vorher eine beliebige Drehung $R = R_z(\gamma_1) R_y(\beta_1) R_x(\alpha_1)$ ausgeführt hat, bekommt man nicht das richtige Ergebnis, da die anfängliche $x$-Achse durch die Drehmatrizen $R_z(\gamma_1)$ und $R_y(\beta_1)$ zu einer neuen, lokalen $x$-Achse wurde. - \item Mit den Quaternionen, welche die besondere Eigenschaft haben, dass eine Drehung immer um die globale Achsen ausgeführt wird, egal in welcher Drehungsposition sich das Objekt befindet. + dargestellt werden. +Wichtig dabei zu sehen ist, dass die Drehbewegungen durch die einzelnen Matrizen nacheinander ausgeführt werden. +Das bedeutet, wenn man die Reihenfolge vertauscht, bekommt man eine völlig andere Drehung. +Man kann die Auswirkungen der Reihenfolge gut bei einem Gimbal im Bild \ref{BildReihenfolgeGimbal} sehen. +Die Matrix ganz links in der Gleichung~\eqref{GADrehmatrix} ist die, welche als letztes angewendet wird. +Somit bildet sie die Drehung des äusseren Rings, welche auch die zwei inneren Ringe und das Objekt mitdreht. +Die Matrix ganz rechts hingegen bildet nur die Drehung des inneren Rings, welche nur das Objekt mitdreht. +Man kann dabei erkennen, dass das Vorgehen zwar sehr intuitiv ist, aber es kompliziert sein kann, eine gewünschte Drehbewegung auszuführen, da sich beim Drehen der äusseren Achse, sich auch die inneren drehen. +Das bedeutet, wenn man sich eine Drehbewegung um die anfängliche $x$-Achse mit $R_x(\alpha_2)$ wünscht, und vorher eine beliebige Drehung $R = R_z(\gamma_1) R_y(\beta_1) R_x(\alpha_1)$ ausgeführt hat, bekommt man nicht das richtige Ergebnis, da die anfängliche $x$-Achse durch die Drehmatrizen $R_z(\gamma_1)$ und $R_y(\beta_1)$ zu einer neuen, lokalen $x$-Achse wurde. + + \item Mit den Quaternionen, welche die besondere Eigenschaft haben, dass eine Drehung immer um die globale Achse ausgeführt wird, egal in welcher Drehungsposition sich das Objekt befindet. \end{itemize} Für Spielentwickler ist es darum meist sinnvoller Quaternionen für Drehbewegungen anzuwenden, als sich mit komplizierten Berechnungen mit Eulerschen Winkeln herumzuschlagen. @@ -167,11 +223,15 @@ Für Spielentwickler ist es darum meist sinnvoller Quaternionen für Drehbewegun \end{figure} \subsection{Gimbal-Lock} -Ein weiterer Nachteil der Eulerschen Winkel ist das Gimbal-Lock. Es entsteht dann, wenn zwei Ringe Deckungsgleich übereinander gedreht werden, wie man im Bild \eqref{BildReihenfolgeGimbal} sieht. Dabei verliert das Gimbal eine Drehrichtung, da der äussere und Innere Ring nun die gleiche Drehrichtung besitzen. Dies kann beispielsweise Probleme bei Spielen bei der Berechnung der Interpolation führen. Man hat dies bei älteren Spielen wie im Bild \ref{BildGimbalLock} dann gesehen, wenn plötzlich Gliedmassen bei den Spielermodellen in unnatürliche Richtungen gesprungen sind. +Ein weiterer Nachteil der Eulerschen Winkel ist das Gimbal-Lock. +Es entsteht dann, wenn zwei Ringe Deckungsgleich übereinander gedreht werden, wie man im Bild \eqref{BildReihenfolgeGimbal} sieht. +Dabei verliert das Gimbal eine Drehrichtung, da der äussere und innere Ring nun die gleiche Drehrichtung besitzen. +Dies kann beispielsweise Probleme bei Spielen bei der Berechnung der Interpolation führen. +Man hat dies bei älteren Spielen wie im Bild \ref{BildGimbalLock} dann gesehen, wenn plötzlich Gliedmassen bei den Spielermodellen in unnatürliche Richtungen gesprungen sind. \begin{figure} \centering \includegraphics[width=10cm]{papers/clifford/Bilder/GimbalLock.png} \caption{Interpolationsfehler durch Gimbal-Lock} \label{BildGimbalLock} -\end{figure}
\ No newline at end of file +\end{figure} diff --git a/buch/papers/clifford/1_Vektordarstellung.tex b/buch/papers/clifford/1_Vektordarstellung.tex index ac00a33..0bec4b6 100644 --- a/buch/papers/clifford/1_Vektordarstellung.tex +++ b/buch/papers/clifford/1_Vektordarstellung.tex @@ -1,9 +1,9 @@ \section{Vektoroperationen\label{clifford:section:Vektoroperationen}} \rhead{Vektoroperationen} -\subsection{Vektordarstellung\label{clifford:section:Vektordarstellung}} +Das grundsätzliche Ziel der geometrischen Algebra ist, die lineare Algebra zu einer Algebra mit Multiplikation zu erweitern und dieses Produkt dann geometrisch interpretieren, um geometrische Probleme lösen zu können. + \subsection{Vektordarstellung\label{clifford:section:Vektordarstellung}} Vektoren können neben der üblichen Spaltendarstellung, auch als Linearkombination aus Basisvektoren -\begin{equation} - \begin{split} +\begin{align*} \textbf{a} &= \begin{pmatrix} @@ -20,7 +20,8 @@ Vektoren können neben der üblichen Spaltendarstellung, auch als Linearkombinat + a_n\begin{pmatrix} 0 \\ 0 \\ \vdots \\ 1 - \end{pmatrix} \\\ + \end{pmatrix},\\ +\intertext{oder auch als} &= a_1\textbf{e}_1 + @@ -29,17 +30,15 @@ Vektoren können neben der üblichen Spaltendarstellung, auch als Linearkombinat \dots + a_n\textbf{e}_n = \sum_{i=1}^{n} a_i \textbf{e}_i - \qquad + \quad a_i \in \mathbb{R} , \textbf{e}_i \in \mathbb{R}^n - \end{split} -\end{equation} +\end{align*} dargestellt werden. -Diese Basisvektoren werden so gewählt, dass sie orthonormal sind. -Um die Darstellung zu vereinfachen werden sie durch $\textbf{e}_1 , \textbf{e}_2, \dots$ ersetzt. +Diese Basisvektoren werden so gewählt, dass sie orthonormiert sind. \begin{beispiel} Eine Linearkombination von Basisvektoren in $\mathbb{R}^4$ könnte wie folgt aussehen - \begin{equation} + \begin{equation*} \begin{pmatrix} 42 \\ 2 \\ 1291 \\ 4 \end{pmatrix} @@ -68,6 +67,6 @@ Eine Linearkombination von Basisvektoren in $\mathbb{R}^4$ könnte wie folgt aus 1291\textbf{e}_3 + 4\textbf{e}_4. - \end{equation} -Dieses Beispiel ist für einen vier dimensionalen Vektor, dies kann selbstverständlich für beliebig viele Dimensionen nach demselben Schema erweitert werden. + \end{equation*} +Dieses Beispiel ist für einen vierdimensionalen Vektor, dies kann selbstverständlich für beliebig viele Dimensionen nach demselben Schema erweitert werden. \end{beispiel} diff --git a/buch/papers/clifford/2_QuadratVektoren.tex b/buch/papers/clifford/2_QuadratVektoren.tex index 6c6fb7d..8916e15 100644 --- a/buch/papers/clifford/2_QuadratVektoren.tex +++ b/buch/papers/clifford/2_QuadratVektoren.tex @@ -1,7 +1,8 @@ \subsection{Quadrat von Vektoren} \subsubsection{Ziel der Multiplikation} -Was eine Addition von Vektoren bedeutet ist sehr intuitiv und auch leicht geometrisch darzustellen wie in Abbildung \ref{figure:addition}, was allerdings das Produkt von Vektoren ergibt mag anfänglich unintuitiv wirken. -\begin{figure}[htb] +\index{Multiplikation}% +Was eine Addition von Vektoren bedeutet ist sehr intuitiv und auch leicht geometrisch darzustellen wie in Abbildung \ref{figure:addition}. Was allerdings das Produkt von Vektoren ergibt, mag anfänglich unintuitiv wirken. +\begin{figure}[tb] \centering \begin{tikzpicture} \draw[thin,gray!40] (0,0) grid (4,4); @@ -16,107 +17,116 @@ Im Folgenden werden wir versuchen diese Operation ähnlich intuitiv darzustellen Um sinnvoll eine neue Operation zwischen zwei Elementen einer Algebra, in diesem Fall sind diese Elemente Vektoren, zu definieren, muss man überlegen, was das Ziel dieser Operation sein soll. -Als grundsätzliches Ziel wird definiert, dass das Quadrat eines Vektor dessen Länge im Quadrat ergibt, da dies auch in vielen anderen Bereichen der Mathematik,zum Beispiel bei komplexen Zahlen,so definiert ist. - -Zusätzlich soll auch das Assoziativgesetz für die Multiplikation von Vektoren gelten, dass heisst wir dürfen ausklammern -\begin{equation} +\begin{ziel} + \label{clifford:ziel} + Der Vektorraum der $n$-dimensionalen Vektoren soll zu einer Algebra so erweitert werden, dass das Quadrat von Vektoren durch die Länge des Vektors ausgedrückt werden kann. +\end{ziel} +Zusätzlich soll auch das Assoziativgesetz für die Multiplikation von Vektoren gelten, das heisst wir dürfen wie in +\index{Assoziativgesetz}% +\begin{equation*} \label{eq:assoziativ} \textbf{e}_i(\textbf{e}_j + \textbf{e}_k) = - \textbf{e}_i\textbf{e}_j + \textbf{e}_i\textbf{e}_k. -\end{equation} -Allerdings gilt das Kommutativgesetz leider, oder wie man sehen wird zum Glück, nur für skalare Elemente + \textbf{e}_i\textbf{e}_j + \textbf{e}_i\textbf{e}_k +\end{equation*} +ausklammern. +Allerdings gilt das Kommutativgesetz leider oder, wie man sehen wird, zum Glück nur für skalare Elemente wie in +\index{Kommutativgesetz}% \begin{equation} \label{eq:kommSkalar} a\textbf{e}_ib\textbf{e}_j = - ab\textbf{e}_i\textbf{e}_j \qquad a,b \in \mathbb{R} + ab\textbf{e}_i\textbf{e}_j \qquad a,b \in \mathbb{R}, \end{equation} -und nicht für Vektoren +aber nicht für Vektoren. Im Allgemeinen wird \begin{equation} \label{eq:kommVector} \textbf{e}_i\textbf{e}_j \neq - \textbf{e}_j\textbf{e}_i. + \textbf{e}_j\textbf{e}_i \end{equation} +sein. \subsubsection{Quadrieren eines Vektors} -Betrachten wir nun mit diesen Regeln das Quadrat eines Vektors. Zuerst werden die Vektoren als Linearkombinationen geschrieben +\index{Quadrieren}% +Betrachten wir nun mit diesen Regeln das Quadrat eines Vektors. +Zuerst werden die Vektoren als Linearkombinationen geschrieben: \begin{equation} \textbf{a}^2 = - \left ( + \biggl( \sum_{i=1}^{n} a_i \textbf{e}_i - \right ) - \left ( + \biggr) + \biggl( \sum_{i=1}^{n} a_i \textbf{e}_i - \right ) + \biggr) \label{eq:quad_a_1}. \end{equation} -Das Quadrat kann nun in zwei Summen aufgeteilt werden +Das Quadrat kann nun in zwei Summen \begin{equation} \textbf{a}^2 = \textcolor{red}{\sum_{i=1}^{n} a_i^2\textbf{e}_i^2} + \textcolor{blue}{\sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n a_ia_j\textbf{e}_i\textbf{e}_j } - \label{eq:quad_a_2}, + \label{eq:quad_a_2} \end{equation} -wobei die roten Summe die quadrierten Terme und die blaue Summe die Mischterme beinhaltet. Da $\textbf{e}_i^2 = 1$ gilt, weil das zuvor definierte Ziel des Quadrates eines Vektors dessen Länge ergibt und die Basisvektoren Länge 1 haben, wird dies nun eingesetzt +aufgeteilt werden, wobei die roten Summe die quadrierten Terme und die blaue Summe die Mischterme beinhaltet. +Wie zuvor in Ziel~\ref{clifford:ziel} definiert, ergibt das Quadrat eines Vektors dessen Länge + Da die Basisvektoren orthonormiert sind, muss $\textbf{e}_i^2 = 1$ gelten: \begin{equation} - \textbf{a}^2 = \textcolor{cyan}{\sum_{i=1}^{n} a_i^2} + \textcolor{orange}{\sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n a_ia_j\textbf{e}_i\textbf{e}_j}. + \textbf{a}^2 = \textcolor{red}{\sum_{i=1}^{n} a_i^2} + \textcolor{blue}{\sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n a_ia_j\textbf{e}_i\textbf{e}_j}. \label{eq:quad_a_3} \end{equation} \begin{beispiel} -Das Quadrat des Vektor $a$ in $\mathbb{R}^2$ ist -\begin{equation} - \begin{split} +Das Quadrat des Vektor $\textbf{a}$ in $\mathbb{R}^2$ ist +\begin{align*} \textbf{a}^2 - &= (a_1\textbf{e}_1+a_2\textbf{e}_2)(a_1\textbf{e}_1+a_2\textbf{e}_2) \\\ + &= (a_1\textbf{e}_1+a_2\textbf{e}_2)(a_1\textbf{e}_1+a_2\textbf{e}_2) \\ &= \textcolor{red}{a_1^2\textbf{e}_1^2 + a_2^2\textbf{e}_2^2} - + \textcolor{blue}{a_1\textbf{e}_1a_2\textbf{e}_2 + a_2\textbf{e}_2a_1\textbf{e}_2} \\\ - & = \textcolor{cyan}{a_1^2 + a_2^2} + \textcolor{orange}{a_1b\textbf{e}_1a_2\textbf{e}_2 + a_2\textbf{e}_2a_1\textbf{e}_2} - \end{split}. -\end{equation} + + \textcolor{blue}{a_1\textbf{e}_1a_2\textbf{e}_2 + a_2\textbf{e}_2a_1\textbf{e}_2} \\ + & = \textcolor{red}{a_1^2 + a_2^2} + \textcolor{blue}{a_1b\textbf{e}_1a_2\textbf{e}_2 + a_2\textbf{e}_2a_1\textbf{e}_2}. +\qedhere +\end{align*} \end{beispiel} -Die hellblaue Teil ist nun bereits die Länge im Quadrat, also das zuvor definierte Ziel der Multiplikation. -Daraus lässt sich schliessen, dass der restliche Teil dieser Gleichung null ergeben muss +Der rote Teil von \eqref{eq:quad_a_3} ist nun bereits die Länge im Quadrat, also das zuvor definierte Ziel der Multiplikation. +Daraus lässt sich schliessen, dass der restliche Teil dieser Gleichung \begin{equation} \label{eq:Mischterme_Null} \sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n a_ia_j\textbf{e}_i\textbf{e}_j = \textcolor{blue}{a_1a_2(\textbf{e}_1\textbf{e}_2 + \textbf{e}_2\textbf{e}_1)} + a_1a_3(\textbf{e}_1\textbf{e}_3 + \textbf{e}_3\textbf{e}_1) + \dots = 0. \end{equation} -Aus dieser Erkenntnis können weitere Eigenschaften für die Multiplikation hergeleitet werden. -Da dies für beliebige $a_i$ gelten muss werden alle Terme bis auf $a_1$ und $a_2$ gleich null gesetzt. Somit fallen alle Terme bis auf den blauen weg. Wird dies weiter vereinfacht ergibt sich -\begin{equation} -\begin{split} + ergeben muss. + Aus dieser Erkenntnis können weitere Eigenschaften für die Multiplikation hergeleitet werden. + +Da dies für beliebige $a_i$ gelten muss, werden alle Terme bis auf $a_1$ und $a_2$ gleich null gesetzt. +Somit fallen alle Terme bis auf den blauen weg. +Wird dies weiter vereinfacht, ergibt sich +\begin{equation*} +\begin{aligned} a_1a_2(\textbf{e}_1\textbf{e}_2 + \textbf{e}_2\textbf{e}_1) &= 0 \\ a_1a_2\textbf{e}_1\textbf{e}_2 &= -a_1a_2\textbf{e}_2\textbf{e}_1 \\ \textbf{e}_1\textbf{e}_2 &= -\textbf{e}_2\textbf{e}_1. -\end{split} -\end{equation} +\end{aligned} +\end{equation*} \begin{satz} - Die Multiplikation von Vektoren ist antikommutativ, wenn die multiplizierten Vektoren orthogonal sind, es gilt also - \begin{equation} - \textbf{e}_i\textbf{e}_j = -\textbf{e}_j\textbf{e}_i \quad \textrm{für} \quad \textbf{e}_i \perp \textbf{e}_j. - \end{equation} + Die Multiplikation von orthogonalen Vektoren ist antikommutativ: + \begin{equation*} + \mathbf{e}_i\mathbf{e}_j = -\mathbf{e}_j\mathbf{e}_i \quad \textrm{für} \quad \mathbf{e}_i \perp \mathbf{e}_j. + \end{equation*} \end{satz} -Dieses Wissen reicht nun bereits um alle Produkte der Basisvektoren zu berechnen, was in Tabelle \ref{tab:multip_vec} gemacht wurde. +Dieses Wissen reicht nun bereits, um alle Produkte der Basisvektoren zu berechnen, was in Tabelle \ref{tab:multip_vec} gemacht wurde. \begin{table} \begin{center} -\begin{tabular}{ |c|c|c|c|c|c| } +\begin{tabular}{ |c|ccccc| } \hline & $\textbf{e}_1$ & $\textbf{e}_2$ & $\dots$ & $\textbf{e}_{n-1}$ & $\textbf{e}_{n}$ \\ \hline $\textbf{e}_1$ & 1 & $\textbf{e}_1\textbf{e}_2$ & $\dots$ & $\textbf{e}_1\textbf{e}_{n-1}$ & $\textbf{e}_1\textbf{e}_{n}$ \\ - \hline $\textbf{e}_2$ & $-\textbf{e}_1\textbf{e}_2$ & 1 & $\dots$ & $\textbf{e}_2\textbf{e}_{n-1}$ & $\textbf{e}_2\textbf{e}_{n}$ \\ - \hline $\vdots$ & $\vdots$ & $\vdots$ & $\ddots$ & $\vdots$ & $\vdots$ \\ - \hline $\textbf{e}_{n-1}$ & $-\textbf{e}_1\textbf{e}_{n-1}$ & $-\textbf{e}_2\textbf{e}_{n-1}$ & $\dots$ & $1$ & $\textbf{e}_{n-1}\textbf{e}_{n}$ \\ - \hline $\textbf{e}_{n}$ & $-\textbf{e}_1\textbf{e}_{n}$ & $-\textbf{e}_2\textbf{e}_{n}$ & $\dots$ & $-\textbf{e}_{n-1}\textbf{e}_{n}$ & 1 \\ \hline \end{tabular} \end{center} \caption{Multiplikationstabelle für Vektoren} \label{tab:multip_vec} -\end{table}
\ No newline at end of file +\end{table} diff --git a/buch/papers/clifford/3_MultiplikationVektoren.tex b/buch/papers/clifford/3_MultiplikationVektoren.tex index 0969b89..d3c6dc5 100644 --- a/buch/papers/clifford/3_MultiplikationVektoren.tex +++ b/buch/papers/clifford/3_MultiplikationVektoren.tex @@ -1,34 +1,37 @@ \subsection{Multiplikation von Vektoren} -Was geschieht nun wenn zwei beliebige Vektoren, $u$ und $v$ -\begin{equation} +Was geschieht nun, wenn zwei beliebige Vektoren +\begin{equation*} \textbf{u} = \sum_{i=1}^{n} u_i \textbf{e}_i - \qquad + \quad + \text{und} + \quad \textbf{v} = \sum_{i=1}^{n} v_i \textbf{e}_i -\end{equation} +\end{equation*} miteinander multipliziert werden? - - Wieder werden die Vektoren zuerst als Linearkombinationen darstellen und danach in zwei Summen aufgeteilt, eine Summe mit quadrierten Termen und eine Summe mit Mischtermen + Wieder werden die Vektoren zuerst als Linearkombinationen dargestellt und danach in zwei Summen aufgeteilt, +eine Summe mit quadrierten Termen und eine Summe mit Mischtermen \begin{equation} - \begin{split} +% \begin{split} \textbf{u}\textbf{v} = - \left ( + \biggl( \sum_{i=1}^{n} u_i \textbf{e}_i - \right ) - \left ( + \biggr) + \biggl( \sum_{i=1}^{n} v_i \textbf{e}_i - \right) + \biggr) = \sum_{i=1}^n u_iv_i\underbrace{\textbf{e}_i^2}_{1} - + \sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j, - \end{split} + + \sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j. +% \end{split} \end{equation} -wobei die Summe der quadrierten Termen bereits bekannt vorkommen könnte, es ist nämlich das Skalarprodukt von $u$ und $v$. Die Summe der Mischterme bilden etwas neues, dass wir das äussere Produkt von $u$ und $v$ nennen. +Die Summe der quadrierten Terme ist bereits aus \eqref{eq:quad_a_3} bekannt, +sie ist nämlich das Skalarprodukt von $\textbf{u}$ und $\textbf{v}$. +Die Summe der Mischterme bilden etwas Neues, dass wir das äussere Produkt von $\textbf{u}$ und $\textbf{v}$ nennen. \begin{beispiel} - Multiplikation von Vektoren in $\mathbb{R}^2$ -\begin{equation} - \begin{split} + Die Multiplikation von Vektoren in $\mathbb{R}^2$ ergibt +\begin{align*} \textbf{u}\textbf{v} &= (u_1\textbf{e}_1 + u_2\textbf{e}_2)(v_1\textbf{e}_1 + v_2\textbf{e}_2) @@ -44,22 +47,21 @@ wobei die Summe der quadrierten Termen bereits bekannt vorkommen könnte, es ist &= \underbrace{(u_1v_1 + u_2v_2)}_{\text{Skalarprodukt}} + - \underbrace{(u_1v_2 - u_2v_1)\textbf{e}_1\textbf{e}_2}_{\text{Äusseres Produkt}} - \end{split} -\end{equation} + \underbrace{(u_1v_2 - u_2v_1)\textbf{e}_1\textbf{e}_2}_{\text{Äusseres Produkt}}. +\qedhere +\end{align*} \end{beispiel} -\subsubsection{Äusseres Produkt} -Das äussere Produkt von zwei Vektoren wird mit einem $\wedge$ dargestellt -\begin{equation} +\subsubsection{Das äussere Produkt} +Das äussere Produkt von zwei Vektoren wird mit einem $\wedge$ dargestellt: +\begin{equation*} \textbf{u}\wedge \textbf{v} = - \sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j -\end{equation} + \sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j . +\end{equation*} \begin{beispiel} Das äusseres Produkt von zwei Vektoren in $\mathbb{R}^3$ ist -\begin{equation} - \begin{split} - u \wedge v +\begin{align*} + \textbf{u} \wedge \textbf{v} &= u_1v_2\textbf{e}_1\textbf{e}_2 + @@ -78,40 +80,41 @@ Das äusseres Produkt von zwei Vektoren in $\mathbb{R}^3$ ist (u_1v_3 - v_3u_1)\textbf{e}_1\textbf{e}_3 + (u_2v_3 - u_3v_2)\textbf{e}_2\textbf{e}_3. - \end{split} -\end{equation} +\qedhere +\end{align*} \end{beispiel} -Im letzten Schritt des Beispiels wurden nun, mit Hilfe der antikommutativität des Produkts, die Vektorprodukte, welche die gleichen Einheitsvektoren beinhalten, zusammengefasst. Dieses Vorgehen kann man auch allgemein anwenden, wie in den Gleichungen \eqref{eq:u_wedge_v}-\eqref{eq:u_wedge_v_5} hergeleitet. Die Summe, +Im letzten Schritt des Beispiels wurden mit Hilfe der Antikommutativität des Produkts die Vektorprodukte zusammengefasst, welche die gleichen Einheitsvektoren beinhalten. +Dieses Vorgehen kann man auch allgemein anwenden, wie in den folgenden Gleichungen \eqref{eq:u_wedge_v}--\eqref{eq:u_wedge_v_5} gezeigt werden soll. +Die Summe \begin{align} \textbf{u}\wedge \textbf{v} &= \sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j, \label{eq:u_wedge_v} - \intertext{wird in zwei verschiedene Summen aufgeteilt. - Wobei die linke Summe jeweils den Basisvektor mit dem höheren Index an erster Stelle und die rechte Summe diesen jeweils an zweiter Stelle hat} - \label{eq:u_wedge_v_1} + \intertext{wird in zwei verschiedene Summen} &= \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j + - \sum_{\begin{subarray}{l}i,j=1\\j < i\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j. - \intertext{Nun werden die Indexe der zweiten Summe vertauscht} + \sum_{\begin{subarray}{l}i,j=1\\j < i\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j \label{eq:u_wedge_v_2} + \intertext{aufgeteilt. + Die linke Summe beinhaltet den Basisvektor mit dem höheren Index an erster Stelle und die rechte Summe diesen jeweils an zweiter Stelle.Nun werden die Indizes der zweiten Summe vertauscht, sie wird} &= \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j + - \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n u_jv_i\textbf{e}_j\textbf{e}_i, - \intertext{und diese wird nun mit Hilfe der Antikommutativität umgeformt zu} + \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n u_jv_i\textbf{e}_j\textbf{e}_i. + \intertext{Mit Hilfe der Antikommutativität kann dies umgeformt werden zu} &= \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j - \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n u_jv_i\textbf{e}_i\textbf{e}_j. - \intertext{Nun können die zwei Summen wieder zusammengefasst werden} + \intertext{Nun können die zwei Summen wieder zu} \label{eq:u_wedge_v_4} &= - \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n (u_iv_j -u_jv_i)\textbf{e}_i\textbf{e}_j. - \intertext{Der Term in der Summe könnte einem bereits bekannt vorkommen, es ist nämlich die Determinante einer Matrix mit $u$ und $v$ als ihre Spalten} + \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n (u_iv_j -u_jv_i)\textbf{e}_i\textbf{e}_j + \intertext{zusammengefasst werden. Der Koeffizient $(u_iv_j - u_jv_i)$ in der Summe ist wohlbekannt, es ist nämlich die Determinante einer $2\times2$ Matrix mit $\textbf{u}$ und $\textbf{v}$ als ihre Spalten} &= \label{eq:u_wedge_v_5} \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n \begin{vmatrix} @@ -119,15 +122,16 @@ Im letzten Schritt des Beispiels wurden nun, mit Hilfe der antikommutativität d u_j & v_j \end{vmatrix}\textbf{e}_i\textbf{e}_j. \end{align} -Die Determinante einer Matrix beschreibt die Fläche, welche von den Spaltenvektoren aufgespannt wird, wie in Abbildung \ref{figure:det} dargestellt. -\begin{figure}[htb] + +Die Determinante einer $2\times2$ Matrix beschreibt die Fläche, welche von den Spaltenvektoren aufgespannt wird, wie in Abbildung \ref{figure:det} dargestellt. +\begin{figure} \centering \begin{minipage}[t]{.45\linewidth} \centering - \begin{tikzpicture} + \begin{tikzpicture}[>=latex] \draw[thin,gray!40] (0,0) grid (4,4); - \draw[<->] (0,0)--(4,0) ; - \draw[<->] (0,0)--(0,4) ; + \draw[->] (0,0)--(4.2,0) node[right]{$x$}; + \draw[->] (0,0)--(0,4.2) node[above]{$y$}; \draw[line width=0,fill=gray!40] (0,0)--(3,1)--(4,3)--(1,2); \draw[line width=2pt,blue,-stealth](0,0)--(3,1) node[anchor=north west]{$\boldsymbol{u}$}; @@ -142,16 +146,16 @@ Die Determinante einer Matrix beschreibt die Fläche, welche von den Spaltenvekt \hfill% \begin{minipage}[t]{.45\linewidth} \centering - \begin{tikzpicture} + \begin{tikzpicture}[>=latex] \draw[thin,gray!40] (0,0) grid (4,4); - \draw[<->] (0,0)--(4,0) node[right]{$x$}; - \draw[<->] (0,0)--(0,4) node[above]{$y$}; + \draw[->] (0,0)--(4.2,0) node[right]{$x$}; + \draw[->] (0,0)--(0,4.2) node[above]{$y$}; \draw[line width=0,fill=gray!40] (0,0)--(3,1)--(4,3)--(1,2); \draw[line width=2pt,blue,-stealth](0,0)--(3,1) node[anchor=north west]{$\boldsymbol{u}$}; \draw[line width=2pt,red,-stealth](0,0)--(1,2) node[anchor=south east]{$\boldsymbol{v}$}; \draw[->] (2.15,1.5) arc (0:310:0.3); - \draw[black] (2,1.5)--(2.5,3.2) node[anchor = south]{$u\wedge v = \begin{vmatrix} + \draw[black] (2,1.5)--(3.3,3.2) node[anchor = south]{$u\wedge v = \begin{vmatrix} u_i & v_i \\ u_j & v_j \end{vmatrix} e_1e_2 = (u_iv_j - v_iu_j)\textbf{e}_1\textbf{e}_2$}; @@ -160,14 +164,16 @@ Die Determinante einer Matrix beschreibt die Fläche, welche von den Spaltenvekt \end{minipage} \end{figure} Das äussere Produkt besteht nun also aus der Summe - \(\sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n\) + %\(\sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n\) von Flächen \(\begin{vmatrix} u_i & v_i \\ u_j & v_j \end{vmatrix}\) -, welche in $\textbf{e}_i\textbf{e}_j$ aufgespannt sind, wie man in \ref{eq:u_wedge_v_5} sieht. +, welche in $\textbf{e}_i\textbf{e}_j$ aufgespannt sind, wie man in \eqref{eq:u_wedge_v_5} sieht. Dieses Produkt $\textbf{e}_i\textbf{e}_j$ der Basisvektoren interpretiert man als Umlaufrichtung. -Wobei die gebildete Fläche in Richtung des ersten Vektors umschritten wird. -Dies ist in Abbildung \ref{figure:wedge} dargestellt, wobei bei diesem Beispiel die Umlaufrichtung im Gegenuhrzeigersinn ist, da die Fläche in Richtung u umschritten wird. -Diese Fläche mit einer Richtung nennt man in der geometrischen Algebra einen Bivektor, da er eine Art zwei dimensionaler Vektor ist. +\index{Umlaufrichtung}% +Die gebildete Fläche wird in Richtung des ersten Vektors umschritten. +Dies ist in Abbildung \ref{figure:wedge} dargestellt, wobei bei diesem Beispiel die Umlaufrichtung im Gegenuhrzeigersinn ist, da die Fläche in Richtung $\textbf{u}$ umschritten wird. +Diese Fläche mit einer Richtung nennt man in der geometrischen Algebra einen Bivektor, da er eine Art zweidimensionaler Vektor ist. +\index{Bivektor}% diff --git a/buch/papers/clifford/4_GeometrischesProdukt.tex b/buch/papers/clifford/4_GeometrischesProdukt.tex index f18b90d..5f970c7 100644 --- a/buch/papers/clifford/4_GeometrischesProdukt.tex +++ b/buch/papers/clifford/4_GeometrischesProdukt.tex @@ -1,55 +1,67 @@ \subsection{Geometrisches Produkt} -Die Multiplikation von zwei Vektoren nennt man in der Clifford Algebra das geometrische Produkt, dieses können wir nun als Summe aus dem Skalar- und dem äusseren Produkt darstellen -\begin{equation} +\index{geometrisches Produkt} +Die Multiplikation von zwei Vektoren nennt man in der Clifford Algebra das geometrische Produkt, dieses können wir nun als Summe aus dem Skalar- und dem äusseren Produkt darstellen als +\begin{equation*} \textbf{u}\textbf{v} = \textbf{u}\cdot \textbf{v} + \textbf{u} \wedge \textbf{v}. -\end{equation} -Dieses Additionszeichen zwischen diesen zwei Produkten mag vielleicht ein wenig eigenartig wirken, da uns das Skalarprodukt ein Skalar und das äussere Produkt einen Bivektor zurück gibt. Was bedeutet es nun also diese beiden Elemente zu addieren? -Man kann sich die Addition wie bei den komplexen Zahlen vorstellen, wobei die imaginäre Einheit auch nicht explizit zu dem reelen Teil addiert werden kann, sondern die zwei Teile zusammen ein Objekt, eine komplexe Zahl bilden. +\end{equation*} +Das Additionszeichen zwischen diesen zwei Produkten mag vielleicht ein wenig eigenartig wirken, da uns das Skalarprodukt einen Skalar und das äussere Produkt einen Bivektor zurückgibt. Was bedeutet es nun also diese beiden Elemente zu addieren? +Man kann sich die Addition wie bei den komplexen Zahlen vorstellen, wobei die imaginäre Einheit auch nicht explizit zu dem reellen Teil addiert werden kann, sondern die zwei Teile zusammen ein Objekt, eine komplexe Zahl bilden. Dieses Objekt, also die Summe von verschiedenen Elemente der Clifford Algebra, wird Multivektor genannt. \begin{definition} -Ein Multivektor besteht aus den verschiedenen Bauteilen, wie zum Beispiel Vektoren, Bivektoren oder Trivektoren (Volumen mit einer Richtung), der Clifford Algebra. -\begin{equation} - M = \sum \left ( \prod a_i\textbf{e}_j \right) -\end{equation} +Neben dem eindimensionalen Vektor, dem zweidimensionalen Bivektor gibt es noch höher dimensionale Vektoren, wie zum Beispiel der dreidimensionale Trivektor. \end{definition} -Besteht eine Clifford Algebra aus n Basisvektoren so hat sie n Dimensionen, dies wird nicht wie in der linearen Algebra mit $\mathbb{R}^n$ sondern mit $G_n(\mathbb{R})$ beschrieben. Dies wird so geschrieben da man eine neue Algebrastruktur um die Vektoren einführt. +\index{Trivektor}% +\begin{definition} +Skalare heissen auch Elemente vom Grad~0, Vektoren haben den Grad~1, Bivektoren den Grad~2, Trivektoren den Grad~3 usw. +\end{definition} +\begin{definition} + Für das Produkt von Basisvektoren wird die Notation + \begin{equation} + e_ie_j = e_{i\!j} + \end{equation} + definiert. +\end{definition} +\begin{definition} + Die Linearkombination von Vektoren, Bivektoren und Produkten von Vektoren höheren Grades + bildet einen Multivektor + \begin{equation} + M = \sum \left ( \prod a_i\textbf{e}_j \right ). + \end{equation} +\end{definition} +Besteht eine Clifford Algebra aus $n$ Basisvektoren so hat sie $n$ Dimensionen, dies wird nicht wie in der linearen Algebra mit $\mathbb{R}^n$ sondern mit $G_n(\mathbb{R})$ beschrieben. Dies wird so geschrieben da man eine neue Algebrastruktur um die Vektoren einführt. +\index{GnR@$G_n(\mathbb{R})$}% +\index{Clifford Algebra}% \begin{beispiel} -Allgemeiner Multivektor in $G_3(\mathbb{R})$ -\begin{equation} +Allgemeiner Multivektor in $G_3(\mathbb{R})$: +\begin{equation*} M = a + \underbrace{b\textbf{e}_1 + c\textbf{e}_2 + d\textbf{e}_3}_{\text{Vektorteil}} + \underbrace{f\textbf{e}_1\textbf{e}_2 + g\textbf{e}_1\textbf{e}_3 + h\textbf{e}_2\textbf{e}_3 }_{\text{Bivektorteil}} + - \underbrace{k\textbf{e}_1\textbf{e}_2\textbf{e}_3}_{\text{Trivektorteil}} -\end{equation} + \underbrace{k\textbf{e}_1\textbf{e}_2\textbf{e}_3}_{\text{Trivektorteil}}. +\end{equation*} \end{beispiel} -\begin{definition} -Für das Produkt von Basisvektoren wird folgende Notation definiert - \begin{equation} - e_ie_j = e_{ij}. - \end{equation} -\end{definition} -Nun da das geometrische Produkt vollständig definiert wurde können Multiplikationstabellen für verschiedene Dimensionen $G_n(\mathbb{R})$ erstellt werden. In Tabelle \ref{tab:multip} ist dies für $G_3(\mathbb{R})$ gemacht. \begin{table} - \label{tab:multip} \begin{center} \begin{tabular}{ |c|ccc|ccc|c| } \hline - 1 & $\textbf{e}_1$ & $\textbf{e}_2$ &$\textbf{e}_3$ & $\textbf{e}_{12}$ & $\textbf{e}_{13}$ & $\textbf{e}_{23}$ & $\textbf{e}_{123}$\\ + $1$ & $\textbf{e}_1$ & $\textbf{e}_2$ &$\textbf{e}_3$ & $\textbf{e}_{12}$ & $\textbf{e}_{13}$ & $\textbf{e}_{23}$ & $\textbf{e}_{123}$\\ \hline $\textbf{e}_1$ & 1 & $\textbf{e}_{12}$ & $\textbf{e}_{12}$ & $\textbf{e}_2$ & $\textbf{e}_3$ & $\textbf{e}_{123}$ & $\textbf{e}_{23}$\\ - $\textbf{e}_2$ & $-\textbf{e}_{12}$ & 1 & $\textbf{e}_{23}$ & $-\textbf{e}_1$ & $-\textbf{e}_{123}$ & $\textbf{e}_3$ & $-\textbf{e}_{13}$\\ - $\textbf{e}_3$ & $-\textbf{e}_{13}$ & $-\textbf{e}_{23}$ & 1 & $\textbf{e}_{123}$ & $-\textbf{e}_1$ & $-\textbf{e}_2$ & $\textbf{e}_{12}$\\ + $\textbf{e}_2$ & $-\textbf{e}_{12}$ & $1$ & $\textbf{e}_{23}$ & $-\textbf{e}_1$ & $-\textbf{e}_{123}$ & $\textbf{e}_3$ & $-\textbf{e}_{13}$\\ + $\textbf{e}_3$ & $-\textbf{e}_{13}$ & $-\textbf{e}_{23}$ & $1$ & $\textbf{e}_{123}$ & $-\textbf{e}_1$ & $-\textbf{e}_2$ & $\textbf{e}_{12}$\\ \hline - $\textbf{e}_{12}$ & -$\textbf{e}_2$ & $\textbf{e}_1$& $\textbf{e}_{123}$ & -1 & $-\textbf{e}_{23}$ & $\textbf{e}_{13}$ & $-\textbf{e}_{3}$\\ - $\textbf{e}_{13}$ & $-\textbf{e}_{3}$ & $-\textbf{e}_{123}$ & $\textbf{e}_{1}$ & $\textbf{e}_{23}$ & -1 & $-\textbf{e}_{12}$ & $\textbf{e}_{2}$\\ - $\textbf{e}_{23}$ & $\textbf{e}_{123}$ & $-\textbf{e}_{3}$ & $\textbf{e}_{2}$ & $-\textbf{e}_{13}$ & $\textbf{e}_{12}$ & -1 & $-\textbf{e}_{1}$ \\ + $\textbf{e}_{12}$ & -$\textbf{e}_2$ & $\textbf{e}_1$& $\textbf{e}_{123}$ & $-1$ & $-\textbf{e}_{23}$ & $\textbf{e}_{13}$ & $-\textbf{e}_{3}$\\ + $\textbf{e}_{13}$ & $-\textbf{e}_{3}$ & $-\textbf{e}_{123}$ & $\textbf{e}_{1}$ & $\textbf{e}_{23}$ & $-1$ & $-\textbf{e}_{12}$ & $\textbf{e}_{2}$\\ + $\textbf{e}_{23}$ & $\textbf{e}_{123}$ & $-\textbf{e}_{3}$ & $\textbf{e}_{2}$ & $-\textbf{e}_{13}$ & $\textbf{e}_{12}$ & $-1$ & $-\textbf{e}_{1}$ \\ \hline - $\textbf{e}_{123}$ & $\textbf{e}_{23}$ & $-\textbf{e}_{13}$ & $\textbf{e}_{12}$ & $-\textbf{e}_{3}$& $\textbf{e}_{2}$ & $-\textbf{e}_{1}$ & -1 \\ + $\textbf{e}_{123}$ & $\textbf{e}_{23}$ & $-\textbf{e}_{13}$ & $\textbf{e}_{12}$ & $-\textbf{e}_{3}$& $\textbf{e}_{2}$ & $-\textbf{e}_{1}$ & $-1$ \\ \hline \end{tabular} \end{center} - \caption{Multiplikationstabelle für $G_3(\mathbb{R})$} + \caption{Multiplikationstabelle für $G_3(\mathbb{R})$ + \label{tab:multip}} \end{table} +Nun, da das geometrische Produkt vollständig definiert wurde, können Multiplikationstabellen für verschiedene Dimensionen $G_n(\mathbb{R})$ erstellt werden. In Tabelle \ref{tab:multip} ist dies für $G_3(\mathbb{R})$ gemacht. diff --git a/buch/papers/clifford/5_PolareDarstellung.tex b/buch/papers/clifford/5_PolareDarstellung.tex index 80fb49f..500b03e 100644 --- a/buch/papers/clifford/5_PolareDarstellung.tex +++ b/buch/papers/clifford/5_PolareDarstellung.tex @@ -1,29 +1,47 @@ \subsection{Polare Darstellung des geometrischen Produktes} -Beide Teile des geometrischen Produktes lassen sich durch trigonometrische Terme beschreiben. Das Skalarprodukt kann als -\begin{equation} - \textbf{u}\cdot \textbf{v} = |\textbf{u}||\textbf{v}|\cos{\alpha} -\end{equation} -beschrieben werden. Wobei $\alpha$ den Winkel zwischen den beiden Vektoren beschreibt. -\newline -Beim äusseren Produkt wurde bereits erwähnt, dass es aus dem Produkt der Fläche des von den zwei Vektoren aufgespannten Parallelogram und einer Umlaufrichtung beschrieben wird. Die Fläche eines Parallelograms lässt sich auch mit einen Sinus Term beschreiben -\begin{equation} +\index{Polardarstellung}% +Beide Teile des geometrischen Produktes lassen sich durch trigonometrische Terme beschreiben. +Das Skalarprodukt kann als +\begin{equation*} + \textbf{u}\cdot \textbf{v} = |\textbf{u}|\,|\textbf{v}|\cos{\alpha} +\end{equation*} +beschrieben werden, wobei $\alpha$ der Winkel zwischen $\textbf{u}$ und $\textbf{v}$ ist. + +Beim äusseren Produkt wurde bereits erwähnt, dass es aus dem Produkt der Fläche des von den zwei Vektoren aufgespannten Parallelograms und einer Umlaufrichtung beschrieben wird. +Die Fläche eines Parallelograms lässt sich auch mit einen Sinus-Term +\begin{equation*} \textbf{u} \wedge \textbf{v} = + \sum_{i<j} \begin{vmatrix} u_i & v_i \\ u_j & v_j \end{vmatrix}\textbf{e}_i\textbf{e}_j = - \underbrace{|u||v|\sin{\alpha}}_{\text{Fläche}}\textbf{e}_i\textbf{e}_j -\end{equation} -Wobei die Fläche des Parallelogram auf der von $\textbf{e}_i$ und $\textbf{e}_j$ aufgespannten Ebene liegen.\newline -Nun kann man diese Terme wieder zum geometrischen Produkt vereinen -\begin{equation} + \underbrace{|\textbf{u}|\,|\textbf{v}|\sin{\alpha}}_{\text{Fläche}}\textbf{b}_1\textbf{b}_2 +\end{equation*} +beschreiben. +Die Fläche des Parallelogramms liegt dabei auf der von $\textbf{b}_1$ und $\textbf{b}_2$ aufgespannten Ebene. + +Nun kann man diese Terme wieder zum geometrischen Produkt +\begin{equation*} \textbf{u}\textbf{v} = - |\textbf{u}||\textbf{v}|\cos{(\alpha)} + |\textbf{u}|\,|\textbf{v}|\cos{(\alpha)} + - |\textbf{u}||\textbf{v}|\sin{(\alpha)} \textbf{e}_i\textbf{e}_j + |\textbf{u}|\,|\textbf{v}|\sin{(\alpha)} \textbf{b}_1\textbf{b}_2 = - |\textbf{u}||\textbf{v}|(\cos{(\alpha)} + \sin{(\alpha)}\textbf{e}_i\textbf{e}_j) -\end{equation}
\ No newline at end of file + |\textbf{u}|\,|\textbf{v}|(\cos{(\alpha)} + \sin{(\alpha)}\textbf{b}_1\textbf{b}_2) +\end{equation*} +vereinen. +Daraus kann geschlussfolgert werden, dass +\begin{equation} + \textbf{u} \textbf{v}=-\textbf{v}\textbf{u} \quad \textrm{für} \quad \textbf{u}\perp \textbf{v} + \label{uperpv} +\end{equation} +und +\begin{equation} + \textbf{u} \textbf{v}=\textbf{v}\textbf{u} \quad \textrm{für} \quad \textbf{u} \parallel \textbf{v} + \label{uparallelv} +\end{equation} +gilt. diff --git a/buch/papers/clifford/6_PauliMatrizen.tex b/buch/papers/clifford/6_PauliMatrizen.tex index 4e82f28..70d28ad 100644 --- a/buch/papers/clifford/6_PauliMatrizen.tex +++ b/buch/papers/clifford/6_PauliMatrizen.tex @@ -5,15 +5,18 @@ % \section{Pauli-Matrizen} \rhead{Pauli-Matrizen} +\index{Pauli-Matrizen}% Was ist der beste Weg um einen Computeralgorithmus für die Rechenoperationen in der Clifford-Algebra zu erstellen? Man könnte versuchen einen textuellen Rechner zu implementieren der für die Elemente $\mathbf{e}_i$ hartkodierte Vereinfachungen ausführt. \begin{beispiel} Der Algorithmus weiss, dass er $a\mathbf{e}_1\cdot b\mathbf{e}_1$ zu $ab\cdot1$ vereinfachen kann. Dies ermöglicht zum Beispiel die Vereinfachung - \begin{align} - 3\mathbf{e}_1 \cdot 2\mathbf{e}_1 + 3\mathbf{e}_2 \Rightarrow 6 + 3\mathbf{e}_2 - \end{align} + \begin{equation*} + 3\mathbf{e}_1 \cdot 2\mathbf{e}_1 + 3\mathbf{e}_2 \quad\Rightarrow\quad 6 + 3\mathbf{e}_2 +\qedhere + \end{equation*} \end{beispiel} -Ein textueller Algorithmus ist aber sehr ineffizient. Die Pauli-Matrizen bilden eine elegante und schnellere Alternative, welche für die dreidimensionale Clifford-Algebra verwendet werden können und alle Operationen aus der Clifford-Algebra gleich wie die Matrixoperationen ausführen lassen. +Ein textueller Algorithmus ist aber sehr ineffizient. +Die Pauli-Matrizen bilden eine elegante und schnellere Alternative, welche für die dreidimensionale Clifford-Algebra verwendet werden können und alle Operationen aus der Clifford-Algebra gleich wie die Matrixoperationen ausführen lassen. \begin{definition} \label{def:defPauli} Die Matrizen \begin{align} \label{Pauli} @@ -40,7 +43,8 @@ Ein textueller Algorithmus ist aber sehr ineffizient. Die Pauli-Matrizen bilden \end{align} heissen Pauli-Matrizen ($\mathbf{e}_0$ = Skalare) \end{definition} -Die Matrix-Multiplikationen der Pauli-Matrizen führt auf die gleichen algebraischen Relationen, wie die Multiplikation der Elemente $\mathbf{e}_0, \mathbf{e}_1, \mathbf{e}_2, \mathbf{e}_3$. So lassen sich auch die restlichen Elemente der Clifford-Algebra erzeugen. +Die Matrix-Multiplikationen der Pauli-Matrizen führt auf die gleichen algebraischen Relationen, wie die Multiplikation der Elemente $\mathbf{e}_0, \mathbf{e}_1, \mathbf{e}_2, \mathbf{e}_3$. +So lassen sich auch die restlichen Elemente der Clifford-Algebra erzeugen. \begin{definition} \label{def:defPauli2} Die Bivektoren und Trivektoren hergeleitet aus den Pauli-Matrizen sind \begin{align} \label{Pauli2} @@ -67,7 +71,7 @@ Die Matrix-Multiplikationen der Pauli-Matrizen führt auf die gleichen algebrais \end{align} \end{definition} Dabei ist wichtig, dass sich die Matrizen gleich verhalten, wie es die Clifford-Algebra für die Basiselemente definiert hat. Zum Beispiel gilt in der Clifford-Algebra $\mathbf{e}_1^2=\mathbf{e}_0$ und $\mathbf{e}_{12}^2=-\mathbf{e}_0$, genau die selbe Relation gilt auch für die zugehörigen Matrizen, wie man durch die Matrizenrechnungen -\begin{align} +\begin{align*} \mathbf{e}_1^2 &= \begin{pmatrix} 0 & 1 \\ @@ -86,14 +90,16 @@ j & 0 \\ -1 & 0 \\ 0 & -1 \end{pmatrix} = -\mathbf{e}_0 -\end{align} -bestätigt. Man kann bei den Definitionen \ref{def:defPauli} und \ref{def:defPauli2} sehen, dass alle Matrizen linear unabhängig voneinander sind. Das bedeutet, dass wenn man die Matrizen der Basiselemente normal addiert und zu einer Matrix zusammenfasst, kann man anschliessend die einzelnen Anteile der Basiselemente wieder herauslesen. +\end{align*} +bestätigt. +Man kann bei den Definitionen \ref{def:defPauli} und \ref{def:defPauli2} sehen, dass alle Matrizen linear unabhängig voneinander sind. +Das bedeutet, dass wenn man die Matrizen der Basiselemente normal addiert und zu einer Matrix zusammenfasst, kann man anschliessend die einzelnen Anteile der Basiselemente wieder herauslesen. \begin{hilfssatz} Ein beliebiger Multivektor \begin{align} \label{MultiVektorAllg} M = a_0\mathbf{e}_0 + a_1\mathbf{e}_1 + a_2\mathbf{e}_3 + a_{12}\mathbf{e}_{12} + a_{23}\mathbf{e}_{23} + a_{31}\mathbf{e}_{31} + a_{123}\mathbf{e}_{123} \end{align} - erhält durch das einsetzten der Formel Matrizen \eqref{Pauli} und \eqref{Pauli2} die Form + erhält durch das Einsetzten der Matrizen aus \eqref{Pauli} und \eqref{Pauli2} die Form \begin{align} M = \begin{pmatrix} @@ -105,24 +111,25 @@ bestätigt. Man kann bei den Definitionen \ref{def:defPauli} und \ref{def:defPau Die Anteile treten zudem immer paarweise auf und können somit immer je durch zwei Gleichungen bestimmt werden. \begin{beispiel} Die Matrix - \begin{align} - M &= + \begin{equation*} + M = \begin{pmatrix} 1 & 0 \\ 0 & -1j \end{pmatrix} - \end{align} + \end{equation*} soll als Multivektor in der Form \eqref{MultiVektorAllg} geschrieben werden. Dafür entnehmen wir aus \eqref{MultivektorMatirx} die Gleichungen - \begin{align} + \begin{equation*} a_0 + a_3 = 1,\quad a_0 - a_3 = 0,\quad a_{12}+a_{123} = 0\enspace\text{und}\enspace -a_{12}+a_{123}=-1, - \end{align} + \end{equation*} aus denen man auf - \begin{align} + \begin{equation*} a_0 = \dfrac{1}{2},\quad a_3 = \dfrac{1}{2},\quad a_{12}=\dfrac{1}{2}\enspace\text{und}\enspace a_{123}=-\dfrac{1}{2} - \end{align} + \end{equation*} schliessen kann. Da die restlichen Realteile und Imaginärteile 0 sind, werden die anderen Anteile ebenfalls 0 sein. Daher ist - \begin{align} + \begin{equation*} M = \dfrac{1}{2} \mathbf{e}_0+ \dfrac{1}{2} \mathbf{e}_3 + \dfrac{1}{2} \mathbf{e}_{12} - \dfrac{1}{2} \mathbf{e}_{123}. - \end{align} +\qedhere + \end{equation*} \end{beispiel} -Die Clifford-Algebra ist bei der Darstellung durch Matrizen kein Ausnahmefall. Es lässt sich theoretisch jede algebraische Struktur durch Matrizen darstellen.
\ No newline at end of file +Die Clifford-Algebra ist bei der Darstellung durch Matrizen kein Ausnahmefall. Es lässt sich theoretisch jede algebraische Struktur durch Matrizen darstellen. diff --git a/buch/papers/clifford/7_Spiegelung.tex b/buch/papers/clifford/7_Spiegelung.tex index c79d908..f818958 100644 --- a/buch/papers/clifford/7_Spiegelung.tex +++ b/buch/papers/clifford/7_Spiegelung.tex @@ -5,14 +5,16 @@ % \section{Spiegelung} \rhead{Spiegelung} +\index{Spiegelung}% -Die Spiegelung ist eine grundlegende, geometrische Operation, aus welcher man weitere Operationen, wie beispielsweise die später beschriebene Drehung, ableiten kann. Da die geometrische Algebra für geometrische Anwendungen ausgelegt ist, sollte die Spiegelung auch eine einfache, praktische Formulierung besitzen. +Die Spiegelung ist eine grundlegende, geometrische Operation, aus welcher man weitere Operationen wie beispielsweise die später beschriebene Drehung ableiten kann. +Da die geometrische Algebra für geometrische Anwendungen ausgelegt ist, sollte die Spiegelung auch eine einfache, praktische Formulierung besitzen. \begin{figure} \centering - \begin{tikzpicture} + \begin{tikzpicture}[>=latex] \draw[thin,gray!40] (-3,-1) grid (3,3); - \draw[<->] (-3,0)--(3,0) node[right]{$a_1$}; - \draw[<->] (0,-1)--(0,3) node[above]{$a_2$}; + \draw[->] (-3.1,0)--(3.2,0) node[right]{$a_1$}; + \draw[->] (0,-1.1)--(0,3.2) node[above]{$a_2$}; \draw[blue, line width=1.0pt] (0,3)--(0,-1) node[anchor=south east]{$\sigma_u$}; \draw[line width=2pt,black,-stealth](0,0)--(2,2) node[anchor=south east]{$\boldsymbol{v}$}; \draw[line width=2pt,black,-stealth](0,0)--(-2,2) node[anchor=south east]{$\boldsymbol{v'}$}; @@ -28,18 +30,18 @@ Die Spiegelung ist eine grundlegende, geometrische Operation, aus welcher man we \label{BildSpiegelung} \end{figure} -\subsection{Linearen Algebra} -Aus der linearen Algebra ist bekannt, dass man eine Spiegelung an einer Ebene, wie in Abbildung \ref{BildSpiegelung} gezeigt, wie folgt beschreiben kann. +\subsection{Spiegelung in der linearen Algebra} +Aus der linearen Algebra ist bekannt, dass man eine Spiegelung an einer Ebene wie in Abbildung \ref{BildSpiegelung} gezeigt wie folgt beschreiben kann. \begin{definition} Die Abbildung der Spiegelung in der linearen Algebra mit dem Normalenvektor $\mathbf{\hat{u}}$ zur Spiegelebene ist \begin{equation} \label{RefLinAlg} \mathbf{v} = \mathbf{v_{\perp u}} + \mathbf{v_{\parallel u}} \enspace\mapsto\enspace \mathbf{v'} = \mathbf{v_{\perp u}} - \mathbf{v_{\parallel u}} = \mathbf{v} - 2 \cdot \mathbf{v_{\parallel u}}. \end{equation} \end{definition} -Es scheint für diese Formel \eqref{RefLinAlg} aber umständlich zu sein, weitere Spiegelungen mit weiteren Spiegelebenen anzufügen. Weil man $\mathbf{v_{\parallel u}}$ auch als Skalarprodukt $\mathbf{v_{\parallel u}} = \mathbf{\hat{u}} \cdot \mathbf{v}$ schreiben kann, ist es leicht diese Abbildung auch als Matrix darzustellen. Sei $\mathbf{\hat{u}}$ ein Normalenvektor auf die Spiegelungsebene, also $\mathbf{\hat{u}}\perp \sigma_u$, und sei ausserdem normiert $|\mathbf{\hat{u}}| = 1$, dann kann man die Spiegelung durch die Matrix -\begin{align} +Es scheint für diese Formel \eqref{RefLinAlg} aber umständlich zu sein, weitere Spiegelungen mit weiteren Spiegelebenen anzufügen. Weil man $\mathbf{v_{\parallel u}}$ auch als Skalarprodukt $\mathbf{v_{\parallel u}} = \mathbf{\hat{u}} \cdot \mathbf{v}$ schreiben kann, ist es leicht, diese Abbildung auch als Matrix darzustellen. Sei $\mathbf{\hat{u}}$ ein Normalenvektor auf die Spiegelungsebene, also $\mathbf{\hat{u}}\perp \sigma_u$, und sei ausserdem normiert $|\mathbf{\hat{u}}| = 1$, dann kann die Spiegelung durch die Matrix +\begin{align*} S = E - 2\mathbf{\hat{u}\hat{u}}^t -\end{align} +\end{align*} beschrieben werden. In zwei und drei Dimensionen ergibt die Berechnung \begin{align} \label{Spiegelmatrizen} S_2 = \begin{pmatrix} @@ -52,14 +54,17 @@ S_3 = \begin{pmatrix} -2u_1u_3 & -2u_2u_3 & 1-2u_3^2\\ \end{pmatrix}. \end{align} -Diese Spiegelmatrizen gehören der orthogonalen Matrizengruppe $S_n\in \text{O}(n)$ an. Die Matrizengruppe $\text{O}(n)$ hat die Eigenschaft $S_n^t S_n = E$, was bedeutet, dass die Länge und Winkel bei der Abbildung beibehalten bleiben. Zusätzlich sind die Spiegelmatrizen symmetrisch, es gilt $S_n^t = S_n$. Somit liefert zweimal dieselbe Spiegelung wieder die identische Abbildung, wie man aus -\begin{align} +Diese Spiegelmatrizen gehören der orthogonalen Matrizengruppe $S_n\in \text{O}(n)$ an. +\index{On@$\operatorname{O}(n)$}% +Die Matrizengruppe $\text{O}(n)$ hat die Eigenschaft $S_n^t S_n = E$, was bedeutet, dass die Länge und Winkel bei der Abbildung beibehalten bleiben. Zusätzlich sind die Spiegelmatrizen symmetrisch, es gilt $S_n^t = S_n$. Somit liefert zweimal dieselbe Spiegelung wieder die identische Abbildung, wie man aus +\begin{align*} S_n^t S_n = S_n^2 = E -\end{align} +\end{align*} schliessen kann. -\subsection{Geometrische Algebra} -Wir definieren zuerst die Inverse eines Vektors, welche in dieser Form nicht in der linearen Algebra nicht existiert. +\subsection{Spiegelung in der geometrische Algebra} +Wir definieren zuerst die Inverse eines Vektors, welche in dieser Form in der linearen Algebra nicht existiert. +\index{Inverse eines Vektors}% \begin{definition} Die Inverse eines Vektors wird definiert als \begin{align} \label{InverseGA} @@ -67,34 +72,41 @@ Wir definieren zuerst die Inverse eines Vektors, welche in dieser Form nicht in \end{align} \end{definition} Diese Definition ist sinnvoll, da wegen $\mathbf{u}^2 = |\mathbf{u}|^2$ folgt -\begin{align} +\begin{align*} \mathbf{uu}^{-1} = \mathbf{u} \frac{\mathbf{u}}{|\mathbf{u}|^2} = \frac{\mathbf{u}^2}{|\mathbf{u}|^2} = \frac{|\mathbf{u}|^2}{|\mathbf{u}|^2} = 1. -\end{align} +\end{align*} Der Vektor $\mathbf{u}^{-1}$ in \eqref{InverseGA} ist also tatsächlich das inverse Element im Sinne des Produktes in der geometrischen Algebra. Die geometrische Algebra leitet aus der obigen Formel \eqref{RefLinAlg} für eine Spiegelung eine einfache und intuitive Form her, welche auch für weitere Operationen erweitert werden kann. \begin{definition} Die Abbildung der Spiegelung in der geometrischen Algebra mit dem senkrechten Vektor $\mathbf{u}$ zur Spiegelungsebene $\sigma_u$ ist \begin{align}\label{RefGA} - \mathbf{v} \enspace\mapsto\enspace \mathbf{v}' = -\mathbf{uvu}^{-1} + \mathbf{v} \enspace\mapsto\enspace \mathbf{v}' = -\mathbf{uvu}^{-1}. \end{align} \end{definition} Um zu überprüfen, ob die Spiegelungsgleichung \eqref{RefGA} wirklich eine Spiegelung ist, setzen wir zuerst in diese Gleichung $\mathbf{v} = \mathbf{v_{\perp u}} + \mathbf{v_{\parallel u}}$ ein. Wir bekommen somit -\begin{align} +\begin{align*} \mathbf{v}' = -\mathbf{uv_{\perp u}u}^{-1} - \mathbf{uv_{\parallel u}u}^{-1}. -\end{align} +\end{align*} Danach können wir mit Hilfe der aus der Schlussfolgerung \eqref{uperpv} und \eqref{uparallelv} hergeleiteten Zusammenhänge -\begin{align} +\begin{align*} \mathbf{uv_{\perp u}} = -\mathbf{v_{\perp u}u} \quad\text{und}\quad \mathbf{uv_{\parallel u}}=\mathbf{v_{\parallel u}u}, -\end{align} +\end{align*} die Gleichung weiter umformen zu -\begin{align} +\begin{align*} \mathbf{v}' = -(-\mathbf{v_{\perp u}}\underbrace{\mathbf{u})\mathbf{u}^{-1}}_{1} -(\mathbf{v_{\parallel u}}\underbrace{\mathbf{u})\mathbf{u}^{-1}}_{1} = \mathbf{v_{\perp u}} - \mathbf{v_{\parallel u}}. -\end{align} +\end{align*} Man sieht, dass das Resultat $\mathbf{v}' = \mathbf{v_{\perp u}} - \mathbf{v_{\parallel u}}$ gleichbedeutend zu der Definition \eqref{RefLinAlg} der Spiegelung ist. -Verwendet man für $\mathbf{u}$ nur einen Einheitsvektor $\mathbf{\hat{u}}$, welcher die Länge 1 besitzt, wird die Gleichung \eqref{RefGA} zu +Verwendet man für $\mathbf{u}$ nur einen Einheitsvektor $\mathbf{\hat{u}}$, wird die Gleichung \eqref{RefGA} zu \begin{align} \mathbf{v'} = -\mathbf{\hat{u}v\hat{u}} \end{align} -vereinfacht. Im Gegensatz zu den Abbildungen in der linearen Algebra, welche in jeder anderen Dimension, durch andere Matrizen \eqref{Spiegelmatrizen} beschrieben werden müssen, ist es in der geometrischen Algebra immer der gleiche Vorgehensweise. Zudem ist diese kompakte Schreibweise in der linearen Algebra nicht möglich, da bis auf das Vektorprodukt in drei Dimensionen keine Multiplikation von Vektoren definiert ist.
\ No newline at end of file +vereinfacht. +Im Gegensatz zu den Abbildungen in der linearen Algebra, welche in +jeder anderen Dimension durch andere Matrizen \eqref{Spiegelmatrizen} +beschrieben werden müssen, ist es in der geometrischen Algebra immer +der gleiche Vorgehensweise. +Zudem ist diese kompakte Schreibweise in der linearen Algebra nicht +möglich, da bis auf das Vektorprodukt in drei Dimensionen keine +Multiplikation von Vektoren definiert ist. diff --git a/buch/papers/clifford/8_Rotation.tex b/buch/papers/clifford/8_Rotation.tex index 43d8f8a..7a95b72 100644 --- a/buch/papers/clifford/8_Rotation.tex +++ b/buch/papers/clifford/8_Rotation.tex @@ -3,26 +3,34 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Drehung} +\section{Drehung +\label{clifford:section:drehung}} \rhead{Drehung} -Eine Drehung kann man aus zwei aufeinanderfolgenden Spiegelungen bilden. Das kann vielleicht zuerst eine verwirrende Aussage sein, da man aus den vorherig gezeigten Formeln annehmen könnte, dass die Spiegelung schon für eine Drehung ausreicht. Obwohl sich die Längen, Winkel und Volumen sich bei einer Spiegelung, wie bei einer Drehung, nicht ändert, sind sie doch verschieden, da die Orientierung bei der Spiegelung invertiert wird. Stellt man sich, wie im Bild \ref{BildSpiegRot} dargestellt, beispielsweise ein Objekt vor und spiegelt dieses an einer Ebene, dann ist es unmöglich, nur durch eine Drehung (egal an welchem Punkt) das ursprüngliche Objekt deckungsgleich auf das Gespiegelte zu drehen. Hingegen ist es wiederum möglich ein zweifach gespiegeltes Objekt durch eine Drehung zu erreichen. Das liegt daran, da die Orientierung zweimal invertiert wurde. +Eine Drehung kann man aus zwei aufeinanderfolgenden Spiegelungen bilden. +Das kann vielleicht zuerst eine verwirrende Aussage sein, da man aus den vorher gezeigten Formeln annehmen könnte, dass die Spiegelung schon für eine Drehung ausreicht. +Obwohl sich die Längen, Winkel und Volumen sich bei einer Spiegelung wie bei einer Drehung nicht ändert, sind sie doch verschieden, da die Orientierung bei der Spiegelung invertiert wird. +Stellt man sich, wie im Bild \ref{BildSpiegRot} dargestellt, beispielsweise ein Objekt vor und spiegelt dieses an einer Ebene, dann ist es unmöglich, nur durch eine Drehung (egal an welchem Punkt) das ursprüngliche Objekt deckungsgleich auf das Gespiegelte zu drehen. +Hingegen ist es wiederum möglich ein zweifach gespiegeltes Objekt durch eine Drehung zu erreichen. +Das liegt daran, dass die Orientierung zweimal invertiert wurde. +\index{Drehung}% +\index{Orientierung}% \begin{figure} \centering \includegraphics[width=10cm]{papers/clifford/images/spiegelung.pdf} - \caption{Der wesentliche Unterschied zwischen Spiegelung und Drehung ist die Umkehrung der Orientierung} + \caption{Der wesentliche Unterschied zwischen Spiegelung und Drehung ist die Umkehrung der Orientierung.} \label{BildSpiegRot} \end{figure} \begin{figure} \centering - \begin{tikzpicture} + \begin{tikzpicture}[>=latex] \draw[thin,gray!40] (-3,-1) grid (3,3); - \draw[<->] (-3,0)--(3,0) node[right]{$a_1$}; - \draw[<->] (0,-1)--(0,3) node[above]{$a_2$}; - \draw[line width=1.0pt,green,-stealth](2,2)--(-2,2) node[anchor=south west]{$\boldsymbol{-2v_{\parallel u}}$}; - \draw[line width=1.0pt,green,-stealth](-2,2)--(-2.828,0) node[anchor=north west]{$\boldsymbol{-2v'_{\parallel w}}$}; + \draw[->] (-3.1,0)--(3.2,0) node[right]{$a_1$}; + \draw[->] (0,-1.1)--(0,3.2) node[above]{$a_2$}; + \draw[line width=1.0pt,darkgreen,-stealth](2,2)--(-2,2) node[anchor=south west]{$\boldsymbol{-2v_{\parallel u}}$}; + \draw[line width=1.0pt,darkgreen,-stealth](-2,2)--(-2.828,0) node[anchor=north west]{$\boldsymbol{-2v'_{\parallel w}}$}; \draw[blue, line width=1.0pt] (0,3)--(0,-1) node[anchor=south east]{$\sigma_u$}; \draw[red, line width=1.0pt] (-3,1.24)--(2.21,-1) node[anchor=south]{$\sigma_w$}; \draw[line width=2pt,black,-stealth](0,0)--(2,2) node[anchor=south east]{$\boldsymbol{v}$}; @@ -37,28 +45,35 @@ Eine Drehung kann man aus zwei aufeinanderfolgenden Spiegelungen bilden. Das kan \coordinate (B) at (2.5,0); \coordinate (C) at (0.957, 2.31); \tikzset{anglestyle/.style={angle eccentricity=1.25, purple, draw, thick, angle radius=1cm}} - \draw pic ["$\theta$", anglestyle] {angle = B--A--C}; + \draw pic ["$\vartheta$", anglestyle] {angle = B--A--C}; \coordinate (D) at (0,0); \coordinate (E) at (1,1); \coordinate (F) at (-1, 0); \tikzset{anglestyle/.style={angle eccentricity=1.25, purple, draw, thick, angle radius=1.25cm}} - \draw pic ["$2\theta$", anglestyle] {angle = E--D--F}; + \draw pic ["$2\vartheta$", anglestyle] {angle = E--D--F}; \end{tikzpicture} - \caption{Drehung des Vektors $\textbf{v}$ um $2\theta$} + \caption{Drehung des Vektors $\textbf{v}$ um $2\vartheta$} \label{BildDrehung} \end{figure} -\subsection{Linearen Algebra} -In der linearen Algebra haben wir Drehungen durch die Matrizen der Gruppe $\text{SO}(n)$ beschrieben. Beispielsweise besteht $\text{SO}(2)$ aus den Matrizen -\begin{align} +\subsection{Drehung in der linearen Algebra} +In der linearen Algebra haben wir Drehungen durch die Matrizen der Gruppe $\text{SO}(n)$ beschrieben. +\index{SO(n)@$\operatorname{SO}(n)$}% +Beispielsweise besteht $\text{SO}(2)$ aus den Matrizen +\begin{align*} D = \begin{pmatrix} \cos(\alpha) & \sin(\alpha) \\ -\sin(\alpha) & \cos(\alpha) \end{pmatrix},\quad \alpha \in [0, 2\pi). -\end{align} -Diese Drehmatrizen gehören der speziellen orthogonalen Matrizengruppe $D\in \text{SO}(n) = \text{SL}_n(\mathbb{R})\enspace \cap \enspace \text{O}(n)$ an. $\text{SL}_n(\mathbb{R})$ beinhaltet die Matrizen mit scherenden Eigenschaften. Die Drehmatrizen haben die Eigenschaft $D^t D = E \enspace \land \enspace \det(D)=1$. Da $\det(D) = 1$ und nicht $-1$ sein kann fallen alle Spiegelungen aus der Menge heraus. $\det(D) = -1$ bedeutet, dass eine Orientierungsinversion stattfindet. Eine übersichtliche Darstellung der beschriebenen Matrizengruppen sieht man in der Abbildung \ref{BildMatrizenGruppen} +\end{align*} +Diese Drehmatrizen gehören der speziellen orthogonalen Matrizengruppe $D\in \text{SO}(n) = \text{SL}_n(\mathbb{R})\enspace \cap \enspace \text{O}(n)$ an. +$\text{SL}_n(\mathbb{R})$ beinhaltet die Matrizen mit scherenden Eigenschaften. +Die Drehmatrizen haben die Eigenschaft $D^t D = E$ und $\det(D)=1$. +Da $\det(D) = 1$ und nicht $-1$ sein kann fallen alle Spiegelungen aus der Menge heraus. +$\det(D) = -1$ bedeutet, dass eine Orientierungsinversion stattfindet. +Eine übersichtliche Darstellung der beschriebenen Matrizengruppen sieht man in der Abbildung \ref{BildMatrizenGruppen}. \begin{figure} \centering @@ -67,11 +82,13 @@ Diese Drehmatrizen gehören der speziellen orthogonalen Matrizengruppe $D\in \te \label{BildMatrizenGruppen} \end{figure} -\subsection{Geometrische Algebra} +\subsection{Drehung in der geometrische Algebra} Da wir jetzt aus der Geometrie wissen, dass eine Drehung durch zwei Spiegelungen gebildet werden kann, können wir die Drehung mit der Formel \eqref{RefGA} einfach herleiten. \begin{satz} Durch zwei nacheinander auf einen Vektor $\mathbf{v}$ angewendete Spiegelungen lässt sich eine Drehung +durch \begin{align} \label{rotGA} +\mathbf{v}\mapsto \mathbf{v}'' = -\mathbf{wv}'\mathbf{w}^{-1} = -\mathbf{w}(-\mathbf{uvu}^{-1})\mathbf{w}^{-1} = (\mathbf{wu})\mathbf{v}(\mathbf{u}^{-1}\mathbf{w}^{-1}) \end{align} beschreiben. @@ -79,120 +96,134 @@ Da wir jetzt aus der Geometrie wissen, dass eine Drehung durch zwei Spiegelungen Die Vektoren $\mathbf{w}$ und $\mathbf{u}$ bilden hier wiederum die Spiegelachsen. Diese Formel versuchen wir jetzt noch durch Umstrukturierung zu verbessern. \subsubsection{Exponentialform} Dazu leiten wir zuerst die Exponentialform eines Vektors her. Es wird dabei zur Vereinfachung davon ausgegangen, dass alle Vektoren $\mathbf{w}, \mathbf{u}, \mathbf{v}$ in der $\mathbf{e}_{1}$-$\mathbf{e}_{2}$-Ebene liegen. Weitere Drehungen können in höheren Dimensionen durch Linearkombinationen von Drehungen in den $\mathbf{e}_{i}$-$\mathbf{e}_{j}$-Ebenen $(i\not=j)$ erreicht werden. Für die Herleitung ersetzen wir als erstes in der Polarform -\begin{align} -\mathbf{w} = |\mathbf{w}| \left(\cos(\theta_w) \mathbf{e}_1 + \sin(\theta_w) \mathbf{e}_2\right) -\end{align} +\begin{align*} +\mathbf{w} = |\mathbf{w}| \left(\cos(\vartheta_w) \mathbf{e}_1 + \sin(\vartheta_w) \mathbf{e}_2\right) +\end{align*} eines Vektors einen Faktor 1 durch $1=\mathbf{e}_1^2$ und erhalten beim Sinus \begin{align}\label{e1ausklammern} -\mathbf{w} &= |\mathbf{w}| \left(\cos(\theta_w) \mathbf{e}_1 + \sin(\theta_w) \mathbf{e}_1\mathbf{e}_1\mathbf{e}_2\right). +\mathbf{w} &= |\mathbf{w}| \left(\cos(\vartheta_w) \mathbf{e}_1 + \sin(\vartheta_w) \mathbf{e}_1\mathbf{e}_1\mathbf{e}_2\right). \end{align} In einem zweiten Schritt klammern wir $\mathbf{e}_1$ aus, dies ergibt \begin{align} -\mathbf{w} = |\mathbf{w}|\mathbf{e}_1\left(\cos(\theta_w)+ \sin(\theta_w) \mathbf{e}_{12}\right). \label{ExponentialGA} -\end{align} -Die Ähnlichkeit des Klammerausdrucks in der Formel \eqref{ExponentialGA} zu der Eulerschen Formel bei den komplexen Zahlen ist nun schon gut erkennbar. Versuchen wir nun mithilfe der Reihenentwicklungen -\begin{align} -\sin(\theta_w)\mathbf{e}_{12}&=\sum _{n=0}^{\infty }(-1)^{n}{\frac {\theta_w^{2n+1}}{(2n+1)!}}\mathbf{e}_{12} =\theta_w\mathbf{e}_{12}-{\frac {\theta_w^{3}}{3!}}\mathbf{e}_{12}+{\frac {\theta_w^{5}}{5!}}\mathbf{e}_{12}-\cdots \\ -\cos(\theta_w)&=\sum _{n=0}^{\infty }(-1)^{n}{\frac {\theta_w^{2n}}{(2n)!}} =1-{\frac {\theta_w^{2}}{2!}}+{\frac {\theta_w^{4}}{4!}}-\cdots -\end{align} +\mathbf{w} = |\mathbf{w}|\mathbf{e}_1\left(\cos(\vartheta_w)+ \sin(\vartheta_w) \mathbf{e}_{12}\right). \label{ExponentialGA} +\end{align} +Die Ähnlichkeit des Klammerausdrucks in der Formel \eqref{ExponentialGA} zu der eulerschen Formel bei den komplexen Zahlen ist nun schon gut erkennbar. Versuchen wir nun mithilfe der Reihenentwicklungen +\index{eulersche Formel}% +\index{Reihenentwicklung}% +\begin{align*} +\sin(\vartheta_w)\mathbf{e}_{12}&=\sum _{n=0}^{\infty }(-1)^{n}{\frac {\vartheta_w^{2n+1}}{(2n+1)!}}\mathbf{e}_{12} =\vartheta_w\mathbf{e}_{12}-{\frac {\vartheta_w^{3}}{3!}}\mathbf{e}_{12}+{\frac {\vartheta_w^{5}}{5!}}\mathbf{e}_{12}-\cdots \\ +\cos(\vartheta_w)&=\sum _{n=0}^{\infty }(-1)^{n}{\frac {\vartheta_w^{2n}}{(2n)!}} =1-{\frac {\vartheta_w^{2}}{2!}}+{\frac {\vartheta_w^{4}}{4!}}-\cdots +\end{align*} diesen Zusammenhang auch hier herzustellen. Setzt man diese beiden Reihenentwicklungen in \eqref{ExponentialGA} ein, erhält man +\begin{align*} +\cos(\vartheta_w)+ \sin(\vartheta_w) \mathbf{e}_{12} &= 1+\vartheta_w\mathbf{e}_{12}-{\frac {\vartheta_w^{2}}{2!}}-{\frac {\vartheta_w^{3}}{3!}}\mathbf{e}_{12}+{\frac {\vartheta_w^{4}}{4!}}+{\frac {\vartheta_w^{5}}{5!}}\mathbf{e}_{12}-\cdots +\end{align*} +Dies sieht noch nicht wie eine Exponentialreihe aus, da $\mathbf{e}_{12}$ nur in jedem zweiten Term auftritt. +Da aber $\mathbf{e}_{12}^2=-1$ gibt, erhält man für \begin{align} -\cos(\theta_w)+ \sin(\theta_w) \mathbf{e}_{12} &= 1+\theta_w\mathbf{e}_{12}-{\frac {\theta_w^{2}}{2!}}-{\frac {\theta_w^{3}}{3!}}\mathbf{e}_{12}+{\frac {\theta_w^{4}}{4!}}+{\frac {\theta_w^{5}}{5!}}\mathbf{e}_{12}-\cdots -\end{align} -Dies sieht noch nicht wie eine Exponentialreihe aus, da $\mathbf{e}_{12}$ nur in jedem zweiten Term auftritt. Da aber $\mathbf{e}_{12}=-1$ gibt, erhält man für -\begin{align} -e^{\theta_w\mathbf{e}_{12}} = 1 \mathbf{e}_{12}^0+\theta_w\mathbf{e}_{12}^1+{\frac {\theta_w^{2}}{2!}}\mathbf{e}_{12}^2+{\frac {\theta_w^{3}}{3!}}\mathbf{e}_{12}^3+{\frac {\theta_w^{4}}{4!}}\mathbf{e}_{12}^4+{\frac {\theta_w^{5}}{5!}}\mathbf{e}_{12}^5+\cdots +e^{\vartheta_w\mathbf{e}_{12}} = 1 \mathbf{e}_{12}^0+\vartheta_w\mathbf{e}_{12}^1+{\frac {\vartheta_w^{2}}{2!}}\mathbf{e}_{12}^2+{\frac {\vartheta_w^{3}}{3!}}\mathbf{e}_{12}^3+{\frac {\vartheta_w^{4}}{4!}}\mathbf{e}_{12}^4+{\frac {\vartheta_w^{5}}{5!}}\mathbf{e}_{12}^5+\dots. \label{ExponentialGA2} \end{align} Man sieht, dass die beiden Reihen übereinstimmen. Es folgt somit \begin{align}\label{EulerGA} -e^{\theta_w \mathbf{e}_{12}} = \cos(\theta_w)+ \sin(\theta_w) \mathbf{e}_{12}, +e^{\vartheta_w \mathbf{e}_{12}} = \cos(\vartheta_w)+ \sin(\vartheta_w) \mathbf{e}_{12}, \end{align} was zeigt, dass es eine Euler-Formel mit $\mathbf{e}_{12}$ anstelle der imaginären Einheit $j$ gibt. Wenn man jetzt den Vektor \eqref{ExponentialGA} durch die eulersche Schreibweise \begin{align} -\mathbf{w} = |\mathbf{w}|\mathbf{e}_1e^{\theta_w\mathbf{e}_{12}} +\mathbf{w} = |\mathbf{w}|\mathbf{e}_1e^{\vartheta_w\mathbf{e}_{12}} \end{align} -ersetzt, kann die Exponentialform des Vektors ähnlich wie die der komplexen Zahlen interpretieren. Der Einheitsvektor $\mathbf{e}_1$ wird um die Länge $|\mathbf{w}|$ gestreckt und um $\theta_w$ gedreht. +ersetzt, kann die Exponentialform des Vektors ähnlich wie die der komplexen Zahlen interpretieren. Der Einheitsvektor $\mathbf{e}_1$ wird um die Länge $|\mathbf{w}|$ gestreckt und um $\vartheta_w$ gedreht. \subsubsection{Vektormultiplikation} Nun werden wir das Vektorprodukt \begin{align} \label{VektorproduktformelGA} -\mathbf{wu} = |\mathbf{w}|\mathbf{e}_1 e^{\theta_w \mathbf{e}_{12}}|\mathbf{u}|\mathbf{e}_1 e^{\theta_u \mathbf{e}_{12}} +\mathbf{wu} = |\mathbf{w}|\mathbf{e}_1 e^{\vartheta_w \mathbf{e}_{12}}|\mathbf{u}|\mathbf{e}_1 e^{\vartheta_u \mathbf{e}_{12}} \end{align} so umformen, dass wir die Drehung nur durch Exponentialterme beschreiben können. Wir tauschen dafür zuerst beim Vektor $\mathbf{w}$ die Reihenfolge von -$\mathbf{e}_1$ mit dem Exponentialterm $e^{\theta_w \mathbf{e}_{12}}$, indem wir bei der Gleichung \eqref{e1ausklammern} $1=\mathbf{e}_1^2$ an einer anderen Position einsetzten. Wir erhalten -\begin{align} -\mathbf{w} &= |\mathbf{w}|\left(\cos(\theta_w)+ \sin(\theta_w) \mathbf{e}_2\mathbf{e}_1\right)\mathbf{e}_1. -\end{align} +$\mathbf{e}_1$ mit dem Exponentialterm $e^{\vartheta_w \mathbf{e}_{12}}$, indem wir bei der Gleichung \eqref{e1ausklammern} $1=\mathbf{e}_1^2$ an einer anderen Position einsetzen. +Wir erhalten +\begin{align*} +\mathbf{w} &= |\mathbf{w}|\left(\cos(\vartheta_w)+ \sin(\vartheta_w) \mathbf{e}_2\mathbf{e}_1\right)\mathbf{e}_1. +\end{align*} Mithilfe der Formel \eqref{EulerGA} und dem Wissen, dass $\mathbf{e}_{21}= -\mathbf{e}_{12}$ können wir die Umformung -\begin{align} -|\mathbf{w}|e^{-\theta_w \mathbf{e}_{12}}\mathbf{e}_1 -\end{align} -ausführen. Diese wichtige Umstrukturierung können wir wieder in die Vektorproduktformel \eqref{VektorproduktformelGA} einsetzen un erhalten -\begin{align} -\mathbf{wu} &= |\mathbf{w}|\,|\mathbf{u}|e^{-\theta_w \mathbf{e}_{12}}\mathbf{e}_1\mathbf{e}_1 e^{\theta_u \mathbf{e}_{12}}\\ -&= |\mathbf{w}|\,|\mathbf{u}|e^{(\theta_u-\theta_w) \mathbf{e}_{12}}. -\end{align} +\begin{align*} +|\mathbf{w}|e^{-\vartheta_w \mathbf{e}_{12}}\mathbf{e}_1 +\end{align*} +ausführen. Diese wichtige Umstrukturierung können wir wieder in die Vektorproduktformel \eqref{VektorproduktformelGA} einsetzen und erhalten +\begin{align*} +\mathbf{wu} &= |\mathbf{w}|\,|\mathbf{u}|e^{-\vartheta_w \mathbf{e}_{12}}\mathbf{e}_1\mathbf{e}_1 e^{\vartheta_u \mathbf{e}_{12}}\\ +&= |\mathbf{w}|\,|\mathbf{u}|e^{(\vartheta_u-\vartheta_w) \mathbf{e}_{12}}. +\end{align*} Das inverse Vektorprodukt -\begin{align} -\mathbf{u}^{-1}\mathbf{w}^{-1} = \dfrac{1}{|\mathbf{w}|\,|\mathbf{u}|}e^{(\theta_w-\theta_u) \mathbf{e}_{12}} -\end{align} +\begin{align*} +\mathbf{u}^{-1}\mathbf{w}^{-1} = \dfrac{1}{|\mathbf{w}|\,|\mathbf{u}|}e^{(\vartheta_w-\vartheta_u) \mathbf{e}_{12}} +\end{align*} kann durch die selbe Methode vereinfacht werden. -Wenn wir den Winkel zwischen den Vektoren $\mathbf{w}$ und $\mathbf{u}$ als $\theta = \theta_w - \theta_u$ definieren erhalten wir als endgültige Form der Vektorprodukte +Wenn wir den Winkel zwischen den Vektoren $\mathbf{w}$ und $\mathbf{u}$ als $\vartheta = \vartheta_w - \vartheta_u$ definieren erhalten wir als endgültige Form der Vektorprodukte \begin{align}\label{wuExpo} -\mathbf{wu} &= |\mathbf{w}|\,|\mathbf{u}|e^{-\theta \mathbf{e}_{12}}\enspace\text{und}\\ -\mathbf{u}^{-1}\mathbf{w}^{-1} &= \dfrac{1}{|\mathbf{w}|\,|\mathbf{u}|}e^{\theta \mathbf{e}_{12}} \label{wuExpoInv}. +\mathbf{wu} &= |\mathbf{w}|\,|\mathbf{u}|e^{-\vartheta \mathbf{e}_{12}}\enspace\text{und}\\ +\mathbf{u}^{-1}\mathbf{w}^{-1} &= \dfrac{1}{|\mathbf{w}|\,|\mathbf{u}|}e^{\vartheta \mathbf{e}_{12}} \label{wuExpoInv}. \end{align} \subsubsection{Umstrukturierte Drehungsgleichung} Setzten wir nun unsere neuen Erkenntnisse in die Gleichung \eqref{rotGA} ein, erhalten wir -\begin{align} -\mathbf{v''} = (|\mathbf{w}|\,|\mathbf{u}|e^{-\theta \mathbf{e}_{12}})\mathbf{v}\biggl(\dfrac{1}{|\mathbf{w}|\,|\mathbf{u}|}e^{\theta \mathbf{e}_{12}}\biggr) -\end{align} +\begin{align*} +\mathbf{v''} += +(|\mathbf{w}|\,|\mathbf{u}|e^{-\vartheta \mathbf{e}_{12}})\mathbf{v}\biggl(\dfrac{1}{|\mathbf{w}|\,|\mathbf{u}|}e^{\vartheta \mathbf{e}_{12}}\biggr) +\end{align*} und können durch die Kürzungen der Längen die vereinfachte Drehungsgleichung \begin{align} \label{GAvereinfRot} -\mathbf{v''} = e^{-\theta \mathbf{e}_{12}} v e^{\theta \mathbf{e}_{12}} +\mathbf{v''} = e^{-\vartheta \mathbf{e}_{12}} v e^{\vartheta \mathbf{e}_{12}} \end{align} -bilden. Wir wissen nun, dass das diese beidseitige Multiplikation die Länge von $\mathbf{v}$ nicht verändert, da sich die Längen von $\mathbf{w}$ und $\mathbf{u}$ kürzen. Betrachten wir nun den Effekt der Exponentialterme auf $\mathbf{v}$. Dabei teilen wir den Vektor $\mathbf{v}$ auf in einen Anteil $\mathbf{v_\parallel}$, welcher auf der Ebene $\mathbf{e}_{12}$ liegt, und einen Anteil $\mathbf{v_\perp}$, welcher senkrecht zu der Ebene steht. Wir bekommen durch Einsetzten nun diese Form +bilden. +Wir wissen nun, dass diese beidseitige Multiplikation die Länge von $\mathbf{v}$ nicht verändert, da sich die Längen von $\mathbf{w}$ und $\mathbf{u}$ kürzen. + +Betrachten wir nun den Effekt der Exponentialterme auf $\mathbf{v}$. Dabei teilen wir den Vektor $\mathbf{v}$ auf in einen Anteil $\mathbf{v_\parallel}$, welcher auf der Ebene $\mathbf{e}_{12}$ liegt, und einen Anteil $\mathbf{v_\perp}$, welcher senkrecht zu der Ebene steht. Wir bekommen durch Einsetzten nun die Form \begin{align} \label{RotAufPerpPar} -\mathbf{v}'' = e^{-\theta \mathbf{e}_{12}} (\mathbf{v_\perp + v_\parallel}) e^{\theta \mathbf{e}_{12}} = e^{-\theta \mathbf{e}_{12}} \mathbf{v_\perp} e^{\theta \mathbf{e}_{12}} + e^{-\theta \mathbf{e}_{12}} \mathbf{v_\parallel} e^{\theta \mathbf{e}_{12}}. -\end{align} -Auf eine allgemeine Herleitung wird hier zwar verzichtet, aber man kann zeigen, dass man die Reihenfolge der Vektoranteile $\mathbf{v_\perp}$ und $\mathbf{v_\parallel}$ mit dem Exponentialterm $e^{-\theta \mathbf{e}_{12}}$ so vertauschen kann, dass sich -\begin{align} -\mathbf{v}'' = \mathbf{v_\perp} e^{-\theta \mathbf{e}_{12}} e^{\theta \mathbf{e}_{12}} + \mathbf{v_\parallel} e^{-(-\theta) \mathbf{e}_{12}} e^{\theta \mathbf{e}_{12}} +\mathbf{v}'' = e^{-\vartheta \mathbf{e}_{12}} (\mathbf{v_\perp + v_\parallel}) e^{\vartheta \mathbf{e}_{12}} = e^{-\vartheta \mathbf{e}_{12}} \mathbf{v_\perp} e^{\vartheta \mathbf{e}_{12}} + e^{-\vartheta \mathbf{e}_{12}} \mathbf{v_\parallel} e^{\vartheta \mathbf{e}_{12}}. \end{align} -ergibt. Der Winkel wird beim parallelen Anteil negiert. An der Zusammengefassten Gleichung +Auf eine allgemeine Herleitung wird hier zwar verzichtet, aber man kann zeigen, dass man die Reihenfolge der Vektoranteile $\mathbf{v_\perp}$ und $\mathbf{v_\parallel}$ mit dem Exponentialterm $e^{-\vartheta \mathbf{e}_{12}}$ so vertauschen kann, dass sich +\begin{align*} +\mathbf{v}'' = \mathbf{v_\perp} e^{-\vartheta \mathbf{e}_{12}} e^{\vartheta \mathbf{e}_{12}} + \mathbf{v_\parallel} e^{-(-\vartheta) \mathbf{e}_{12}} e^{\vartheta \mathbf{e}_{12}} +\end{align*} +ergibt. Der Winkel wird beim parallelen Anteil negiert. An der zusammengefassten Gleichung \begin{align}\label{RotParPerp} -\mathbf{v}'' = \mathbf{v_\perp} + \mathbf{v_\parallel} e^{2\theta \mathbf{e}_{12}} +\mathbf{v}'' = \mathbf{v_\perp} + \mathbf{v_\parallel} e^{2\vartheta \mathbf{e}_{12}} \end{align} -kann man sehen, dass nur der parallele Anteil $\mathbf{v_\parallel}$ des Vektors $\mathbf{v}$ auf der Ebene $\mathbf{e}_{12}$ um $2\theta$ gedreht wird. Der senkrechte Anteil $\mathbf{v_\perp}$ bleibt gleich. Wichtig dabei zu sehen ist, dass nur der Winkel zwischen den Vektoren $\mathbf{w}$ und $\mathbf{u}$ von Bedeutung ist. Die Länge und Richtung der einzelnen Vektoren spielt keine Rolle. Zeigen wir nun diese Eigenschaften an einem Beispiel +kann man sehen, dass nur der parallele Anteil $\mathbf{v_\parallel}$ des Vektors $\mathbf{v}$ in der Ebene $\mathbf{e}_{12}$ um $2\vartheta$ gedreht wird. +Der senkrechte Anteil $\mathbf{v_\perp}$ bleibt gleich. +Wichtig dabei zu sehen ist, dass nur der Winkel zwischen den Vektoren $\mathbf{w}$ und $\mathbf{u}$ von Bedeutung ist. +Die Länge und Richtung der einzelnen Vektoren spielt keine Rolle. +Wir zeigen nun diese Eigenschaften an einem Beispiel. + \begin{beispiel} - Gegeben sei ein Vektor $\mathbf{v} = 1\mathbf{e}_1 + 2\mathbf{e}_2 + 3\mathbf{e}_3$ mit zur $\mathbf{e}_{12}$-Ebene parallelen Anteil $\mathbf{v_\parallel} = 1\mathbf{e}_1 + 2\mathbf{e}_2$ und senkrechten Anteil $\mathbf{v_\perp} = 3\mathbf{e}_3$. Zusätzlich sind die Spiegelachsen $\mathbf{u} = \mathbf{e}_1$ und $\mathbf{w} = 2\mathbf{e}_2$ gegeben. Gesucht ist der rotierte Vektor $\mathbf{v}''$. Bestimmen wir als erstes das Vektorprodukt - \begin{align} + Gegeben sei ein Vektor $\mathbf{v} = 1\mathbf{e}_1 + 2\mathbf{e}_2 + 3\mathbf{e}_3$ mit zur $\mathbf{e}_{12}$-Ebene parallelen Anteil $\mathbf{v_\parallel} = 1\mathbf{e}_1 + 2\mathbf{e}_2$ und senkrechten Anteil $\mathbf{v_\perp} = 3\mathbf{e}_3$. Zusätzlich sind die Spiegelachsen $\mathbf{u} = \mathbf{e}_1$ und $\mathbf{w} = 2\mathbf{e}_2$ gegeben. Gesucht ist der gedrehte Vektor $\mathbf{v}''$. Bestimmen wir als erstes das Vektorprodukt + \begin{align*} \mathbf{wu} = (2\mathbf{e}_2)(\mathbf{e}_1) = -2\mathbf{e}_{12} - \end{align} + \end{align*} und das Produkt der Inversen - \begin{align} - \mathbf{u}^{-1}\mathbf{w}^{-1} = \biggl(\dfrac{\mathbf{e}_1}{1^2}\biggr) \left(\dfrac{2\mathbf{e}_2}{2^2}\right) = \dfrac{1}{2}\mathbf{e}_{12}. - \end{align} + \begin{align*} + \mathbf{u}^{-1}\mathbf{w}^{-1} = \biggl(\dfrac{\mathbf{e}_1}{1^2}\biggr) \biggl(\dfrac{2\mathbf{e}_2}{2^2}\biggl) = \dfrac{1}{2}\mathbf{e}_{12}. + \end{align*} Den gedrehten Vektor $\mathbf{v}''$ können wir nun durch Einsetzen und Auflösen der Produkte in die Gleichung \eqref{rotGA} bestimmen. Der Rechnenvorgang ist - \begin{align} - \mathbf{v}'' = (\mathbf{wu})\mathbf{v}(\mathbf{u}^{-1}\mathbf{w}^{-1}) &= (-2e_{12})(1\mathbf{e}_1 + \mathbf{e}_2 + 1\mathbf{e}_3)(\textstyle{\frac{1}{2}}\mathbf{e}_{12})\\ + \begin{align*} + \mathbf{v}'' = (\mathbf{wu})\mathbf{v}(\mathbf{u}^{-1}\mathbf{w}^{-1}) &= (-2\mathbf{e}_{12})(1\mathbf{e}_1 + \mathbf{e}_2 + 1\mathbf{e}_3)(\textstyle{\frac{1}{2}}\mathbf{e}_{12})\\ &= (2\mathbf{e}_2-2\mathbf{e}_1-2\mathbf{e}_{123})(\textstyle{\frac{1}{2}}\mathbf{e}_{12})\\ &= -1\mathbf{e}_1 - 1\mathbf{e}_2 + 1\mathbf{e}_3. - \end{align} + \end{align*} Aus dem Resultat $\mathbf{v}''= -1\mathbf{e}_1 + 1\mathbf{e}_2 + 1\mathbf{e}_3$ können wir bestätigen, dass \begin{itemize} \item die Länge $|\mathbf{v}| = \sqrt{3}$ zur Länge $|\mathbf{v}''|=\sqrt{3}$ gleich blieb. \item sich der parallele Anteil $\mathbf{v_\parallel}'' = -1\mathbf{e}_1 - 1\mathbf{e}_2$ gedreht hat und der senkrechte Anteil $\mathbf{v_\perp}'' = 1\mathbf{e}_3$ unverändert blieb. - \item der parallele Teil sich genau um $2\theta=180$° gedreht hat. $\theta$ kann übrigens durch die Umformung des Produkt $\mathbf{wu}$ in die Exponentialschreibweise + \item der parallele Teil sich genau um $2\vartheta=180^\circ$ gedreht hat. $\vartheta$ kann übrigens durch die Umformung des Produkt $\mathbf{wu}$ in die Exponentialschreibweise \begin{align} &\mathbf{wu} = -2\mathbf{e}_{12} = 2(0-1\mathbf{e}_{12})=2(\cos\biggl(\dfrac{-\pi}{2}\biggr) + \sin\biggl(\dfrac{-\pi}{2}\biggr)\mathbf{e}_{12}) = 2e^{(-\pi/2)\mathbf{e}_{12}} \end{align} - durch einen Vergleich mir der Formel \eqref{wuExpo} - \begin{align} - \theta = -\biggl(\dfrac{-\pi}{2}\biggr) = \dfrac{\pi}{2} - \end{align} + durch einen Vergleich mir der Formel \eqref{wuExpo} als + \begin{align*} + \vartheta = -\biggl(\dfrac{-\pi}{2}\biggr) = \dfrac{\pi}{2} + \end{align*} ausgelesen werden. \qedhere \end{itemize} -\end{beispiel}
\ No newline at end of file +\end{beispiel} diff --git a/buch/papers/clifford/9_KomplexeZahlen.tex b/buch/papers/clifford/9_KomplexeZahlen.tex index 12fa546..e8ebfbf 100644 --- a/buch/papers/clifford/9_KomplexeZahlen.tex +++ b/buch/papers/clifford/9_KomplexeZahlen.tex @@ -6,34 +6,41 @@ \section{Komplexe Zahlen} \rhead{Komplexe Zahlen} -Die komplexen Zahlen finden eine Vielzahl von Anwendungsgebiete in den Ingenieurwissenschaften. Das liegt daran, weil die komplexen Zahlen Drehungen und Schwingungen gut beschreiben können. Nach dem vorherigen Abschnitt ist es nicht überraschend, dass es möglich ist, komplexe Zahlen in der geometrischen Algebra darzustellen. Sie können durch die geraden Grade der zweidimensionalen geometrischen Algebra vollständig beschrieben werden: $\mathbf{g}_n \in G_2^+(\mathbb{R}) \cong \mathbb{C}$. Das bedeutet eine komplexe Zahl -\begin{align} -a_0 + a_1 j \cong a_0 + a_1 \mathbf{e}_{12} = \mathbf{g}_n\quad a_0, a_1 \in \mathbb{R}\\ -|r|e^{\theta j} \cong |r|e^{\theta \mathbf{e}_{12}} = \mathbf{g}_n; \quad r, \theta \in \mathbb{R} -\end{align} -kann durch ein Skalar (Grad 0) und einem Bivektor (Grad 2) dargestellt werden, weil $j$ und $\mathbf{e}_{12}$ beide die Eigenschaft -\begin{align} -j^2 = -1\quad\text{und}\quad\mathbf{e}_{12}^2 = -1 -\end{align} +Die komplexen Zahlen finden eine Vielzahl von Anwendungsgebiete in den Ingenieurwissenschaften. Das liegt daran, weil die komplexen Zahlen Drehungen und Schwingungen gut beschreiben können. Nach dem vorherigen Abschnitt ist es nicht überraschend, dass es möglich ist, komplexe Zahlen in der geometrischen Algebra darzustellen. Sie können durch die geraden Grade der zweidimensionalen geometrischen Algebra vollständig beschrieben werden: $\mathbf{g}_n \in G_2^+(\mathbb{R}) \cong \mathbb{C}$. Das bedeutet, eine komplexe Zahl +\begin{equation*} +\begin{aligned} +a_0 + a_1 j &\cong a_0 + a_1 \mathbf{e}_{12} = \mathbf{g}_n,&&& a_0, a_1 &\in \mathbb{R}\\ +|r|e^{\vartheta j} &\cong |r|e^{\vartheta \mathbf{e}_{12}} = \mathbf{g}_n,&&& r, \vartheta &\in \mathbb{R} +\end{aligned} +\end{equation*} +kann durch einen Skalar (Grad 0) und einen Bivektor (Grad 2) dargestellt werden, weil $j$ und $\mathbf{e}_{12}$ beide die Eigenschaft +\begin{align*} +j^2 = -1\qquad\Leftrightarrow\qquad\mathbf{e}_{12}^2 = -1 +\end{align*} besitzen. Die Kommutativität -\begin{align} +\begin{align*} \begin{split} -\mathbf{g}_1\mathbf{g}_2 = \mathbf{g}_2\mathbf{g}_1 \enspace&\Leftrightarrow\enspace (a + b \mathbf{e}_{12})(f + g \mathbf{e}_{12}) = (f + g \mathbf{e}_{12})(a + b \mathbf{e}_{12})\\ &\Leftrightarrow\enspace |\mathbf{g}_1|\,|\mathbf{g}_2|e^{(\theta_{g_1} + \theta_{g_2})\mathbf{e}_{12}} = |\mathbf{g}_2|\,|\mathbf{g}_1|e^{(\theta_{g_2} + \theta_{g_1})\mathbf{e}_{12}}, +\mathbf{g}_1\mathbf{g}_2 = \mathbf{g}_2\mathbf{g}_1 \enspace&\Leftrightarrow\enspace (a + b \mathbf{e}_{12})(f + g \mathbf{e}_{12}) = (f + g \mathbf{e}_{12})(a + b \mathbf{e}_{12})\\ &\Leftrightarrow\enspace |\mathbf{g}_1|\,|\mathbf{g}_2|e^{(\vartheta_{g_1} + \vartheta_{g_2})\mathbf{e}_{12}} = |\mathbf{g}_2|\,|\mathbf{g}_1|e^{(\vartheta_{g_2} + \vartheta_{g_1})\mathbf{e}_{12}}, \end{split} -\end{align} -welche wir schon von den komplexen Zahlen her kennen, ist dabei eine in der geometrischen Algebra nur selten anzutreffende Eigenschaft. Beispielsweise ist das geometrische Produkt von -\begin{align} +\end{align*} +welche wir schon von den komplexen Zahlen her kennen, ist dabei eine in der geometrischen Algebra nur selten anzutreffende Eigenschaft. Beispielsweise ist das geometrische Produkt +\begin{align*} \mathbf{g}_1\mathbf{v}\not= \mathbf{v}\mathbf{g}_1 \quad\Leftrightarrow\quad(a + b \mathbf{e}_{12})(x\mathbf{e}_1+y\mathbf{e}_2)\not= (x\mathbf{e}_1+y\mathbf{e}_2)(a + b \mathbf{e}_{12}) -\end{align} +\end{align*} und auch die im folgenden Kapitel behandelten Quaternionen sind nicht kommutativ. Um später die Auswirkung der Quaternionen auf Vektoren besser zu verstehen, möchten wir kurz darauf eingehen, was ein $\mathbf{g}_n$ für eine Auswirkung auf einen Vektor hat. Wir kennen diesen Effekt schon von den komplexen Zahlen. Wenn eine komplexe Zahl $c_1=a+bj$ mit einer zweiten $c_2=f+gj$ multipliziert wird, dann kann man -\begin{align} +\begin{align*} c = c_1\cdot c_2 = (a + bj)(d + ej) = \underbrace{a\cdot(d+ej)}_{\displaystyle{a\cdot c_2}} + \underbrace{bj\cdot(d+ej)}_{\displaystyle{b\cdot c_2 \cdot (1\angle 90^\circ)}} -\end{align} -so aufteilen. Dabei ist $a\cdot(d+ej)$ die komplexe Zahl $c_2$ um den Faktor $a$ steckt und $bj\cdot(d+ej)$ die um 90° im Gegenuhrzeigersinn gedrehte Zahl $c_2$ um den Faktor $b$ streckt. Diese Anteile addiert ergeben dann den um $c_1$ drehgestreckten Vektor $c_2$. Den gleichen Effekt hat +\end{align*} +so aufteilen. +Dabei ist $a\cdot(d+ej)$ die komplexe Zahl $c_2$ um den Faktor $a$ gestreckt und $bj\cdot(d+ej)$ +die um $90^\circ$ im Gegenuhrzeigersinn gedrehte Zahl $c_2$ um den Faktor $b$ gestreckt. +Diese Anteile addiert ergeben dann den um $c_1$ drehgestreckten Vektor $c_2$. Den gleichen Effekt hat \begin{align}\label{GAdrehstreck} \mathbf{v}' = \mathbf{g}\mathbf{v} = (a + b\mathbf{e}_{12})(d\mathbf{e}_{1} + e\mathbf{e}_{2}) = a(d\mathbf{e}_{1} + e\mathbf{e}_{2}) + b\mathbf{e}_{12}(d\mathbf{e}_{1} + e\mathbf{e}_{2}) \end{align} -in der zweidimensionalen geometrischen Algebra. Im Falle der komplexen Zahlen macht es jetzt noch nicht wirklich Sinn in die geometrische Algebra zu wechseln. Die potenziellen Vorteile der geometrischen Algebra werden sich aber erst bei den Quaternionen zeigen.
\ No newline at end of file +in der zweidimensionalen geometrischen Algebra. +Im Falle der komplexen Zahlen macht es jetzt noch nicht wirklich Sinn in die geometrische Algebra zu wechseln. +Die potenziellen Vorteile der geometrischen Algebra werden sich aber erst bei den Quaternionen zeigen. diff --git a/buch/papers/clifford/main.tex b/buch/papers/clifford/main.tex index 3649b20..f04cce2 100644 --- a/buch/papers/clifford/main.tex +++ b/buch/papers/clifford/main.tex @@ -3,10 +3,10 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Clifford Algebra\label{chapter:clifford}} -\lhead{Clifford Algebra} +\chapter{Geometrische Algebra\label{chapter:clifford}} +\lhead{Geometrische Algebra} \begin{refsection} -\chapterauthor{Thierry Schwaller, Marius Baumann} +\chapterauthor{Marius Baumann und Thierry Schwaller} \input{papers/clifford/0_ElevatorPitch.tex} diff --git a/buch/papers/erdbeben/teil0.tex b/buch/papers/erdbeben/teil0.tex index c985713..d32b316 100644 --- a/buch/papers/erdbeben/teil0.tex +++ b/buch/papers/erdbeben/teil0.tex @@ -20,9 +20,9 @@ Um ein Erdbeben kenntlich zu machen, werden in der Regel Seismographen mit viele Ein Seismograph besteht im Grunde aus einer federgelagerten Masse. Wirkt eine Bodenerregung auf das Gerät ein, schwing das Gehäuse und dadurch auch die gekoppelte Masse. Stoppt das Erdbeben, schwingt das Gehäuse nicht mehr. Die Masse schwing jedoch in seiner Eigendynamik weiter. -Relativbewegung des Bodens kann damit als Auslenkung im Zeitverlauf gemessen werden. +Eine Relativbewegung des Bodens kann damit als Auslenkung im Zeitverlauf gemessen werden. In modernen Seismographen wird die Bodenbewegung in alle Richtungen gemessen, sowohl Horizontal als auch Vertikal. -Wir konstruieren uns eine einfachere Version eines Seismographen mit eine Gehäuse, an dem zwei Federn und eine Masse befestigt sind. +Wir konstruieren uns eine einfachere Version eines Seismographen mit einem Gehäuse, an dem zwei Federn und eine Masse befestigt sind. Der Seismograph ist in Abbildung ~\ref{erdbeben:Seismograph} ersichtlich. Ein Sensor unter der Masse misst die Position, bzw. die Auslenkung der Feder und der Masse. Dies bedeutet, unser Seismograph kann nur in eine Dimension Messwerte aufnehmen. @@ -53,28 +53,40 @@ Die Gleichung lautet: m\ddot s + 2k \dot s + Ds = f. \end{equation} wobei $m$ die Masse, $k$ die Dämpfungskonstante und $D$ die Federkonstante bezeichnet. -Da die Differentialgleichung linear ist, kann sie in die kompaktere und einfachere Matrix-Form umgewandelt werden. -Dazu verwenden wir die Subsitution: -\[
s_1 = s
\qquad \text{und} \qquad
s_2 = \dot s
.
\] -Somit entstehen die Gleichungen für die Position $ \dot s_1(t)$ der Masse : + + +Da die Differentialgleichung linear ist möchten wir diese Gleichung in die Darstellung $\dot x = Ax$ überführen, wobei $x$ der Zustandsvektor und $A$ die Systemmatrix bezeichnet. Dazu verwenden wir die Subsitution: +\[ +s_1 = s +\qquad \text{und} \qquad +s_2 = \dot s. +\] +Somit entstehen die Gleichungen für die Geschwindigkeit $ \dot s_1(t)$ der Masse : \[ \dot {s_1} = {s_2}\] und \[ \dot s_2 = -\frac{D}{m} {s_1} -\frac{2k}{m} {s_2} + \frac{f} {m} \] für die Beschleunigung $\dot s_2(t)$ der Masse. Diese können wir nun in der Form -\[ f =-\frac{D}{m} {s_1} -\frac{2k}{m} {s_2} + \frac{f} {m} \] -auch als Matrix-Vektor-Gleichung darstellen. -Dafür wird die Gleichung in die Zustände aufgeteilt. -Die für uns relevanten Zustände sind die Position der Masse, die Geschwindigkeit der Masse und die äussere Beschleunigung des ganzen Systems. +\[ \ddot f =-\frac{D}{m} {s_1} -\frac{2k}{m} {s_2} + \frac{f} {m} \] +als skalare Gleichung darstellen. -Dabei muss unterschieden werden, um welche Beschleunigung es sich handelt. -Das System beinhaltet sowohl eine Beschleunigung der Masse (innere Beschleunigung) als auch eine Beschleunigung der ganzen Apparatur (äussere Beschleunigung). +Die für uns relevanten Zustände sind die Position der Masse, die Geschwindigkeit der Masse und die äussere Beschleunigung des ganzen Systems. +Unüblich ist nun, dass der Stör-Term $f$ in Gleichung (20.1) gerade das ist, was wir eigentlich bestimmen möchten. In unserem Fall wird die äusseren Beschleunigung gesucht, da diese der Erdbebenanregung gleich kommt. -Dazu wird ein Zustandsvektor definiert: +Deshalb nehmen wir $f$ als dritte Grösse in den Zustandsvektor auf und definieren: + \[ - \left(\begin{array}{c} {s_1} \\ {s_2} \\ {f} \end{array}\right). - \] -Durch Rücksubstituion ergibt sich uns folgende Systemgleichung in Matrix schreibweise, , wobei $\dot {s_1}= v$ ist: + x = (s_1, s_2, f)^T. +\] + +Für die Standard-Form $\dot x = Ax$ brauchen wir als nächstes die Ableitungen aller Elemente von $x$. Für $\dot s_1$ und $\dot s_2$ folgen diese direkt aus Gleichung (20.1), aber über $\dot f$ wissen wir nichts. +Wir müssen also eine Annahme treffen: $\dot f = 0$. Diese Annahme ist im Allgemeinen falsch, aber etwas Besseres haben wir zurzeit nicht zur Verfügung. +Zudem treffen wir die Annahme, das sich die Kraft über die Beobachtungszeit nicht verändert. +Wir werden dies in einem späteren Schritt kompensieren müssen. +Da die Kraft unbekannt ist, wird die letzte Zeile mit Nullen gefüllt, denn genau diese Werte wollen wir. + + +Durch Rücksubstituion ergibt sich uns folgende Systemgleichung in Matrix schreibweise, wobei $\dot {s_1}= v$ ist. Damit haben wir nun alles, was wir für die Matrix-Darstellung von Gleichung (20.1) benötigen. Diese lautet: \begin{equation} \frac{d}{dt} \left(\begin{array}{c} s(t) \\ v(t) \\ f(t) \end{array}\right) = \left( \begin{array}{ccc} @@ -83,11 +95,7 @@ Durch Rücksubstituion ergibt sich uns folgende Systemgleichung in Matrix schrei 0 & 0 & 0\\ \end{array}\right) \left(\begin{array}{c} s(t)\\ v(t)\\ f(t) \end{array}\right). \end{equation} -Wir wissen nicht wie sich die Kraft verhält. -Deshalb treffen wir die Annahme, das sich die Kraft über die Beobachtungszeit nicht verändert. -Diese Annahme ist nicht zulässig, jedoch ist dies das beste, was wir Annehmen können. -Diese unzutreffende Annahme wird späteren Berechnungen berücksichtigen werden -Da die Kraft unbekannt ist, wird die letzte Zeile mit Nullen gefüllt, denn genau diese Werte wollen wir. + diff --git a/buch/papers/erdbeben/teil1.tex b/buch/papers/erdbeben/teil1.tex index 6c334bf..014b53e 100644 --- a/buch/papers/erdbeben/teil1.tex +++ b/buch/papers/erdbeben/teil1.tex @@ -14,15 +14,20 @@ \rhead{Kalman-Filter} \section{Kalman-Filter} -Interessante Grösse ist also Integral von Überlagerung zweier Kräfte. -Wir brauchen also dir zweite Ableitung von der Messung , ohne deren Eigendynamik. +Die interessante Grösse ist also das Integral der Überlagerung zweier Kräfte. +Wir brauchen also die zweite Ableitung der Messung, ohne deren Eigendynamik. Da wir die äussere Kraft nicht direkt messen können, benötigen wir ein Werkzeug, welches aus der gemessenen Position, die Krafteinwirkung auf unsere System schätzt. Dies ist eine typische Anwendung für das Kalman-Filter. + +Das Filter schätzt den Zustand eines Systems anhand von Messungen und kann den nächsten Zustand errechnen und aus dieser Schätzung auch eine erwartete Messung herleiten. +Die für das Filter relevante Grösse ist dann nicht mehr die eigentliche Messung, sondern die Differenz aus Messung und Erwartung, da diese Differenz, die Innovation, eine Aussage über die nicht-deterministischen, externen Einflüsse auf das System ermöglicht. +Das Filter berücksichtigt dazu nicht nur die Messung und den Zustand, sondern auch die Unsicherheiten dieser beiden Grössen, welche als Parameter in das Modell des Systems einfliessen. + Unser Ziel ist es, anhand der Messung die eigentlich interessante Grösse $f$ zu bestimmen. -Dabei wird durch eine deterministische Vorhersage, in dem der Zustand * Eigendynamik des Systems gerechnet. +Dabei wird durch eine deterministische Vorhersage, in dem der Zustand mit der Eigendynamik des Systems multipliziert wird. Die Idee dahinter ist, dass das Kalman-Filter die nicht-deterministische Grösse $f$ anhand der Messung und der Vorhersage zu bestimmen. -Für mehrere Dimensionen (x,y,z) würde der Pythagoras für das System benötigt werden. +Für mehrere Dimensionen (x,y,z) würde der Satz von Pythagoras für das System benötigt. Da sich der Pythagoras bekanntlich nicht linear verhält, kann kein lineares Kalman-Filter implementiert werden. Da das Kalman-Filter besonders effektiv und einfach für lineare Abläufe geeignet ist, würde eine zweidimensionale Betrachtung den Rahmen dieser Arbeit sprengen. Einfachheitshalber beschränken wir uns auf den linearen Fall, da dadurch die wesentlichen Punkte bereits aufgezeigt werden. @@ -30,8 +35,7 @@ Für ein nicht-lineares System werden Extended Kalman-Filter benötigt, bei dene \subsection{Geschichte} Das Kalman-Filter wurde 1960 von Rudolf Emil Kalman entdeckt und direkt von der NASA für die Appollo Mission benutzt. -Das Filter kommt mit wenig Rechenleistung aus und war somit dafür geeignet die Rakete bei der Navigation zu unterstützen. -Das Filter schätzt den Zustand eines Systems anhand von Messungen und kann den nächsten Zustand errechnen. Eine typische Anwendungen des Kalman-Filters ist Glättung von verrauschten Daten und die Schätzung von Parametern. Dies kommt heutzutage in jedem Satellit, Navigationssystem, Smartphones und Videospielen vor. +Das Filter kommt mit wenig Rechenleistung aus und war somit dafür geeignet die Rakete bei der Navigation zu unterstützen.
Eine typische Anwendungen des Kalman-Filters ist Glättung von verrauschten Daten und die Schätzung von Parametern. Dies kommt heutzutage in jedem Satellit, Navigationssystem, Smartphones und Videospielen vor. \subsection{Wahrscheinlichkeit} Das Kalman-Filter schätzt den wahrscheinlichsten Wert zwischen Normalverteilungen. @@ -62,11 +66,14 @@ und der Messung: {y_2}(x;{\mu_2},{\sigma_2})=\frac{1}{\sqrt{2\pi\sigma_2^2}}\quad e^{-\frac{(x-{\mu_2})^2}{2{\sigma_2}^2}}. \] Diesen werden nun multipliziert und durch deren Fläche geteilt um sie wieder zu normieren, $\odot$ beschreibt dabei die Multiplikation und die Normierung auf den Flächeninhalt eins : -\begin{align*}
{y_f}(x; {\mu_f}, {\sigma_f}) = {y_1}(x;{ \mu_1},{ \sigma_1}) \odot {y_2}(x; {\mu_2}, {\sigma_2}) +\begin{align*} + {y_f}(x; {\mu_f}, {\sigma_f}) = {y_1}(x;{ \mu_1},{ \sigma_1}) \odot {y_2}(x; {\mu_2}, {\sigma_2}) &= \frac{1}{\sqrt{2\pi\sigma_1^2}}\quad e^{-\frac{(x-{\mu_1})^2}{2{\sigma_1}^2}} \odot \frac{1}{\sqrt{2\pi\sigma_2^2}}\quad e^{-\frac{(x-{\mu_2})^2}{2{\sigma_2}^2}} \\ - &=
\frac{ \frac{1}{\sqrt{2\pi\sigma_1^2}}e^{-\frac{(x-{\mu_1})^2}{2{\sigma_1}^2}} \cdot \frac{1}{\sqrt{2\pi\sigma_2^2}}e^{-\frac{(x-{\mu_2})^2}{2{\sigma_2}^2}}}{\int {y_1} {y_2} dx}.
\end{align*} + &= + \frac{ \frac{1}{\sqrt{2\pi\sigma_1^2}}e^{-\frac{(x-{\mu_1})^2}{2{\sigma_1}^2}} \cdot \frac{1}{\sqrt{2\pi\sigma_2^2}}e^{-\frac{(x-{\mu_2})^2}{2{\sigma_2}^2}}}{\int {y_1} {y_2} dx}. +\end{align*} Diese Kombination der beiden Verteilungen resultiert wiederum in einer Normalverteilung mit Erwartungswert \[ \mu_f = \frac{\mu_1\sigma_2^2 + \mu_2 \sigma_1^2}{\sigma_1^2 + \sigma_2^2} \] @@ -94,6 +101,78 @@ Da wir nun ein Werkzeug besitzen, dass die Beschleunigung, welche auf das Gehäu Um den Kalman Filter zu starten, müssen gewisse Bedingungen definiert werden. In diesem Abschnitt werden die einzelnen Parameter und Matrizen erklärt und erläutert, wofür sie nützlich sind. +\subsection{Fiter-Agorithmus} +Nachdem alle Parameter aufgestellt sind, wird das Filter initialisiert. +Zuerst wird der nächste Zustand der Masse vorhergesagt, danach wird die Messung präzisiert und laufend aktualisiert. +Das Filter berechnet aufgrund der aktuellen Schätzung eine Vorhersage. +Diese wird, sobald verfügbar, mit der Messung verglichen. +Aus dieser Differenz und den Unsicherheiten des Prozesses ($Q$) und der Messung ($R$) wird der wahrscheinlichste, neue Zustand geschätzt. +Dabei muss genau auf den Index geachtet werden. Nach dem Artikel~\cite{erdbeben:wikipedia} ist die Indexierung so genormt: +Der Zeitschritt wird mit $k$ definiert, $k-1$ ist somit ein Zeitschritt vor $k$. +Auf der linken Seite von | wird der aktuelle Zustand verlangt, bzw. ausgegeben, auf der rechten Seiten den bisherigen Zustand. +Dies bedeutet, dass die Notation $x_{n|m}$ die Schätzung von $x$ zum Zeitpunkt $n$ bis und mit zur Zeitpunkt $m \leq \ n$ präsentiert. + +\subsubsection*{Vorhersage} +Im Filterschritt Vorhersage wird der nächste Zustand anhand des Anfangszustand und der Systemmatrix berechnet. +Dies funktioniert mit dem Rechenschritt: +\[ +{x_{k|k-1}}=\Phi{x_{k-1|k-1}}= \exp(A\Delta t){x_{k-1|k-1}}. +\] +Die Kovarianz $P_{k|k-1}$ wird ebenfalls neu berechnet. Zudem kommt noch die Prozessunsicherheit $Q$ dazu, so dass die Unsicherheit des Anfangsfehlers $P$ laufend verändert. +Dies funktioniert durch multiplizieren der Systemmatrix mit dem aktualisierten Anfangsfehler. +Dazu wird noch die Prozessunsicherheit addiert, somit entsteht die Gleichung +\[ +{P_{k|k-1}}=\Phi {P_{k-1|k-1}} {\Phi _{k}}^T + {Q_{k-1}}. +\] +Es vergeht genau $\Delta t$ Zeit, und dieser Vorgang wird wiederholt. +Das hochgestellte T bezeichnet die transponierte Matrix. +Dabei wird in den späteren Schritten überprüft, wie genau die letzte Anpassung von $P$ zur Messung stimmt. +Ist der Unterschied klein, wird die Kovarianz $P$ kleiner, ist der Unterschied gross, wird auch die Kovarianz grösser. +Das Filter passt sich selber an und korrigiert sich bei grosser Abweichung. + +\subsubsection*{Messen} +Der Sensor wurde noch nicht benutz, doch genau der liefert Werte für das Filter. +Die aktuellen Messwerte $z$ werden die Innovation $w$ mit dem Zustandsvektor $x$ und der Messmatrix $H$ zusammengerechnet. +Hier bei wird lediglich die Messung mit dem Fehler behaftet, und die Messmatrix $H$ mit der Vorhersage multipliziert. +\[ +{w_{k}}={z_{k}}-{H}{x_{k|k-1}}. +\] +Die Innovation ist der Teil der Messung, die nicht durch die Systemdynamik erklärt werden kann. +Die Hilfsgröße Innovation beschreibt, wie genau die Vorhersage den aktuellen Messwert mittels der Systemmatrix $\Phi$ beschreiben kann. +Für eine schlechte Vorhersage wird die dazugehörige Innovation gross, für eine genaue Vorhersage dagegen klein sein. +Entsprechende Korrekturen müssen dann gross bzw. nur gering ausfallen. +Innovation = Messung - Vorhersage. Dies leuchtet ein, eine Innovation von 0 bedeutet, dass die Messung nichts Neues hervorbrachte. + +Im nächsten Schritt wir analysiert, mit welcher Kovarianz weiter gerechnet wird. +Hierbei wird die Unsicherheit $P$, die Messmatrix $H$ und die Messunsicherheit $R$ miteinander verrechnet. +\[ +{S_{k}}={H}{P_{k|k-1}}{H}^T+{R_{k}} +\] + +\subsubsection*{Aktualisieren} +Im nächsten Schritt kommt nun die Wahrscheinlichkeit dazu. +\[{K_{k}}= {P_{k|k-1}} {H^T}{S_{k}^{-1}}\] +Die Grösse $K$ wird Kalman-Gain genannt. +Das Kalman-Gain gibt dem Zustand die Gewichtung, bzw. wie die Vorhersage auf den Zustand passt. +Vereinfacht gesagt: Es wird das das Verhältnis zwischen der Unsicherheit der Vorhersage $P_k$ zu der zugehörigen Messunsicherheit $R_k$ gebildet. +In unserem Fall wird werden die Elemente der Kalman-Matrix vorweg berechnet, da das Kalman-Gain ohne Messungen auskommt. + +Anhand der Informationen aus der Innovation wird das Kalman-Gain $K$ gebildet. Dabei beschreibt das Kalman-Gain die Wirkung der Innovation auf den geschätzten Zustand. So wird das System aktualisiert. +\[ +{x_{k|k}}={x_{k|k-1}}+{K_{k}}{w_{k}} +\] +Dabei wird der Unterschied zwischen dem erwarteten, errechneten, Zustand und dem gemessenen Zustand berechnet. + +Dazu kommt eine neue Kovarianz für den nächste Vorhersageschritt: +\[ +{P_{k|k}}=(I-{K_{k}}{H}){P_{k|k-1}} +\] +Der ganze Algorithmus und beginnt wieder mit der Vorhersage +\[ +{x_{k|k-1}}=\Phi{x_{k-1|k-1}}= \exp(A\Delta t){x_{k|k-1}}. +\] + + \subsection{Anfangsbedingungen} \subsubsection*{Anfangszustand $x$} Das Filter benötigt eine Anfangsbedingung. @@ -141,14 +220,14 @@ A = \left( \end{array}\right) \] Dabei soll der Kalman-Filter in diskreten Zeitschritten $\Delta t$ arbeiten. +$A$ beschreibt ein kontinuierliches System ($\dot x = Ax$), wir benötigen jedoch ein Zeit-diskretes System $x_{k+1} = \Phi x_k$. Die Übergangs-Matrix erhalten wir aus der Systemdynamikmatrix mittels Exponentialfunktion: \[\Phi = \exp(A\Delta t). \] Die Matrix $\Phi$ beschreibt die Übergänge zwischen zeitlich aufeinanderfolgenden Zuständen $x_{k-1}$ und $x_{k}$ \subsubsection*{Prozessrauschkovarianzmatrix $Q$} Die Prozessrauschmatrix teilt dem Filter mit, wie sich der Prozess verändert. -Kalman-Filter berücksichtigen Unsicherheiten wie Messfehler und -rauschen. -In der Matrix $Q$ geht es jedoch um die Unsicherheit, die der Prozess mit sich bringt. +Die Matrix $Q$ beschreibt die Unsicherheit, die der Prozess mit sich bringt. Bei unserem Modell könnte das beispielsweise ein Windstoss an die Masse sein oder auch die Ungenauigkeiten im Modell, wie die Annahme das dich die Kraft nicht ändert. Für uns wäre dies: \[ @@ -160,11 +239,10 @@ Q = \left( \end{array}\right) \] Die Standabweichungen müssten statistisch ermittelt werden, da der Fehler nicht vom Sensor kommt und somit nicht vom Hersteller gegeben ist. -Das Bedeutet wiederum dass $Q$ die Unsicherheit des Prozesses beschreibt und nicht die der Messung. \subsubsection*{Messmatrix $H$} Die Messmatrix gibt an, welche Parameter gemessen werden. -$H$ ist die Gleichung die für die Vorhersage der Messung. +$H$ ist die Matrix für die Vorhersage der Messung. In unserem Falle ist es die Position der Massen. \[ H = (1, 0, 0) @@ -179,77 +257,6 @@ R= ({\sigma_\mathrm{sensor}}^2). Diese Messrauchen wird meistens vom Sensorhersteller angegeben. Für unsere theoretische Apparatur wird hier ein kleiner Fehler eingesetzt da heutige Sensoren sehr genau messen können. -\subsection{Fiter-Agorithmus} -Nachdem alle Parameter aufgestellt sind, wird das Filter initialisiert. -Zuerst wird der nächste Zustand der Masse vorhergesagt, danach wird die Messung präzisiert und laufend aktualisiert. -Das Filter berechnet aufgrund der aktuellen Schätzung eine Vorhersage. -Diese wird, sobald verfügbar, mit der Messung verglichen. -Aus dieser Differenz und den Unsicherheiten des Prozesses ($Q$) und der Messung ($R$) wird der wahrscheinlichste, neue Zustand geschätzt. -Dabei muss genau auf den Index geachtet werden. Nach dem Artikel~\cite{erdbeben:wikipedia} ist die Indexierung so genormt: -Der Zeitschritt wird mit $k$ definiert, $k-1$ ist somit ein Zeitschritt vor $k$. -Auf der linken Seite von | wird der aktuelle Zustand verlangt, bzw. ausgegeben, auf der rechten Seiten den bisherigen Zustand. -Dies bedeutet, dass die Notation $x_{n|m}$ die Schätzung von $x$ zum Zeitpunkt $n$ bis und mit zur Zeitpunkt $m \leq \ n$ präsentiert. - -\subsubsection*{Vorhersage} -Im Filterschritt Vorhersage wird der nächste Zustand anhand des Anfangszustand und der Systemmatrix berechnet. -Dies funktioniert mit dem Rechenschritt: -\[ -{x_{k|k-1}}=\Phi{x_{k-1|k-1}}= \exp(A\Delta t){x_{k-1|k-1}}. -\] -Die Kovarianz $P_{k|k-1}$ wird ebenfalls neu berechnet. Zudem kommt noch die Prozessunsicherheit $Q$ dazu, so dass die Unsicherheit des Anfangsfehlers $P$ laufend verändert. -Dies funktioniert durch multiplizieren der Systemmatrix mit dem aktualisierten Anfangsfehler. -Dazu wird noch die Prozessunsicherheit addiert, somit entsteht die Gleichung -\[ -{P_{k|k-1}}=\Phi {P_{k-1|k-1}} {\Phi _{k}}^T + {Q_{k-1}}. -\] -Es vergeht genau $\Delta t$ Zeit, und dieser Vorgang wird wiederholt. -Das hochgestellte T bezeichnet die transponierte Matrix. -Dabei wird in den späteren Schritten überprüft, wie genau die letzte Anpassung von $P$ zur Messung stimmt. -Ist der Unterschied klein, wird die Kovarianz $P$ kleiner, ist der Unterschied gross, wird auch die Kovarianz grösser. -Das Filter passt sich selber an und korrigiert sich bei grosser Abweichung. - -\subsubsection*{Messen} -Der Sensor wurde noch nicht benutz, doch genau der liefert Werte für das Filter. -Die aktuellen Messwerte $z$ werden die Innovation $w$ mit dem Zustandsvektor $x$ und der Messmatrix $H$ zusammengerechnet. -Hier bei wird lediglich die Messung mit dem Fehler behaftet, und die Messmatrix $H$ mit der Vorhersage multipliziert. -\[ -{w_{k}}={z_{k}}-{H}{x_{k|k-1}}. -\] -Die Innovation ist der Teil der Messung, die nicht durch die Systemdynamik erklärt werden kann. -Die Hilfsgröße Innovation beschreibt, wie genau die Vorhersage den aktuellen Messwert mittels der Systemmatrix $\Phi$ beschreiben kann. -Für eine schlechte Vorhersage wird die dazugehörige Innovation gross, für eine genaue Vorhersage dagegen klein sein. -Entsprechende Korrekturen müssen dann gross bzw. nur gering ausfallen. -Innovation = Messung - Vorhersage. Dies leuchtet ein, eine Innovation von 0 bedeutet, dass die Messung nichts Neues hervorbrachte. - -Im nächsten Schritt wir analysiert, mit welcher Kovarianz weiter gerechnet wird. -Hierbei wird die Unsicherheit $P$, die Messmatrix $H$ und die Messunsicherheit $R$ miteinander verrechnet. -\[ -{S_{k}}={H}{P_{k|k-1}}{H}^T+{R_{k}} -\] - -\subsubsection*{Aktualisieren} -Im nächsten Schritt kommt nun die Wahrscheinlichkeit dazu. -\[{K_{k}}= {P_{k|k-1}} {H^T}{S_{k}^{-1}}\] -Dieser Vorgang wird Kalman-Gain genannt. -Das Kalman-Gain gibt dem Zustand die Gewichtung, bzw. wie die Vorhersage auf den Zustand passt. -Vereinfacht gesagt: Es wird das das Verhältnis zwischen der Unsicherheit der Vorhersage $P_k$ zu der zugehörigen Messunsicherheit $R_k$ gebildet. -In unserem Fall wird werden die Elemente der Kalman-Matrix vorweg berechnet, da das Kalman-Gain ohne Messungen auskommt. - -Anhand der Informationen aus dem Kalman-Gain $K$ wird das System aktualisiert. -\[ -{x_{k|k}}={x_{k|k-1}}+{K_{k}}{w_{k}} -\] -Dabei wird der Unterschied zwischen dem erwarteten, errechneten, Zustand und dem gemessenen Zustand berechnet. - -Dazu kommt eine neue Kovarianz für den nächste Vorhersageschritt: -\[ -{P_{k|k}}=(I-{K_{k}}{H}){P_{k|k-1}} -\] -Der ganze Algorithmus und beginnt wieder mit der Vorhersage -\[ -{x_{k|k-1}}=\Phi{x_{k-1|k-1}}= \exp(A\Delta t){x_{k|k-1}}. -\] - \subsection{Zusammenfassung } Zusammenfassend kann das Kalman-Filter in offizieller Typus dargestellt werden. Dabei beginnt das Filter mit dem Anfangszustand für $k=0$ diff --git a/buch/papers/ifs/teil0.tex b/buch/papers/ifs/teil0.tex index af2105e..2a803d6 100644 --- a/buch/papers/ifs/teil0.tex +++ b/buch/papers/ifs/teil0.tex @@ -5,8 +5,13 @@ % \section{Einleitung \label{ifs:section:teil0}} \rhead{Was ist ein Iteriertes Funktionsschema} -Mit der Hilfe von Iterierten Funktionsschemata (IFS) können mit nur wenigen affinen Funktionen komplexe Bilder beschrieben werden. +Mit der Hilfe von iterierten Funktionsschemata (IFS) können mit nur wenigen affinen Funktionen komplexe Bilder beschrieben werden. +\index{iterierte Funktionsschemata}% +\index{Funktionschemata, iterierte}% +\index{affine Funktion}% In der Regel sind diese Bilder Fraktale. -Wie es dazu kommt, und wie man mit IFS auch Bilder komprimieren kann, wollen wir in diesem Kapitel untersuchen. +\index{Fraktal}% +Wie es dazu kommt und wie man mit IFS auch Bilder komprimieren kann, wollen wir in diesem Kapitel untersuchen. +\index{Bildkompression}% diff --git a/buch/papers/ifs/teil1.tex b/buch/papers/ifs/teil1.tex index caba120..08e1cbf 100644 --- a/buch/papers/ifs/teil1.tex +++ b/buch/papers/ifs/teil1.tex @@ -11,20 +11,27 @@ Bevor wir die IFS ansehen, schauen wir uns Fraktale genauer an. In diesem Kapitel orientieren wir uns an den Eigenschaften, welche Kenneth Falconer in seinem Buch {\em Fractal Geometry} \cite{ifs:fractal-geometry} beschreibt. Von einem Fraktal $F$ können wir folgende Eigenschaften erwarten: \begin{enumerate} - \item $F$ hat eine unendlich feine Struktur + \item $F$ hat eine unendlich feine Struktur. \item $F$ kann nicht mit der klassischen Geometrie beschrieben werden. \item Oftmals hat $F$ eine Form von Selbstähnlichkeit. +\index{Selbstähnlichkeit}% Man spricht von einer selbstähnlichen Menge, wenn sich diese Menge überdecken lässt mit echten Teilmengen, die zur ganzen Menge ähnlich sind. - \item Die `fraktale Dimension' ist grösser als die topologische Dimension. + \item Die ``fraktale Dimension'' ist grösser als die topologische Dimension. +\index{Dimension, topologische}% +\index{topologische Dimension}% +\index{fraktale Dimension}% +\index{Dimension, fraktale}% \item Viele Fraktale lassen sich auf eine simple Art definieren. Es genügen zum Beispiel nur wenige Funktionen, welche rekursiv ausgeführt werden, um ein Fraktal zu definieren. \end{enumerate} -\subsection{Koch Kurve +\subsection{Koch-Kurve \label{ifs:subsection:lilkoch}} -Diese Eigenschaften möchten wir nun am Beispiel der Koch Kurve näher anschauen. -In Abbildung \ref{ifs:kochkurve8} sehen wir die Koch Kurve. Sie besteht aus lauter kleineren Kopien von sich selbst. +\index{Kochsche Kurve}% +\index{Schneeflockenkurve}% +Diese Eigenschaften möchten wir nun am Beispiel der Koch-Kurve näher anschauen. +In Abbildung \ref{ifs:kochkurve8} sehen wir die Koch-Kurve. Sie besteht aus lauter kleineren Kopien von sich selbst. Der Konstruktionsvorgang ist in Abbildung \ref{ifs:kochconst} dargestellt. Gestartet wird mit einer einzelnen Strecke der Länge $a$. -Diese wird in ersten Schritt durch vier gleich langen Streckenabschnitte der Länge $\frac{a}{3}$ ersetzt. +Diese wird im ersten Schritt durch vier gleich langen Streckenabschnitte der Länge $\frac{a}{3}$ ersetzt. In \ref{ifs:kochconstb} ist die Anordnung dieser vier Streckenabschnitte ersichtlich. Dieser Schritt wird nun für jeden der resultierten Streckenabschnitten wiederholt. Die Kurve besteht also aus vier kleineren Kopien der ganzen Kurve, was auch unter Selbstähnlichkeit bekannt ist. @@ -33,7 +40,7 @@ Die Kurve besteht also aus vier kleineren Kopien der ganzen Kurve, was auch unte \begin{figure} \centering \includegraphics{papers/ifs/images/koch8} - \caption{Koch Kurve} + \caption{Koch-Kurve} \label{ifs:kochkurve8} \end{figure} @@ -48,23 +55,24 @@ Die Kurve besteht also aus vier kleineren Kopien der ganzen Kurve, was auch unte \subfigure[]{ \label{kochconstc} \includegraphics[width=0.32\textwidth]{papers/ifs/images/koch2}} - \caption{(a) Start (b) 1. Iteration (c) 2. Iteration} + \caption{(a) Start, (b) 1.~Iteration, (c) 2.~Iteration} \label{ifs:kochconst} \end{figure} Die resultierende Kurve hat ein paar interessante Eigenschaften. Die Länge der Kurve der jeweiligen Iteration lässt sich mit \begin{align*} - l_0 = a ,\quad l_1 = a \frac{4}{3} ,\quad l_2 = a \left( \frac{4}{3}\right)^2 , \quad \cdots , \quad + l_0 = a ,\quad l_1 = a \frac{4}{3} ,\quad l_2 = a \left( \frac{4}{3}\right)^2 , \dots , \quad l_n = a \cdot \left( \frac{4}{3}\right)^n \quad \Rightarrow \quad \lim_{n\to\infty} a \left( \frac{4}{3}\right)^n = \infty \end{align*} berechnen. In jedem Schritt wird die Länge um den Faktor $\frac{4}{3}$ verlängert. Daraus resultiert, dass die Länge gegen $\infty$ divergiert. +\index{divergiert}% -Die Fläche zwischen der Strecke von $O$ nach $(1,0)$ und der Kurve lässt sich folgendermassen berechnen +Die Fläche zwischen der Strecke von $O$ nach $(1,0)$ und der Kurve lässt sich folgendermassen berechnen: \begin{align*} A_0 &= 0 \\ A_1 &= \left( \frac{a}{3}\right)^2 \frac{\sqrt{3}}{4} = a^2 \frac{\sqrt{3}}{36}\\ @@ -72,36 +80,39 @@ Die Fläche zwischen der Strecke von $O$ nach $(1,0)$ und der Kurve lässt sich A_3 &= A_1 + A_2 + 4^2 \left( \frac{a}{3^2}\right)^2 \frac{\sqrt{3}}{4} = A_1 + \frac{4}{9} A_1 + \left( \frac{4}{9}\right)^2 A_1. \end{align*} Wir sehen, dass mit jedem Schritt die neu dazugekommene Fläche um $\frac{4}{9}$ kleiner ist. -Die Gesamtfläche ist daher gegeben durch die konvergierende geometrische Reihe, +Die Gesamtfläche ist daher gegeben durch die konvergierende geometrische Reihe \begin{align*} - A_n = A_1 \sum_{i = 0}^{n-1} \left( \frac{4}{9}\right)^n = a^2 \frac{\sqrt{3}}{36} \sum_{i = 0}^{n-1} \left( \frac{4}{9}\right)^n \\ + A_n = A_1 \sum_{i = 0}^{n-1} \left( \frac{4}{9}\right)^n = a^2 \frac{\sqrt{3}}{36} \sum_{i = 0}^{n-1} \left( \frac{4}{9}\right)^n \end{align*} mit dem Grenzwert \begin{align*} \lim_{n\to\infty} a^2 \frac{\sqrt{3}}{36} \sum_{i = 0}^{n-1} \left( \frac{4}{9}\right)^n = \frac{\sqrt{3}}{20} a^2. \end{align*} -Wie wir sehen ist die Koch-Kurve ein Objekt mit endlicher Fläche, aber unendlichem Umfang. +Wie wir sehen, ist die Koch-Kurve ein Objekt mit endlicher Fläche, aber unendlichem Umfang. Zu guter Letzt bestimmen wir die Dimension der Kurve. Es gibt viele verschiedene Methoden die Dimension zu definieren. Diese können dann auch unterschiedliche Resultate liefern. Vor allem im Zusammenhang mit Fraktalen findet man in der Literatur unterschiedliche Arten. -Da die Kochsche Kurve selbstähnlich ist, ist die Ähnlichkeits-Dimension \cite{ifs:fractal-geometry} die angemessene Messzahl für die Dimension. -Die Ähnlichkeits-Dimension $D$ ist das Verhältnis der Logarithmen der Anzahl Kopien $N$ des Originales und deren Skalierungsfaktor $\epsilon$ +Da die Kochsche Kurve selbstähnlich ist, ist die Ähnlichkeitsdimension \cite{ifs:fractal-geometry} die angemessene Masszahl für die Dimension. +Die Ähnlichkeitsdimension $D$ ist das Verhältnis der Logarithmen der Anzahl Kopien $N$ des Originales und deren Skalierungsfaktor $\varepsilon$ \begin{align*} - D = - \frac{\log N}{\log \epsilon }. + D = - \frac{\log N}{\log \varepsilon }. \end{align*} -Die Ähnlichkeits-Dimension stimmt für viele gewöhnliche Geometrische Objekte mit der intuitiven Vorstellung von Dimension überein. -Zum Beispiel besteht ein Dreieck aus $N = 4$ Kopien mit halber ($\epsilon = 1/2$) Kantenlänge $l$, Abbildung \ref{ifs:trinagle}. +Die Ähnlichkeitsdimension stimmt für viele gewöhnliche geometrische Objekte mit der intuitiven Vorstellung von Dimension überein. +Zum Beispiel besteht das Dreieck +von Abbildung \ref{ifs:trinagle} +aus $N = 4$ Kopien mit halber ($\varepsilon = 1/2$) Kantenlänge $l$. Somit hat das Dreieck die Dimension $D = 2$. -Die Koch Kurve besteht aus $N = 4$ Kopien mit Kantenlänge $\epsilon =l \cdot 1/3$. -Ihre Ähnlichkeits-Dimension ist somit + +Die Koch Kurve besteht aus $N = 4$ Kopien mit Kantenlänge $\varepsilon =l \cdot 1/3$. +Ihre Ähnlichkeitsdimension ist somit \begin{align*} - D = - \frac{\log N }{\log \epsilon } = - \frac{\log 4 }{\log 1/3 } \approx 1.2619. + D = - \frac{\log N }{\log \varepsilon } = - \frac{\log 4 }{\log 1/3 } \approx 1.2619. \end{align*} Wie wir nun sehen, besitzt die Koch-Kurve alle oben beschriebenen Eigenschaften von Fraktalen. -Dies muss jedoch nicht bei allen Fraktalen der Fall sein. Sonst wäre die Frage nach einer `richtigen' Definition einfach zu beantworten. +Dies muss jedoch nicht bei allen Fraktalen der Fall sein. Sonst wäre die Frage nach einer ``richtigen'' Definition einfach zu beantworten. \begin{figure} \centering \begin{tikzpicture} diff --git a/buch/papers/ifs/teil2.tex b/buch/papers/ifs/teil2.tex index d0110ed..360a2c0 100644 --- a/buch/papers/ifs/teil2.tex +++ b/buch/papers/ifs/teil2.tex @@ -8,7 +8,8 @@ \rhead{Teil 2} Wollen wir nun eine bestimmte Art anschauen, wie man Fraktale erzeugen kann. Im Beispiel auf Seite \pageref{ifs:trinagle} haben wir ein Dreieck aus 4 skalierten Kopien zusammengefügt. -Lässt man die Kopie im Zentrum des Dreiecks weg, entsteht die Grundlage des sogenannten Sierpinski-Dreieck in Abbildung \ref{ifs:sierpinski10}. +Lässt man die Kopie im Zentrum des Dreiecks weg, entsteht die Grundlage des sogenannten Sierpinski-Dreiecks in Abbildung \ref{ifs:sierpinski10}. +\index{Sierpinski-Dreieck}% \begin{figure} \centering \includegraphics[width=0.5\textwidth]{papers/ifs/images/sierpinski} @@ -16,7 +17,7 @@ Lässt man die Kopie im Zentrum des Dreiecks weg, entsteht die Grundlage des sog \label{ifs:sierpinski10} \end{figure} Es besteht aus drei kleineren Kopien von sich selbst. -Es ist also ein Selbstähnliches Gebilde. +Es ist also ein selbstähnliches Gebilde. Diese Eigenschaft wollen wir uns zunutze machen. @@ -73,7 +74,7 @@ Wendet man alle drei Funktionen auf das Sierpinski-Dreieck an X = \bigcup\limits_{i = 1}^{3} f_i(X), \end{align*} entsteht also wieder ein Sierpinski-Dreieck. -Man kann sogar noch einen Schritt weiter gehen, und sagen: Wenn wir die Funktionen auf eine beliebige Startmenge anwenden, konvergiert die Menge gegen das Sierpinski-Dreieck. +Man kann sogar noch einen Schritt weiter gehen und sagen: Wenn wir die Funktionen auf eine beliebige Startmenge anwenden, konvergiert die Menge gegen das Sierpinski-Dreieck. \begin{figure} \centering \subfigure[]{ @@ -88,19 +89,21 @@ Man kann sogar noch einen Schritt weiter gehen, und sagen: Wenn wir die Funktion \subfigure[]{ \label{ifs:sierpconstd} \includegraphics[width=0.25\textwidth]{papers/ifs/images/sierpinski6}} - \caption{Konstruktion eines Sierpinski-Dreiecks mit einem Schwarzen Quadrat als Start\\ - (a) 1. Iteration (b) 2. Iteration (c) 3. Iteration (d) 5. Iteration} + \caption{Konstruktion eines Sierpinski-Dreiecks mit einem schwarzen Quadrat als Start\\ + (a) 1.~Iteration, (b) 2.~Iteration, (c) 3.~Iteration, (d) 5.~Iteration} \label{ifs:sierpconst} \end{figure} Im Beispiel der Abbildung \ref{ifs:sierpconst} sehen wir, wie das Bild nach jeder Iteration dem Sierpinski-Dreieck ähnlicher wird. -Der `Abstand' zum Original wird immer kleiner, und konvergiert gegen null. +Der `Abstand' zum Original wird immer kleiner und konvergiert gegen null. \subsection{Iterierte Funktionensysteme \label{ifs:subsection:IteratedFunktionensysteme}} +\index{iterierte Funktionssysteme}% In diesem Abschnitt wollen wir die Erkenntnis, wie wir aus einer beliebigen Menge ein Sierpinski-Dreieck generieren können, verallgemeinern. $S_1,\dots,S_n$ sind Kontraktionen auf einer Menge $D \subset \mathbb{R}^n$. Es gilt +\index{Kontraktion}% \begin{align} |S_i(x) - S_i(y)| \leq c_i|x - y| \end{align} @@ -124,10 +127,37 @@ Wird diese Transformation iterativ ausgeführt, das heisst $S^0(E) = E, S^k(E) = \end{equation} In Worte gefasst bedeutet das, dass jede Gruppe von Kontraktionen iterativ ausgeführt gegen eine eindeutige Menge konvergiert. Diese Menge ist auch als Attraktor eines IFS bekannt. +\index{Attraktor}% Der Beweis für die Existenz eines eindeutigen Attraktors ist in \cite{ifs:fractal-geometry} beschrieben. \subsection{Beispiel: Barnsley-Farn} +\begin{figure} + \centering + \makebox[\textwidth][c]{ + \includegraphics[width=1.4\textwidth]{papers/ifs/images/farn}} + \caption{Barnsley-Farn} + \label{ifs:farn} +\end{figure}% +\begin{figure} + \centering + \includegraphics[width=\textwidth]{papers/ifs/images/farncolor2} + \caption{Vier Transformationen des Barnsley-Farn in unterschiedlichen Farben} + \label{ifs:farncolor} +\end{figure}% +\begin{figure} + \centering + \includegraphics[width=\textwidth]{papers/ifs/images/chaosspiel.pdf} + %\subfigure[]{ + % \label{ifs:farnNoWeight} + % \includegraphics[width=0.45\textwidth]{papers/ifs/images/farnnotweight}} + %\subfigure[]{ + % \label{ifs:farnrightWeight} + % \includegraphics[width=0.45\textwidth]{papers/ifs/images/farnrightwight}} + \caption{(a) Chaosspiel ohne Gewichtung, (b) $S_4$ zu wenig gewichtet} + \label{ifs:farnweight} +\end{figure}% Der Barnsley-Farn, Abbildung \ref{ifs:farn}, ist ein Beispiel eines Fraktals, welches mit einem IFS generiert werden kann. +\index{Barnsley-Farn}% Wie man schnell erkennen kann, besteht der Farn aus Blättern, welche eine grosse Ähnlichkeit zum ganzen Farn haben. Die vier affinen Transformationen \begin{align} @@ -185,7 +215,7 @@ Die vier affinen Transformationen \begin{pmatrix} 0 \\ 0.44 - \end{pmatrix},\\ + \end{pmatrix}, \label{ifs:farnFormel} \end{align} welche für die Konstruktion des Farns benötigt werden, sind in der Abbildung \ref{ifs:farncolor} farblich dargestellt. @@ -211,6 +241,7 @@ Weitere Iterationen hätten in dieser Darstellungsgrösse kaum mehr einen Unters Die zweite Methode ist das Chaosspiel \cite{ifs:chaos}. +\index{Chaosspiel}% Bis jetzt wurde immer davon gesprochen, die Transformationen auf die gesamte Menge anzuwenden. Bei komplizierteren IFS welche viele Iterationen brauchen, bis man den Attraktor erkennen kann, ist die erste Methode ziemlich rechenintensiv. Beim Chaosspiel werden die Transformationen nicht auf die Menge angewendet, sondern nur auf einen einzelnen Punkt. @@ -220,41 +251,13 @@ Es wird bei jedem Iterationsschritt nur eine Transformation $S_i$, welche zufäl Da, wie wir beim Barnsley-Farn gut sehen, nicht jede Transformation gleich viel des Bildes ausmacht, werden diese beim Chaosspiel gewichtet. Je mehr eine Transformation kontrahiert, desto weniger Punkte braucht es, um die resultierende Teilabbildung darzustellen. Im Fall des Barnsley-Farns wird $S_1$ in $1\%$, $S_2$ in $85\%$ und $S_3$ und $S_4$ in $7\%$ der Iterationen ausgeführt. -Wir sehen auch in Abbildung \ref{ifs:farncolor} gut, dass der rote Stiel, $S_1$, viel weniger Punkte braucht als der grüne Hauptteil des Blattes, $S_2$. +Wir sehen auch in Abbildung \ref{ifs:farncolor} gut, dass der rote Stiel, erzeugt von $S_1$, viel weniger Punkte braucht als der grüne Hauptteil des Blattes, erzeugt von $S_2$. -In Abbildung \ref{ifs:farnNoWeight} wurden die vier gleich stark gewichtet. -Man sieht, dass trotzt gleich vieler Iterationen wie in Abbildung \ref{ifs:farn}, der Farn nicht so gut abgebildet wird. +In Abbildung \ref{ifs:farnweight}(a) wurden die vier Transformationen gleich stark gewichtet. +Man sieht, dass trotz gleich vieler Iterationen wie in Abbildung \ref{ifs:farn}, der Farn nicht so gut abgebildet wird. -Am besten sieht man den Effekt einer schlechten Gewichtung in Abbildung \ref{ifs:farnrightWeight}. +Am besten sieht man den Effekt einer schlechten Gewichtung in Abbildung \ref{ifs:farnweight}(b). Hier wurde $S_4$, welches für das rechte untere Teilblatt zuständig ist, mit nur $1\%$ statt $7\%$ gewichtet. Man sieht, wie sich der Mangel an Punkten auf die anderen Abbildungen das Farnblattes auswirkt. In jeder Kopie des ganzen Farns fehlen die Punkte für dieses rechte untere Teilblatt. - - -\begin{figure} - \centering - \makebox[\textwidth][c]{ - \includegraphics[width=1.4\textwidth]{papers/ifs/images/farn}} - \caption{Barnsley-Farn} - \label{ifs:farn} -\end{figure} -\begin{figure} - \centering - \includegraphics[width=\textwidth]{papers/ifs/images/farncolor2} - \caption{Vier Transformationen des Barnsley-Farn in unterschiedlichen Farben} - \label{ifs:farncolor} -\end{figure} - -\begin{figure} - \centering - \includegraphics{papers/ifs/images/chaosspiel.pdf} - %\subfigure[]{ - % \label{ifs:farnNoWeight} - % \includegraphics[width=0.45\textwidth]{papers/ifs/images/farnnotweight}} - %\subfigure[]{ - % \label{ifs:farnrightWeight} - % \includegraphics[width=0.45\textwidth]{papers/ifs/images/farnrightwight}} - \caption{(a) Chaosspiel ohne Gewichtung (b) $S_4$ zu wenig gewichtet} - \label{ifs:farnweight} -\end{figure} diff --git a/buch/papers/ifs/teil3.tex b/buch/papers/ifs/teil3.tex index cebb664..0ce12d8 100644 --- a/buch/papers/ifs/teil3.tex +++ b/buch/papers/ifs/teil3.tex @@ -6,6 +6,7 @@ \section{Fraktale Bildkomprimierung \label{ifs:section:teil3}} \rhead{Fraktale Bildkomprimierung} +\index{Bildkomprimierung}% Mit dem Prinzip dieser IFS ist es auch möglich, Bilder zu komprimieren. Diese Idee hatte der Mathematiker Michael Barnsley, welcher mit seinem Buch {\em Fractals Everywhere} einen wichtigen Beitrag zum Verständnis von Fraktalen geliefert hat. Das Ziel ist, ein IFS zu finden, welches das Bild als Attraktor hat. @@ -23,17 +24,21 @@ Doch wie finden wir das PIFS, welches das Bild als Attraktor hat? \subsection{Das Kompressionsverfahren \label{ifs:subsection:malorum}} -Wir beschränken das Verfahren für Graustufenbilder. Wie das Verfahren für Farbbilder verwendet werden kann, wird später erläutert. +\index{Kompressionsverfahren}% +Wir beschränken das Verfahren auf Graustufenbilder. Wie das Verfahren für Farbbilder verwendet werden kann, wird später erläutert. +\index{Graustufenbild}% Ein Graustufenbild kann man als Pixelraster mit einer $x$ und $y$ Achse verstehen. Jedem dieser Pixel wird ein Grauwert zugeordnet. Ein Bild ist also eine Funktion, die jedem Pixel einen Grauwert \(z = f(x,y)\) zuweist. Wir suchen ein PIFS, welches das zu komprimierende Bild als Attraktor hat. -In einem ersten Schritt teilen wir das Bild in disjunkte benachbarte $b \times b$ Pixel-Quadrate auf. Diese Blöcke nennen wir Range-Blöcke der Menge $R=\{R_0,R_1,...R_m\}$. Diese sind als Raster im rechten Bild der Abbildung \ref{ifs:FIC} dargestellt. +In einem ersten Schritt teilen wir das Bild in disjunkte benachbarte $b \times b$\,Pixel Quadrate auf. Diese Blöcke nennen wir Range-Blöcke der Menge $R=\{R_0,R_1,...R_m\}$. Diese sind als Raster im rechten Bild der Abbildung \ref{ifs:FIC} dargestellt. +\index{Range-Block}% +\index{Domain-Block}% -Im nächsten Schritt teilen wir das Bild in alle möglichen $2b \times 2b$ Pixel-Quadrate auf. Diese sind die Domain-Blöcke der Menge $D = \{D_0,D_1,...D_n\}$. +Im nächsten Schritt teilen wir das Bild in alle möglichen $2b \times 2b$\,Pixel Quadrate auf. Diese sind die Domain-Blöcke der Menge $D = \{D_0,D_1,...D_n\}$. Im dritten und letzten Schritt wird für jeden Range-Block $R_i$ ein Domain-Block $D_j$ gesucht, welcher ihm am ähnlichsten ist. -Zwei Beispiele wie solche Domain-, und Range-Block Paare aussehen können, sehen wir in Abbildung \ref{ifs:FIC} +Zwei Beispiele, wie solche Domain- und Range-Block Paare aussehen können, sehen wir in Abbildung \ref{ifs:FIC} \subsubsection{Finden des ähnlichsten $D_j$} Zuerst brauchen wir die Transformation @@ -54,10 +59,10 @@ Zuerst brauchen wir die Transformation \alpha_i \\ \beta_i \\ g_i - \end{pmatrix} + \end{pmatrix}, \end{align*} um ein Element aus $D$ auf ein Element von $R$ abzubilden. -Das bestimmen der besten Transformation kann man in drei Schritte aufteilen. +Das Bestimmen der besten Transformation kann man in drei Schritte aufteilen. \textbf{Schritt 1: }Wenn wir die Grauwerte ausser acht lassen, haben wir die affine Abbildung \begin{align} @@ -74,9 +79,10 @@ Das bestimmen der besten Transformation kann man in drei Schritte aufteilen. \begin{pmatrix} \alpha_i \\ \beta_i - \end{pmatrix}. + \end{pmatrix} \label{ifs:affTrans} \end{align} +zu finden. Da wir mit Pixeln arbeiten, ist die Auswahl der möglichen Abbildungen begrenzt. Wir sind auf folgende acht Abbildungen beschränkt: \begin{itemize} @@ -85,25 +91,29 @@ Wir sind auf folgende acht Abbildungen beschränkt: \item Spiegelung an der vertikalen, horizontalen und den Diagonalachsen. \end{itemize} Da wir ein $2b \times 2b$ Feld auf ein $b \times b$ Feld abbilden möchten, müssen wir zuerst $D_j$ um $1/2$ skalieren. -Dies erreichen wir, indem wir alle disjunkten $2 \times 2$ Pixel Blöcke mit einem Pixel des Grautones deren Mittelwertes ersetzen. +Dies erreichen wir, indem wir alle disjunkten $2 \times 2$\,Pixel Blöcke durch ein Pixel mit dem Grauton des Mittelwertes ersetzen. +\index{Grauton}% \textbf{Schritt 2: }Es muss nicht nur eine geometrische Abbildung, sondern auch eine Abbildung für die Grautöne gewählt werden. Letztere lässt sich mit den Parametern $s_i$ und $g_i$ beschrieben. -Wir suchen einen linearen Zusammenhang zwischen den Grautönen des Domain-, und Range-Block. $s_i$ verändert den Kontrast und $g_i$ verschiebt die Grautöne auf die richtige Helligkeit, sie bilden die lineare Funktion +Wir suchen einen linearen Zusammenhang zwischen den Grautönen des Domain- und Range-Block. $s_i$ verändert den Kontrast und $g_i$ verschiebt die Grautöne auf die richtige Helligkeit, sie bilden die lineare Funktion +\index{Helligkeit}% \begin{align*} z' = s_i z + g_i. \end{align*} -Für die Bestimmung dieser Parameter führen wir zuerst die Bildfunktionen $f_{R_i}$ und $\tilde{f_{R_i}}$ ein. -$f_{R_i}$ ist die Bildfunktion des Range-Blockes $R_i$ und $\tilde{f_{R_i}}$ ist die Bildfunktion des zuerst skalierten und dann mit \eqref{ifs:affTrans} transformierten Domain-Blocks $D_j$. +Für die Bestimmung dieser Parameter führen wir zuerst die Bildfunktionen $f_{R_i}$ und $\tilde{f}_{R_i}$ ein. +$f_{R_i}$ ist die Bildfunktion des Range-Blockes $R_i$ und $\tilde{f}_{R_i}$ ist die Bildfunktion des zuerst skalierten und dann mit \eqref{ifs:affTrans} transformierten Domain-Blocks $D_j$. Wir suchen $s_i$ und $g_i$ so das der quadratische Abstand zwischen \begin{align*} - \bar{f_{R_i}} = s_i \tilde{f_{R_i}} + g_i + \bar{f}_{R_i} = s_i \tilde{f}_{R_i} + g_i \end{align*} und $f_{R_i}$ am kleinsten ist. Dies ist ein klassisches Problem der linearen Regression. Die Parameter lassen sich mit +\index{lineare Regression}% +\index{Regression, lineare}% \begin{align*} - s_i = \frac{\operatorname{cov}(f_{R_i}, \tilde{f_{R_i}})}{\operatorname{var}(\tilde{f_{R_i}})} \\ - g_i = E(f_{R_i}) - s E(\tilde{f_{R_i}}) + s_i = \frac{\operatorname{cov}(f_{R_i}, \tilde{f}_{R_i})}{\operatorname{var}(\tilde{f}_{R_i})} \\ + g_i = E(f_{R_i}) - s E(\tilde{f}_{R_i}) \end{align*} berechnen. Die Varianz und Kovarianz erstrecken sich über die Grauwerte der Pixel der Blöcke. @@ -111,13 +121,15 @@ Mit diesen Parametern haben wir nun die Transformation vollständig bestimmt. Um zu beurteilen wie ähnlich der Domain-Block $D_j$ mit der gefundenen Transformation $T$ dem Range-Block ist, berechnet man den quadratischen Fehler \begin{align*} - e = d(f_{R_i}, \bar{f_{R_i}}). + e = d(f_{R_i}, \bar{f}_{R_i}) += +E(|f_{R_i} - \bar{f}_{R_i}|^2) \end{align*} $e$ sollte so klein wie möglich sein. \textbf{Schritt 3: } Somit haben wir die zwei Schritte um eine Transformation $T_i$ zu finden. -Wir führen den zweiten Schritt für jede der acht möglichen affinen Abbildungen vom ersten Schritt aus, und bestimmen den jeweilig resultierenden Fehler $e$. +Wir führen den zweiten Schritt für jede der acht möglichen affinen Abbildungen vom ersten Schritt aus und bestimmen den jeweilig resultierenden Fehler $e$. Es resultieren acht $T_j$ mit ihren jeweiligen Fehlern. Um den besten Domain-Block zu finden, führen wir die drei Schritte für jeden Domain-Block aus. @@ -129,11 +141,12 @@ Am Ende des Algorithmus haben wir für jeden Range-Block den zugehörigen Domain \begin{figure} \centering \includegraphics[width=\textwidth]{papers/ifs/images/FIC} - \caption{Domain-, und Range-Block Paare in Grün und Rot} + \caption{Domain- und Range-Block Paare in Grün und Rot} \label{ifs:FIC} \end{figure} \subsubsection{Rekonstruktion des Bildes} +\index{Rekonstruktion}% Mit den gefundenen Abbildungen lässt sich das Bild generieren. Wir beginnen wie schon im letzten Kapitel mit einer beliebigen Startmenge. In unserem Fall ist dieses ein Bild $f_0$ derselben Grösse. @@ -143,22 +156,31 @@ So erhalten wir ein neues Bild $f_1 = W(f_0)$. Dieses Vorgehen führen wir iteriert aus bis wir von $f_n = W(f_{n-1})$ zu $f_{n-1}$ kaum mehr einen Unterschied feststellen. Die Iteration hat nun ihren Attraktor, das Bild, erreicht. \subsubsection{Farbbilder} +\index{Farbbild}% Dieses Verfahren mit Graustufenbilder lässt sich ganz einfach auf Farbbilder erweitern. -Jeder Pixel eines Farbbildes besteht aus einem Rot, Grün und Blauwert (RGB). +Jeder Pixel eines Farbbildes besteht aus einem Rot-, Grün- und Blauwert (RGB). +\index{Rotwert}% +\index{Grünwert}% +\index{Blauwert}% +\index{RGB}% Teilt man ein Bild in die drei Farbkanäle auf, das heisst, es wird nur noch ein Farbwert benutzt, erhält man drei Bilder, welche wie ein Graustufenbild sind. -Nun wendet man auf jeden dieser Farbkanalbilder den Algorithmus an, und fügt nach der Rekonstruktion die Kanäle wieder zusammen. +\index{Farbkanal}% +Nun wendet man auf jedes dieser Farbkanalbilder den Algorithmus an und fügt nach der Rekonstruktion die Kanäle wieder zusammen. \subsubsection{Performance des Verfahren} Experimentelle Beobachtungen haben gezeigt, dass dieser Grundalgorithmus der fraktalen Bildkompression recht langsam ist und auch schlecht für grössere Bilder skaliert. -Man kann die Laufzeit zwar verbessern indem man die Domain-Blöcke auch disjunkt macht, und für weniger detailreiche Bilder ein grösseres $b$ wählt, jedoch wird er auch so nicht so schnell wie zum Beispiel das JPEG-Verfahren. -Es wurden bessere Algorithmen der fraktalen Bildkompression entwickelt, doch auch diese können, vor allem in der Laufzeit, noch nicht mit herkömmlichen Komprimierungsverfahren mithalten. +Man kann die Laufzeit zwar verbessern, indem man die Domain-Blöcke auch disjunkt macht, und für weniger detailreiche Bilder ein grösseres $b$ wählt, jedoch wird er auch so nicht so schnell wie zum Beispiel das JPEG-Verfahren. +\index{JPEG}% +Es wurden bessere Algorithmen der fraktalen Bildkompression entwickelt, doch auch diese können vor allem in der Laufzeit noch nicht mit herkömmlichen Komprimierungsverfahren mithalten. \subsection{Beispiel} +Als Beispiel wählen wir das 360$\times$360 Pixel Bild von Rapperswil in Abbildung \ref{ifs:original}. +\index{Rapperswil}% Wir verwenden dafür den oben beschriebenen Algorithmus, welcher uns für jeden Range-Block die benötigten Parameter liefert. Mit diesen lässt sich das Bild im Anschluss wieder Rekonstruieren. Die Range-Blöcke wurden $4\times4$ gewählt und die Domain dementsprechend $8\times8$. Um etwas Zeit bei der Komprimierung zu ersparen, wurden nur disjunkte Domain-Blöcke gebraucht. -Als erstes Beispiel wählen wir das 360$\times$360 Pixel Bild von Rapperswil in Abbildung \ref{ifs:original}. + Das Startbild ist ein mittelgraues 360$\times$360 Pixel Bild, Abbildung \ref{ifs:bild0}. Es kann jedoch ein beliebiges Startbild sein. Nun lassen wir das PIFS laufen. diff --git a/buch/papers/mceliece/aufbau.tex b/buch/papers/mceliece/aufbau.tex index 200cb7b..64c0cb3 100644 --- a/buch/papers/mceliece/aufbau.tex +++ b/buch/papers/mceliece/aufbau.tex @@ -6,156 +6,71 @@ \section{Aufbau\label{mceliece:section:Aufbau}} \rhead{Aufbau} Das McEliece-Kryptosystem besteht aus folgenden Elementen: +Nachfolgend sind alle Bestandteile für das McEliece-Kryptosystem aufgelistet, +wobei alle Vektoren und Matrizen sowie die Rechenoperationen damit +im binären Raum $\mathbb{F}_2$ stattfinden. +\index{F2@$\mathbb{F}_2$}% \subsection{Datenvektor $d_k$ \label{mceliece:subsection:d_k}} In diesem Vektor der Länge $k$ sind die zu verschlüsselnden Daten enthalten. -Beispiel: -\[d_4= -\begin{pmatrix} - 1\\ - 1\\ - 1\\ - 0 -\end{pmatrix} -\] - \subsection{Binäre Zufallsmatrix $S_k$ \label{mceliece:subsection:s_k}} -$S_k$ ist eine Binäre Zufallsmatrix der Grösse $k \times k$. +$S_k$ ist eine binäre Zufallsmatrix der Grösse $k \times k$. Auch muss diese Matrix in $\mathbb{F}_2$ invertierbar sein. Für kleine Matrizen kann durchaus jedes Matrizenelement zufällig generiert werden, wobei danach mithilfe des Gauss-Algorithmus deren Inverse bestimmt werden kann. +\index{Gauss-Algorithmus}% +\index{inverse Matrix}% Da eine solche Matrix möglicherweise singulär ist, muss in diesem Fall eine neue Zufallsmatrix erzeugt werden. +\index{Zufallsmatrix}% Für grössere Matrizen existieren bessere Methoden, auf welche hier nicht weiter eingegangen wird \cite{mceliece:GenerationRandMatrix}. -Beispiel: -\[S_4= - \begin{pmatrix} - 0 & 0 & 1 & 1\\ - 0 & 0 & 0 & 1\\ - 0 & 1 & 0 & 1\\ - 1 & 0 & 0 & 1 - \end{pmatrix} -\] - -\[ - S_4^{-1}= - \begin{pmatrix} - 0 & 1 & 0 & 1\\ - 0 & 1 & 1 & 0\\ - 1 & 1 & 0 & 0\\ - 0 & 1 & 0 & 0\\ - \end{pmatrix} -\] - \subsection{Linear-Code-Generatormatrix $G_{n,k}$ \label{mceliece:subsection:g_nk}} +\index{Generator-Matrix}% +\index{Linear-Code}% Das wichtigste Element des McEliece-Systems ist ein fehlerkorrigierender Code, der in der Lage ist, $t$ Fehler zu korrigieren. +\index{fehlerkorrigierender Code}% Im Zusammenhang mit McEliece werden dabei meist binäre Goppa-Codes \cite{mceliece:goppa} verwendet, -es können prinzipiell auch andere Codes wie beispielsweise Reed-Solomon verwendet werden, +\index{Goppa-Code}% +es können prinzipiell auch andere Codes wie beispielsweise Reed-Solomon (Kapitel~\ref{chapter:reedsolomon}) verwendet werden, +\index{Reed-Solomon-Code}% jedoch besitzen einige (unter anderem auch Reed-Solomon) Codes Schwachstellen \cite{mceliece:lorenz}. -Das Codieren mit diesem linearen Code kann mithilfe dessen Generatormatrix $G_{n,k}$ erfolgen. +Das Codieren mit diesem linearen Code kann mithilfe seiner Generatormatrix $G_{n,k}$ erfolgen. Da es sich um einen fehlerkorrigierenden Code handelt, wird das Codewort länger als das Datenwort, es wird also Redundanz hinzugefügt, +\index{Redundanz}% um die Fehlerkorrektur möglich zu machen. -Beispiel -\[ - G_{7,4}= - \begin{pmatrix} - 1 & 0 & 0 & 0\\ - 1 & 1 & 0 & 0\\ - 0 & 1 & 1 & 0\\ - 1 & 0 & 1 & 1\\ - 0 & 1 & 0 & 1\\ - 0 & 0 & 1 & 0\\ - 0 & 0 & 0 & 1 - \end{pmatrix} -\] - \subsection{Permutations-Matrix $P_n$ \label{mceliece:subsection:p_n}} -Mit der zufällig generierten Permutationsmatrix $P_n$ wird die Reihenfolge der Bits geändert. +Mit der zufällig generierten Permutationsmatrix $P_n$ (Abschnitt~\ref{buch:section:permutationsmatrizen}) wird die Reihenfolge der Bits geändert. +\index{Permutationsmatrix} Mit der Inversen $P_n^{-1}$ kann die Bitvertauschung rückgängig gemacht werden. -Beispiel -\[ - P_7= - \begin{pmatrix} - 0 & 1 & 0 & 0 & 0 & 0 & 0\\ - 0 & 0 & 0 & 0 & 0 & 0 & 1\\ - 0 & 0 & 0 & 0 & 0 & 1 & 0\\ - 0 & 0 & 1 & 0 & 0 & 0 & 0\\ - 0 & 0 & 0 & 1 & 0 & 0 & 0\\ - 1 & 0 & 0 & 0 & 0 & 0 & 0\\ - 0 & 0 & 0 & 0 & 1 & 0 & 0 - \end{pmatrix} -\] -, -\[ - P_7^{-1}=P_7^t= - \begin{pmatrix} - 0 & 0 & 0 & 0 & 0 & 1 & 0\\ - 1 & 0 & 0 & 0 & 0 & 0 & 0\\ - 0 & 0 & 0 & 1 & 0 & 0 & 0\\ - 0 & 0 & 0 & 0 & 1 & 0 & 0\\ - 0 & 0 & 0 & 0 & 0 & 0 & 1\\ - 0 & 0 & 1 & 0 & 0 & 0 & 0\\ - 0 & 1 & 0 & 0 & 0 & 0 & 0 - \end{pmatrix} -\] - \subsection{Public-Key $K_{n,k}$ \label{mceliece:subsection:k_nk}} Der öffentliche Schlüssel, welcher zum Verschlüsseln verwendet wird, -berechnet sich aus den bereits bekannten Matrizen wiefolgt: -\[ - K_{n,k}=P_{n}\cdot G_{n,k}\cdot S_{k}\,. -\] - -Beispiel +berechnet sich aus den bereits bekannten Matrizen wie folgt: \[ - K_{7,4}= - \begin{pmatrix} - 0 & 0 & 1 & 0\\ - 1 & 0 & 0 & 1\\ - 0 & 0 & 1 & 1\\ - 1 & 1 & 1 & 1\\ - 0 & 1 & 0 & 1\\ - 0 & 1 & 0 & 0\\ - 1 & 0 & 0 & 0 - \end{pmatrix} + K_{n,k}=P_{n}\cdot G_{n,k}\cdot S_{k}. \] \subsection{Fehler-Vektor $e_n$ \label{mceliece:subsection:e_n}} Dieser Vektor der Länge $n$ besteht aus $t$ Einsen, welche zufällig innerhalb des Vektors angeordnet sind, alle anderen Einträge sind Null. -Dieser Fehlervektor besitzt also gleich viele Einer, +Dieser Fehlervektor besitzt also gleich viele Einsen wie die Anzahl Fehler, die der Linearcode der Generatormatrix $G_{n,k}$ zu korrigieren vermag. -Beispiel -\[ - E_7= - \begin{pmatrix} - 0\\ - 0\\ - 1\\ - 0\\ - 0\\ - 0\\ - 0 - \end{pmatrix} -\] - \subsection{Daten-Vektor $d_k$ \label{mceliece:subsection:d_k}} -In diesem Vektor der länge $k$ ist die Nachricht (oder einen Teil davon) enthalten. +In diesem Vektor der Länge $k$ ist die Nachricht oder ein Teil davon enthalten. \subsection{Code-Vektor $c_n$ \label{mceliece:subsection:c_n}} -In diesem Vektor der länge $n$ ist die verschlüsselte Nachricht (oder einen Teil davon) enthalten.
\ No newline at end of file +In diesem Vektor der Länge $n$ ist die verschlüsselte Nachricht oder ein Teil davon enthalten. diff --git a/buch/papers/mceliece/einleitung.tex b/buch/papers/mceliece/einleitung.tex index cebb8ed..f289512 100644 --- a/buch/papers/mceliece/einleitung.tex +++ b/buch/papers/mceliece/einleitung.tex @@ -6,11 +6,16 @@ \section{Einleitung \label{mceliece:section:einleitung}} \rhead{Einleitung} -Beim McEliece-Kryptosystem handelt es sich um ein asymetrisches Verschlüsselungsverfahren, welches erlaubt, +Beim McEliece-Kryptosystem handelt es sich um ein asymmetrisches Verschlüsselungsverfahren, welches erlaubt, +\index{McEliece-Kryptosystem}% +\index{Kryptosystem}% +\index{Verschlüsselungsverfahren, asymmetrisch}% +\index{asymmetrische Verschlüsselung}% Daten verschlüsselt über ein Netzwerk zu übermitteln, ohne dass vorab ein gemeinsamer, geheimer Schlüssel unter den Teilnehmern ausgetauscht werden müsste. -Eine andere, bereits erläuterte Variante einer asymetrischen Verschlüsselung ist das Diffie-Hellman-Verfahren \ref{buch:subsection:diffie-hellman}. -Im Gegensatz zu Diffie-Hellman gilt das McEliece-System als Quantencomputerresistent +Eine andere, bereits erläuterte Variante einer asymmetrischen Verschlüsselung ist das Diffie-Hellman-Verfahren (Abschnitt~\ref{buch:subsection:diffie-hellman}). +Im Gegensatz zu Diffie-Hellman gilt das McEliece-System als quantencomputerresistent +\index{quantencomputerresistent}% und das Verschlüsseln/Entschlüsseln von Nachrichten wird hauptsächlich mit Matrizenoperationen durchgeführt. diff --git a/buch/papers/mceliece/example_code/mceliece_simple.py b/buch/papers/mceliece/example_code/mceliece_simple.py index bac3b42..c8d5e9d 100644 --- a/buch/papers/mceliece/example_code/mceliece_simple.py +++ b/buch/papers/mceliece/example_code/mceliece_simple.py @@ -187,14 +187,10 @@ def decode_linear_code(c, g, syndrome_table): q, r=divmod(Poly(c), g) q=np.r_[q.coef%2, np.zeros(len(c)-len(q)-len(g)+1)] r=np.r_[r.coef%2, np.zeros(len(g)-len(r))] - syndrome_index=np.sum([int(a*2**i) for i, a in enumerate(r)]) - while syndrome_index > 0: - c=c ^ syndrome_table[syndrome_index] - q, r=divmod(Poly(c), g) - q=np.r_[q.coef%2, np.zeros(len(c)-len(q)-len(g)+1)] - r=np.r_[r.coef%2, np.zeros(len(g)-len(r))] - syndrome_index=np.sum([int(a*2**i) for i, a in enumerate(r)]) - return np.array(q, dtype=int) + syndrome_index=np.sum([int(a*2**i) for i, a in enumerate(r)]) #binary to decimal + q_corr, r_corr=divmod(Poly(syndrome_table[syndrome_index]), g) + q_corr=np.r_[q_corr.coef%2, np.zeros(len(c)-len(q_corr)-len(g)+1)] + return q.astype(int) ^ q_corr.astype(int) def encode_linear_code(d, G): ''' @@ -324,4 +320,4 @@ if __name__ == '__main__': print(f'msg_rx: {msg_rx}') -
\ No newline at end of file + diff --git a/buch/papers/mceliece/fazit.tex b/buch/papers/mceliece/fazit.tex index 186708b..b53328f 100644 --- a/buch/papers/mceliece/fazit.tex +++ b/buch/papers/mceliece/fazit.tex @@ -10,48 +10,70 @@ Ein kurzer Vergleich des McEliece-Systems mit dem oft verwendeten RSA-System soll zeigen, wo dessen Vor- und Nachteile liegen. \subsection{Resourcen} -Eine Eigenheit des McEliece-Systems ist das hinzufügen von Rauschen (mit Fehlervektor $e_n$). -Damit diese mit dem Lienarcode-Decoder wieder entfernt werden können, +Eine Eigenheit des McEliece-Systems ist das Hinzufügen von Rauschen in Form des Fehlervektors $e_n$. +Damit dieses mit dem Linearcode-Decoder wieder entfernt werden können, wird Redundanz benötigt, weshalb dessen Kanalefizienz (Nutzbits/Übertragungsbits) sinkt. +\index{Kanaleffizienz}% + Die Schlüsselgrösse des McEliece-Systems ist deshalb so riesig, weil es sich um eine zweidimensionale Matrix handelt, währenddem RSA mit nur zwei Skalaren auskommt. -Das McEliece-System benötigt dafür weniger Rechenaufwand beim Verschlüsseln/Entschlüsseln, da die meisten Operationen mit Matrixmultiplikationen ausgeführt werden können (Aufwand ist in binären Operationen pro Informationsbit)\cite{mceliece:CodeBasedCrypto}. +\index{Schlüsselgrösse}% +Das McEliece-System benötigt dafür weniger Rechenaufwand beim Verschlüsseln/Entschlüsseln, +da die meisten Operationen mit Matrixmultiplikationen ausgeführt werden können. +\index{Matrixmultiplikation}% +Eine Übersicht zu diesem Thema bietet Tabelle \ref{mceliece:tab:comparison_effort}. Beim Rechenaufwand sei noch erwähnt, -dass asymetrische Verschlüsselungen meist nur dazu verwendet werden, -um einen Schlüssel für eine symetrische Verschlüsselung auszutauschen. -\begin{center} -\begin{tabular}{c|c|c} - &McEliece (n=2048, k=1718, t = 30) &RSA (2048, e = 216 + 1)\\ - \hline - Schlüssegrösse: (Public) &429.5 KByte &0.5 KByte \\ - Kanaleffizienz: &83.9 \% &100 \% \\ - Verschlüsselungsaufwand: &1025 &40555 \\ - Entschlüsselungsaufwand: &2311 &6557176, 5 -\end{tabular} -\end{center} +\index{Rechenaufwand}% +dass asymmetrische Verschlüsselungen meist nur dazu verwendet werden, +um einen Schlüssel für eine symmetrische Verschlüsselung auszutauschen. +\begin{table} + \begin{center} + \begin{tabular}{l|c|c} + &McEliece ($n=2048$, $k=1718$, $t = 30$) &RSA ($2048$, $e = 216 + 1$)\\ + \hline + Schlüssegrösse (Public) &429.5 KByte &0.5 KByte \\ + Kanaleffizienz &83.9 \% &100 \% \\ + Verschlüsselungsaufwand\textsuperscript{$\dagger$} &1025 bitop &40555 bitop \\ + Entschlüsselungsaufwand\textsuperscript{$\dagger$} &2311 bitop &6557176.5 bitop \\ + \end{tabular} + \end{center} + \caption{\label{mceliece:tab:comparison_effort}Vergleich zwischen RSA und McEliece bezüglich Resourcen \cite{mceliece:CodeBasedCrypto}.% (*Aufwand in binären Operationen pro Informationsbit)} + \quad\small\textsuperscript{$\dagger$}Aufwand in binären Operationen pro Informationsbit.} +\end{table} \subsection{Sicherheit} -Grosse unterschiede zwischen den beiden Kryptosystemen gibt es jedoch bei der Sicherheit. +Grosse Unterschiede zwischen den beiden Kryptosystemen gibt es jedoch bei der Sicherheit. +\index{Sicherheit}% Der Kern der RSA-Verschlüsselung beruht auf dem Problem, eine grosse Zahl in ihre beiden Primfaktoren zu zerlegen. +\index{Primfaktoren}% Bei genügend grossen Zahlen ist diese Zerlegung auch mit den heute besten verfügbaren Computern kaum innerhalb vernünftiger Zeit zu lösen. Weiter ist aber bekannt, dass mithilfe des sogenannten Shor-Algorithmus \cite{mceliece:shor} und einem Quantencomputer auch diese Zerlegung zügig realisiert werden könnte, +\index{Shor-Algorithmus}% +\index{Algorithmus von Shor}% +\index{Quantencomputer}% was zur Folge hätte, dass die Verschlüsselung von RSA unwirksam würde. -Zurzeit sind die Quantencomputer jedoch noch bei weitem nicht in der Lage, grosse Zahlen mithilfe dieses Algorithmuses zu zerlegen. -Das McEliece-System hingegen beruht auf dem Problem des ``Syndrome decoding'' (Korrektur von Bitfehlern eines Codewortes, das mit einem entsprechenden Linearcode codiert wurde). -Für das ``Syndrome decoding'' sind bis heute keine Methoden bekannt, +Zurzeit sind die Quantencomputer jedoch noch bei weitem nicht in der Lage, grosse Zahlen mithilfe dieses Algorithmus zu zerlegen. + +Das McEliece-System hingegen beruht auf dem Problem des {\em Syndrome decoding}, also der Korrektur von Bitfehlern eines Codewortes, das mit einem entsprechenden Linearcode codiert wurde. +Für das {\em Syndrome decoding} sind bis heute keine Methoden bekannt, welche nennenswerte Vorteile gegenüber dem Durchprobieren (brute-force) bringen, auch nicht mithilfe eines Quantencomputers. -\begin{center} -\begin{tabular}{c|c|c} - &McEliece &RSA \\ -\hline - Grundlage Verschlüsselung &Syndrome decoding &Integer factoring\\ - Aufwand (gewöhnliche CPU) &exponential &< exponential \\ - Aufwand (Quantencomputer) &> polynomial &$\mathcal{O}(\log(N)^3)$ -\end{tabular} -\end{center} +Eine Übersicht betreffend des Rechenaufwandes zum Knacken der Verschlüsselung ist in Tabelle \ref{mceliece:tab:comparison_security} gegeben und bezieht sich auf die Schlüsselgrösse $N$. +\begin{table} + \begin{center} + \begin{tabular}{l|c|c} + &McEliece &RSA \\ + \hline + Grundlage Verschlüsselung &Syndrome decoding &Integer factoring\\ + Aufwand (gewöhnliche CPU) &exponentiell &< exponentiell \\ + Aufwand (Quantencomputer) &> polynominell &$\mathcal{O}(\log(N)^3)$ + \end{tabular} + \end{center} + \caption{\label{mceliece:tab:comparison_security}Vergleich zwischen RSA und McEliece bezüglich Sicherheit} +\end{table} + Die Verbreitung des McEliece-Kryptosystems ist zurzeit äusserst gering. Das liegt einerseits an der immensen Grösse des öffentlichen Schlüssels, andererseits wird aber auch in naher Zukunft nicht mit einem genügend starken Quantencomputer gerechnet, -welcher andere asymetrische Verschlüsselungen gefährden würde. +welcher andere asymmetrische Verschlüsselungen gefährden würde. diff --git a/buch/papers/mceliece/funktionsweise.tex b/buch/papers/mceliece/funktionsweise.tex index 7c69b13..4d6c18d 100644 --- a/buch/papers/mceliece/funktionsweise.tex +++ b/buch/papers/mceliece/funktionsweise.tex @@ -8,14 +8,17 @@ \rhead{Funktionsweise} Um den Ablauf des Datenaustausches mittels McEliece-Verschlüsselung zu erläutern, wird ein Szenario verwendet, -bei dem Bob an Alice eine verschlüsselte Nachticht über ein öffentliches Netzwerk zukommen lässt. +bei dem Bob an Alice eine verschlüsselte Nachricht über ein öffentliches Netzwerk zukommen lässt. \subsection{Vorbereitung \label{mceliece:section:vorbereitung}} -Damit der Nachrichtenaustausch stattfinden kann, muss Alice (Empfängerin) -zuerst ein Schlüsselpaar definieren. +Bevor einen Datenaustausch zwischen Sender und Empfänger stattfinden kann, +muss abgemacht werden, welche Länge $n$ das Code-Wort und welche Länge $k$ das Datenwort hat +und wie viele Bitfehler $t$ (angewendet mit Fehlervektor $e_n$) +für das Rauschen des Code-Wortes $c_n$ verwendet werden. +Danach generiert Alice (Empfängerin) ein Schlüsselpaar. Dazu erstellt sie die einzelnen Matrizen $S_k$, $G_{n,k}$ und $P_n$. -Diese drei einzelnen Matrizen bilden den privaten Schlüssel von Alice +Diese drei Matrizen bilden den privaten Schlüssel von Alice und sollen geheim bleiben. Der öffentliche Schlüssel $K_{n,k}$ hingegen berechnet sich aus der Multiplikation der privaten Matrizen (Abschnitt \ref{mceliece:subsection:k_nk}) @@ -25,36 +28,36 @@ und wird anschliessend Bob zugestellt. \label{mceliece:section:verschl}} Bob berechnet nun die verschlüsselte Nachricht $c_n$, indem er seine Daten $d_k$ mit dem öffentlichen Schlüssel $K_{n,k}$ von Alice multipliziert -und anschliessend durch eine Addition mit einem Fehlervektor $e_n$ einige Bitfehler hinzufügt. +und anschliessend durch eine Addition mit einem Fehlervektor $e_n$ einige Bitfehler hinzufügt: \[ - c_n\,=\,K_{n,k}\cdot d_k + e_n\,. + c_n=K_{n,k}\cdot d_k + e_n. \] -Dabei wird für jede Nachricht (oder für jedes Nachrichtenfragment) -einen neuen, zufälligen Fehlervektor generiert. +Dabei wird für jede Nachricht (oder für jedes Nachrichtenfragment) $d_k$ +ein neuer, zufälliger Fehlervektor generiert. Die verschlüsselte Nachricht $c_n$ wird anschliessend Alice zugestellt. \subsection{Entschlüsselung \label{mceliece:section:entschl}} Alice entschlüsselt die erhaltene Nachricht in mehreren einzelnen Schritten. -Um etwas Transparenz in diese Prozedur zu bringen, wird der öffentliche Schlüssel $K_{n,k}$ mit seinen Ursprungsmatrizen dargestellt. +Um etwas Transparenz in diese Prozedur zu bringen, wird der öffentliche Schlüssel $K_{n,k}$ mit seinen Ursprungsmatrizen dargestellt: \begin{align*} - c_n\,&=\,K_{n,k}\cdot d_k + e_n \\ - &= P_{n}\cdot G_{n,k}\cdot S_{k}\cdot d_k + e_n + c_n&=K_{n,k}\cdot d_k + e_n \\ + &= P_{n}\cdot G_{n,k}\cdot S_{k}\cdot d_k + e_n. \end{align*} Zuerst wird der Effekt der Permutationsmatrix rückgängig gemacht, -indem das Codewort mit dessen Inversen $P_n^{-1}$ multipliziert wird. +indem das Codewort mit der Inversen $P_n^{-1}$ multipliziert wird: \begin{align*} - c_{n}''\,=\,P_n^{-1}\cdot c_n\,&= P_n^{-1}\cdot P_{n}\cdot G_{n,k}\cdot S_{k}\cdot d_k + P_n^{-1}\cdot e_n \\ - &= G_{n,k}\cdot S_{k}\cdot d_k + P_n^{-1}\cdot e_n \\ + c_{n}''=P_n^{-1}\cdot c_n&= P_n^{-1}\cdot P_{n}\cdot G_{n,k}\cdot S_{k}\cdot d_k + P_n^{-1}\cdot e_n \\ + &= G_{n,k}\cdot S_{k}\cdot d_k + P_n^{-1}\cdot e_n. \end{align*} Eine weitere Vereinfachung ist nun möglich, weil $P_n^{-1}$ einerseits auch eine gewöhnliche Permutationsmatrix ist und andererseits ein zufälliger Fehlervektor $e_n$ multipliziert mit einer Permutationsmatrix -wiederum einen gleichwertigen, zufälligen Fehlervektor $e_n'$ ergibt. +wiederum einen zufälligen Fehlervektor gleicher Länge und mit der gleichen Anzahl Fehlern $e_n'$ ergibt: \begin{align*} - c_{n}''\,&=\,G_{n,k}\cdot S_{k}\cdot d_k + P_n^{-1}\cdot e_n \\ - &=\,G_{n,k}\cdot S_{k}\cdot d_k + e'_n\quad \quad \quad | \, - e'_n\,=\,P_n^{-1}\cdot e_n + c_{n}''&=G_{n,k}\cdot S_{k}\cdot d_k + P_n^{-1}\cdot e_n \\ + &=G_{n,k}\cdot S_{k}\cdot d_k + e'_n \quad \text{mit} \quad + e'_n=P_n^{-1}\cdot e_n. \end{align*} Dank des fehlerkorrigierenden Codes, der durch die implizite Multiplikation mittels $G_{n,k}$ auf die Daten angewendet wurde, können nun die Bitfehler, verursacht durch den Fehlervektor $e'_n$, @@ -62,22 +65,366 @@ entfernt werden. Da es sich bei diesem Schritt nicht um eine einfache Matrixmultiplikation handelt, wird die Operation durch eine Funktion dargestellt. Wie dieser Decoder genau aufgebaut ist, -hängt vom verwendeten Linearcode ab. +hängt vom verwendeten Linearcode ab: \begin{align*} - c_{k}'\,&=\text{Linear-Code-Decoder($c''_n$)}\\ - &=\text{Linear-Code-Decoder($G_{n,k}\cdot S_{k}\cdot d_k + e'_n$)}\\ - &=S_{k}\cdot d_k -\end{align*} -Zum Schluss wird das inzwischen fast entschlüsselte Codewort $c'_k$ mit der inversen der zufälligen Binärmatrix $S^{-1}$ multipliziert, -womit der Inhalt der ursprünglichen Nachricht nun wiederhergestellt wurde. -\begin{align*} - c_{k}'\,&=S_{k}\cdot d_k \quad | \cdot S_k^{-1}\\ - d'_{k}\,=\,S_{k}^{-1} \cdot c'_k&=S_{k}^{-1} \cdot S_{k}\cdot d_k\\ - &=d_k + c_{k}'&=\text{Linear-Code-Decoder}(c''_n)\\ + &=\text{Linear-Code-Decoder}(G_{n,k}\cdot S_{k}\cdot d_k + e'_n)\\ + &=S_{k}\cdot d_k. \end{align*} +Zum Schluss wird das inzwischen fast entschlüsselte Codewort $c'_k$ mit der Inversen der zufälligen Binärmatrix $S^{-1}$ multipliziert, +womit der Inhalt der ursprünglichen Nachricht nun wiederhergestellt wurde: +\begin{equation*} + d'_{k}=S_{k}^{-1} \cdot c'_k=S_{k}^{-1} \cdot S_{k}\cdot d_k + =d_k. +\end{equation*} +Möchte ein Angreifer die verschlüsselte Nachricht knacken, muss er die drei privaten Matrizen $S_k$, $G_{n,k}$ und $P_n$ kennen. +Aus dem öffentlichen Schlüssel lassen sich diese nicht rekonstruieren +und eine systematische Analyse der Codeworte wird durch das Hinzufügen von zufälligen Bitfehlern zusätzlich erschwert. \subsection{Beispiel} +Die Verschlüsselung soll mittels eines numerischen Beispiels demonstriert werden. +Der verwendete Linear-Code wird im Abschnitt \ref{mceliece:subsection:seven_four} beschrieben. +\begin{itemize} + \item Daten- und Fehlervektor + \begin{itemize} + \item[] + \[d_4= + \begin{pmatrix} + 1\\ + 1\\ + 1\\ + 0 + \end{pmatrix} + ,\quad + e_7= + \begin{pmatrix} + 0\\ + 0\\ + 1\\ + 0\\ + 0\\ + 0\\ + 0 + \end{pmatrix}. + \] + \end{itemize} + \item Private Matrizen: + \begin{itemize} + \item[] + \[S_4= + \begin{pmatrix} + 0 & 0 & 1 & 1\\ + 0 & 0 & 0 & 1\\ + 0 & 1 & 0 & 1\\ + 1 & 0 & 0 & 1 + \end{pmatrix},\quad + S_4^{-1}= + \begin{pmatrix} + 0 & 1 & 0 & 1\\ + 0 & 1 & 1 & 0\\ + 1 & 1 & 0 & 0\\ + 0 & 1 & 0 & 0\\ + \end{pmatrix}, + \] + \item[] + \[ + G_{7,4}= + \begin{pmatrix} + 1 & 0 & 0 & 0\\ + 1 & 1 & 0 & 0\\ + 0 & 1 & 1 & 0\\ + 1 & 0 & 1 & 1\\ + 0 & 1 & 0 & 1\\ + 0 & 0 & 1 & 0\\ + 0 & 0 & 0 & 1 + \end{pmatrix}, + \] + \item[] + \[ + P_7= + \begin{pmatrix} + 0 & 1 & 0 & 0 & 0 & 0 & 0\\ + 0 & 0 & 0 & 0 & 0 & 0 & 1\\ + 1 & 0 & 0 & 0 & 0 & 0 & 0\\ + 0 & 0 & 0 & 1 & 0 & 0 & 0\\ + 0 & 0 & 0 & 0 & 0 & 1 & 0\\ + 0 & 0 & 1 & 0 & 0 & 0 & 0\\ + 0 & 0 & 0 & 0 & 1 & 0 & 0 + \end{pmatrix}, + \quad + P_7^{-1}=P_7^t= + \begin{pmatrix} + 0 & 0 & 0 & 0 & 0 & 1 & 0\\ + 1 & 0 & 0 & 0 & 0 & 0 & 0\\ + 0 & 0 & 0 & 1 & 0 & 0 & 0\\ + 0 & 0 & 0 & 0 & 1 & 0 & 0\\ + 0 & 0 & 0 & 0 & 0 & 0 & 1\\ + 0 & 0 & 1 & 0 & 0 & 0 & 0\\ + 0 & 1 & 0 & 0 & 0 & 0 & 0 + \end{pmatrix}. + \] + \end{itemize} + \item Öffentlicher Schlüssel: +\index{Schlüssel, öffentlicher}% +\index{öffentlicher Schlüssel}% + \begin{itemize} + \item[] + \begin{align*} + K_{7,4}&=P_{7}\cdot G_{7,4}\cdot S_{4}=\\ + \begin{pmatrix} %k + 0 & 0 & 1 & 0\\ + 1 & 0 & 0 & 1\\ + 0 & 0 & 1 & 1\\ + 1 & 1 & 1 & 1\\ + 0 & 1 & 0 & 1\\ + 0 & 1 & 0 & 0\\ + 1 & 0 & 0 & 0 + \end{pmatrix} + &= + \begin{pmatrix} %p + 0 & 1 & 0 & 0 & 0 & 0 & 0\\ + 0 & 0 & 0 & 0 & 0 & 0 & 1\\ + 1 & 0 & 0 & 0 & 0 & 0 & 0\\ + 0 & 0 & 0 & 1 & 0 & 0 & 0\\ + 0 & 0 & 0 & 0 & 0 & 1 & 0\\ + 0 & 0 & 1 & 0 & 0 & 0 & 0\\ + 0 & 0 & 0 & 0 & 1 & 0 & 0 + \end{pmatrix} + \cdot + \begin{pmatrix} %g + 1 & 0 & 0 & 0\\ + 1 & 1 & 0 & 0\\ + 0 & 1 & 1 & 0\\ + 1 & 0 & 1 & 1\\ + 0 & 1 & 0 & 1\\ + 0 & 0 & 1 & 0\\ + 0 & 0 & 0 & 1 + \end{pmatrix} + \cdot + \begin{pmatrix} %s + 0 & 0 & 1 & 1\\ + 0 & 0 & 0 & 1\\ + 0 & 1 & 0 & 1\\ + 1 & 0 & 0 & 1 + \end{pmatrix} + . + \end{align*} + \end{itemize} + \item Verschlüsselung: + \begin{itemize} + \item[] + \begin{align*} + c_7&=K_{7,4}\cdot d_4 + e_7=\\ + \begin{pmatrix} %c + 1\\ + 1\\ + 0\\ + 1\\ + 1\\ + 1\\ + 1 + \end{pmatrix} + &= + \begin{pmatrix} %k + 0 & 0 & 1 & 0\\ + 1 & 0 & 0 & 1\\ + 0 & 0 & 1 & 1\\ + 1 & 1 & 1 & 1\\ + 0 & 1 & 0 & 1\\ + 0 & 1 & 0 & 0\\ + 1 & 0 & 0 & 0 + \end{pmatrix} + \cdot + \begin{pmatrix} %d + 1\\ + 1\\ + 1\\ + 0 + \end{pmatrix} + + + \begin{pmatrix} %e + 0\\ + 0\\ + 1\\ + 0\\ + 0\\ + 0\\ + 0 + \end{pmatrix} + . + \end{align*} + \end{itemize} + \item Entschlüsselung (Permutation rückgängig machen): + \begin{itemize} + \item[] + \begin{align*} + c_{7}''&=P_7^{-1}\cdot c_7=\\ + \begin{pmatrix} %c'' + 0\\ + 1\\ + 1\\ + 1\\ + 1\\ + 1\\ + 1 + \end{pmatrix} + &= + \begin{pmatrix} %p^-1 + 0 & 0 & 1 & 0 & 0 & 0 & 0\\ + 1 & 0 & 0 & 0 & 0 & 0 & 0\\ + 0 & 0 & 0 & 0 & 0 & 1 & 0\\ + 0 & 0 & 0 & 1 & 0 & 0 & 0\\ + 0 & 0 & 0 & 0 & 0 & 0 & 1\\ + 0 & 0 & 0 & 0 & 1 & 0 & 0\\ + 0 & 1 & 0 & 0 & 0 & 0 & 0 + \end{pmatrix} + \cdot + \begin{pmatrix} %c + 1\\ + 1\\ + 0\\ + 1\\ + 1\\ + 1\\ + 1 + \end{pmatrix} + . + \end{align*} + \end{itemize} + \item Entschlüsselung (Bitfehlerkorrektur mit Linearcode): + \begin{itemize} + \item[] + \begin{align*} + c_{7}'&=\text{Linear-Code-Decoder($c''_7$)}=\\ + \begin{pmatrix} %c' + 1\\ + 0\\ + 1\\ + 1 + \end{pmatrix} + &=\text{Linear-Code-Decoder(} + \begin{pmatrix} + 0\\ + 1\\ + 1\\ + 1\\ + 1\\ + 1\\ + 1 + \end{pmatrix} + \text{)} + . + \end{align*} + \end{itemize} + \item Entschlüsselung (Umkehrung des $S_4$-Matrix-Effekts): + \begin{itemize} + \item[] + \begin{align*} + d'_{4}&=S_{4}^{-1} \cdot c'_4 \,(= d_4)\\ + \begin{pmatrix} + 1\\ + 1\\ + 1\\ + 0 + \end{pmatrix} + &= + \begin{pmatrix} %s^-1 + 0 & 1 & 0 & 1\\ + 0 & 1 & 1 & 0\\ + 1 & 1 & 0 & 0\\ + 0 & 1 & 0 & 0\\ + \end{pmatrix} + \cdot + \begin{pmatrix} %c' + 1\\ + 0\\ + 1\\ + 1 + \end{pmatrix} + . + \end{align*} + \end{itemize} +\end{itemize} + +\subsection{7/4-Code +\label{mceliece:subsection:seven_four}} +Beim 7/4-Code handelt es sich um einen linearen Code, +der einen Bitfehler korrigieren kann. +\index{7/4-Code}% +\index{linearer Code}% +\index{Code, linear}% +Es gibt unterschiedliche Varianten zum Erzeugen eines 7/4-Codes, +wobei der hier verwendete Code mithilfe des irreduziblen Generatorpolynoms $P_g = x^3 +x + 1$ generiert wird. +\index{Generatorpolynom}% +Somit lässt sich das Codepolynom $P_c$ berechnen, indem das Datenpolynom $P_d$ mit dem Generatorpolynom $P_g$ multipliziert wird (Codiervorgang): +\[ + P_c=P_g \cdot P_d. +\] +Damit diese Multiplikation mit Matrizen ausgeführt werden kann, werden die Polynome als Vektoren dargestellt (Kapitel \ref{buch:section:polynome:vektoren}): +\[ + P_g = \textcolor{red}{1}\cdot x^0 + \textcolor{blue}{1}\cdot x^1 + \textcolor{darkgreen}{0}\cdot x^2 + \textcolor{orange}{1}\cdot x^3 \implies + [\textcolor{red}{1}, \textcolor{blue}{1} ,\textcolor{darkgreen}{0}, \textcolor{orange}{1}] = g_4. +\] +Auch das Datenpolynom wird mit einem Vektor dargestellt: $P_d = d_0 \cdot x^0 + d_1 \cdot x^1 + d_2 \cdot x^2 + d_3 \cdot x^3 \implies [d_0, d_1, d_2, d_3] = d_4$. +Der Vektor $g_4$ wird nun in die sogenannte Generatormatrix $G_{7,4}$ gepackt, +sodass die Polynommultiplikation mit $d_4$ mittels Matrixmultiplikation realisiert werden kann: + +\[ + c_7=G_{7,4} \cdot d_4= + \begin{pmatrix} + \textcolor{red}{1} & 0 & 0 & 0 \\ + \textcolor{blue}{1} & \textcolor{red}{1} & 0 & 0 \\ + \textcolor{darkgreen}{0} & \textcolor{blue}{1} & \textcolor{red}{1} & 0 \\ + \textcolor{orange}{1} & \textcolor{darkgreen}{0} & \textcolor{blue}{1} & \textcolor{red}{1} \\ + 0 & \textcolor{orange}{1} & \textcolor{darkgreen}{0} & \textcolor{blue}{1} \\ + 0 & 0 & \textcolor{orange}{1} & \textcolor{darkgreen}{0} \\ + 0 & 0 & 0 & \textcolor{orange}{1} + \end{pmatrix} + \begin{pmatrix} + d_0\\ + d_1\\ + d_2\\ + d_3 + \end{pmatrix} + = + \begin{pmatrix} + c_0\\ + c_1\\ + c_2\\ + c_3\\ + c_4\\ + c_5\\ + c_6\\ + \end{pmatrix}. +\] +Beim nun entstandenen Codevektor $c_7=[c_0, ..., c_6]$ entsprechen die Koeffizienten dem dazugehörigen Codepolynom $P_c=c_0\cdot x^0+...+c_6\cdot x^6$. +Aufgrund der Multiplikation mit dem Generatorpolynom $P_g$ lässt sich das Codewort auch wieder restlos durch $P_g$ dividieren. +Wird dem Codewort nun einen Bitfehler hinzugefügt, entsteht bei der Division durch $P_g$ einen Rest. +Beim gewählten Polynom beträgt die sogenannte Hamming-Distanz drei, das bedeutet, +\index{Hamming-Distanz}% +dass vom einen gültigen Codewort zu einem anderen gültigen Codewort drei Bitfehler auftreten müssen. +Somit ist es möglich, auf das ursprüngliche Bitmuster zu schliessen, solange maximal ein Bitfehler vorhanden ist. +Jeder der möglichen acht Bitfehler führt bei der Division zu einem anderen Rest, +womit das dazugehörige Bit identifiziert und korrigiert werden kann, +indem beispielsweise die Bitfehler mit dem dazugehörigen Rest in der sogenannten Syndromtabelle (Tabelle \ref{mceliece:tab:syndrome}) hinterlegt werden. +\index{Syndromtabelle}% +\begin{table} + \begin{center} + \begin{tabular}{|l|l|} + \hline + Syndrom (Divisionsrest) &korrespondierender Bitfehler\\ + \hline + 1 ($[1,0,0]$) &$[1,0,0,0,0,0,0]$\\ + 2 ($[0,1,0]$) &$[0,1,0,0,0,0,0]$\\ + 3 ($[1,1,0]$) &$[0,0,0,1,0,0,0]$\\ + 4 ($[0,0,1]$) &$[0,0,1,0,0,0,0]$\\ + 5 ($[1,0,1]$) &$[0,0,0,0,0,0,1]$\\ + 6 ($[0,1,1]$) &$[0,0,0,0,1,0,0]$\\ + 7 ($[1,1,1]$) &$[0,0,0,0,0,1,0]$\\ + \hline -TODO: --alle Beispielmatrizen- und Vektoren hierhin zügeln, numerisches Beispiel kreieren\\ --erläutern des 7/4-codes (ja/nein)?
\ No newline at end of file + \end{tabular} + \end{center} + \caption{\label{mceliece:tab:syndrome}Syndromtabelle 7/4-Code} +\end{table} +\index{Syndrom}% diff --git a/buch/papers/multiplikation/einlteung.tex b/buch/papers/multiplikation/einlteung.tex index 9b03a4e..3ffc24c 100755 --- a/buch/papers/multiplikation/einlteung.tex +++ b/buch/papers/multiplikation/einlteung.tex @@ -17,6 +17,8 @@ C_{ij} = \sum_{k=1}^n A_{ik} B_{kj}. \label{multiplikation:eq:MM} \end{equation} Grafisch kann die Matrizenmultiplikation $\mathbf{AB}=\mathbf{C}$ wie in Abbildung \ref{multiplikation:fig:mm_viz} visualisiert werden. +\index{Matrizenmultiplikation}% +\index{Multiplikation, Matrizen-}% Im Fall einer Matrizengr\"osse von $2\times 2$ kann die Matrixgleichung \begin{equation} \begin{bmatrix} diff --git a/buch/papers/multiplikation/images/bigo.pdf b/buch/papers/multiplikation/images/bigo.pdf Binary files differindex 2519553..471e042 100644 --- a/buch/papers/multiplikation/images/bigo.pdf +++ b/buch/papers/multiplikation/images/bigo.pdf diff --git a/buch/papers/multiplikation/images/bigo.tex b/buch/papers/multiplikation/images/bigo.tex index 63fd0fd..aab892a 100644 --- a/buch/papers/multiplikation/images/bigo.tex +++ b/buch/papers/multiplikation/images/bigo.tex @@ -46,12 +46,12 @@ ymin=10e-1, ymax=1e7, grid=both, major grid style={black!50}, - xlabel = data input size, - ylabel = {time}, + xlabel = {Problemgrösse $n$}, + ylabel = {Laufzeit in Sekunden}, legend pos=north west, very thick, - yticklabels=\empty, - xticklabels=\empty, + %yticklabels=\empty, + %xticklabels=\empty, scale only axis=true, width=12cm, height=8cm, legend cell align={left} diff --git a/buch/papers/multiplikation/images/meas_c.pdf b/buch/papers/multiplikation/images/meas_c.pdf Binary files differindex 521151e..628d0a4 100644 --- a/buch/papers/multiplikation/images/meas_c.pdf +++ b/buch/papers/multiplikation/images/meas_c.pdf diff --git a/buch/papers/multiplikation/images/meas_c.tex b/buch/papers/multiplikation/images/meas_c.tex index 12d3527..24855f6 100644 --- a/buch/papers/multiplikation/images/meas_c.tex +++ b/buch/papers/multiplikation/images/meas_c.tex @@ -47,8 +47,8 @@ xmin=30, xmax=10000, ymin=1e-5, ymax=2e4, grid=both, major grid style={black!50}, -xlabel = data input ($n$), -ylabel = {time ($s$)}, +xlabel = {Problemgrösse $n$}, +ylabel = {Laufzeit ($s$)}, legend pos=north west, very thick, scale only axis=true, diff --git a/buch/papers/multiplikation/images/meas_python.pdf b/buch/papers/multiplikation/images/meas_python.pdf Binary files differindex fe89773..2237305 100644 --- a/buch/papers/multiplikation/images/meas_python.pdf +++ b/buch/papers/multiplikation/images/meas_python.pdf diff --git a/buch/papers/multiplikation/images/meas_python.tex b/buch/papers/multiplikation/images/meas_python.tex index ad43cf6..21babfe 100644 --- a/buch/papers/multiplikation/images/meas_python.tex +++ b/buch/papers/multiplikation/images/meas_python.tex @@ -47,8 +47,8 @@ xmin=30, xmax=4200, ymin=0.01, ymax=70000, grid=both, major grid style={black!50}, -xlabel = data input ($n$), -ylabel = {time ($s$)}, +xlabel = {Problemgrösse $n$}, +ylabel = {Laufzeit ($s$)}, legend pos=north west, very thick, scale only axis=true, diff --git a/buch/papers/multiplikation/loesungsmethoden.tex b/buch/papers/multiplikation/loesungsmethoden.tex index 8d0c0a8..2531bbb 100755 --- a/buch/papers/multiplikation/loesungsmethoden.tex +++ b/buch/papers/multiplikation/loesungsmethoden.tex @@ -39,11 +39,12 @@ Die \texttt{for i} Schleife iteriert \"uber alle Zeilen der $\mathbf{A}$ Matrix, \end{algorithm} Die Laufzeit dieser Struktur mit drei \texttt{for} Schleifen ist $\mathcal{O} (n^3)$. -\subsubsection{Divide and Conquer Methode} - -F\"ur gewisse Algorithmen f\"uhren \textit{Divide and Conquer} Ans\"atze \cite{multiplikation:DAC} zu markant besseren Laufzeiten. +\subsubsection{Divide-and-Conquer-Methode} +F\"ur gewisse Algorithmen f\"uhren \textit{Divide-and-Conquer}-Ans\"atze \cite{multiplikation:DAC} zu markant besseren Laufzeiten. Die Grundidee ist, dass ein Problem in mehrere, meist simplere und kleinere Teilprobleme aufgeteilt wird. +\index{Divide-and-Conquer-Ansatz}% Das bekannteste Beispiel ist wohl die \textit{Fast Fourier Transform} wobei die Laufzeit von $\mathcal{O} (n^2)$ zu $\mathcal{O}(n \log n)$ verbessert werden kann. +\index{Fast Fourier Transform}% Die Matrizenmultiplikation kann ebenfalls mit solch einem Ansatz berechnet werden. Zur vereinfachten Veranschaulichung kann die Situation mit $\mathbf{A}$ und $\mathbf{B}$ der Gr\"osse $2^n \times 2^n$ verwendet werden. @@ -71,10 +72,10 @@ mit \begin{equation} \end{equation} ist identisch zu der Gleichung \eqref{multiplikation:eq:MM}, f\"ur die Multiplikation der Untermatrizen $\mathbf{A}_{ik}$ und $\mathbf{B}_{kj}$ wird die Matrizenmultiplikation verwendet. -Der Algorithmus \ref{multiplikation:alg:devide_mm} zeigt den \textit{Divide and Conquer} Ansatz, +Der Algorithmus \ref{multiplikation:alg:devide_mm} zeigt den \textit{Divide-and-Conquer}-Ansatz. Die Grundstruktur dieser Methode besteht aus dem rekursiven Aufruf der Funktion mit den erzeugten Blockmatrizen. -Der rekursive Aufruf wird bis zu der Gr\"osse der Matrizen von $N = 2 \times 2$ durchgef\"uhrt. -\begin{algorithm}\footnotesize\caption{Divide and Conquer Matrizenmultiplikation} +Der rekursive Aufruf wird bis zu der Gr\"osse der Matrizen von $2 \times 2$ durchgef\"uhrt. +\begin{algorithm}\footnotesize\caption{Divide-and-Conquer-Matrizenmultiplikation} \setlength{\lineskip}{7pt} \label{multiplikation:alg:devide_mm} \begin{algorithmic} @@ -104,18 +105,24 @@ Der rekursive Aufruf wird bis zu der Gr\"osse der Matrizen von $N = 2 \times 2$ \end{algorithm} Die Laufzeit dieser rekursiven Funktion kann mit dem \textit{Master Theorem} \cite{multiplikation:master_theorem} berechnet werden. Das \textit{Master Theorem} bestimmt die Zeitkomplexit\"at von rekursiven Algorithmen. +\index{Master Theorem}% Ohne auf dieses vertieft einzugehen, bestimmt die Anzahl rekursiver Aufrufe $\mathcal{T} $ der Funktion die Laufzeit. +\index{rekursiver Algorithmus}% +\index{Algorithmus, rekursiv}% In diesem Fall wird die Funktion pro Durchlauf acht mal rekursiv aufgerufen, dies f\"uhrt zu \begin{equation} \label{multiplikation:eq:laufzeitdac} \mathcal{T}(n) = 8 \cdot \mathcal{T} \left(\frac{n}{2}\right ) + n^2 = \mathcal{O}(n^{\log_2 8}) = \mathcal{O} (n^{3} ), \end{equation} also einer kubischen Laufzeit. +\index{kubische Laufzeit}% +\index{Laufzeit, kubisch}% Die Addition zweier Matrizen $\mathbf{A} + \mathbf{B} = \mathbf{C}$ hat eine Laufzeit von $\mathcal{O}(n^{2})$ und kann neben dem dominierendem Anteil von $\mathcal{O}(n^{3})$ ignoriert werden. -In diesem Fall hat der \textit{Divide and Conquer} Ansatz zu keiner Verbesserung gef\"uhrt. +In diesem Fall hat der \textit{Divide-and-Conquer}-Ansatz zu keiner Verbesserung gef\"uhrt. \subsection{Strassens Algorithmus} - +\index{Strassens Algorithmus}% +\index{Algorithmus von Strassen}% Strassens Algorithmus \cite{multiplikation:strassen_1969} beschreibt die Matrizenmultiplikation mit einer Vielzahl von Additionen, Subtraktionen und Multiplikationen von Blockmatrizen. Die sieben grundlegenden Terme \begin{equation} \label{multiplikation:eq:strassen} @@ -185,8 +192,9 @@ der Matrix $\mathbf{C}$ gebraucht. \end{algorithmic} \end{algorithm} Strassens Methode wird in der Abbildung \ref{multiplikation:fig:strassen} grafisch dargestellt. -Jedes Feld steht f\"ur eine Multiplikation zweier Matrizenelementen von $\mathbf{A}$ oder $\mathbf{B}$ . -Die gr\"unen Felder auf der linken Seite, zeigen die Addition, welche f\"ur den dazugeh\"origen Term ben\"otigt wird. +Jedes Feld steht f\"ur eine Multiplikation zweier Matrizenelementen von $\mathbf{A}$ oder $\mathbf{B}$. +Die gr\"unen Felder auf der linken Seite +zeigen die Addition, welche f\"ur den dazugeh\"origen Term ben\"otigt wird. Die sieben Spalten beschreiben die Matrizen $\mathbf{P,Q,R, \ldots, V}$. Rote Felder stehen f\"ur eine Subtraktion und die gr\"unen f\"ur eine Addition. Graue Felder bedeuten, dass die dazugehörige Spalte nicht für die Berechnung benötigt wird. @@ -207,8 +215,10 @@ und ist somit schneller als die Standardmethode. Man beachte, dass die Anzahl von Additionen und Subtraktionen gr\"osser und die Anzahl der Multiplikationen kleiner wurde. \subsection{Winograds Algorithmus} - +\index{Winograds Algorithmus}% +\index{Algorithmus von Winograd}% Einen weiteren Ansatz lieferte Shmuel Winograd im Jahre 1968 \cite{multiplikation:winograd_1968}. +\index{Winograd, Shmuel}% Er beschrieb einen neuen Algorithmus f\"ur das Skalarprodukt \begin{equation} \label{multiplikation:eq:skalar} \langle x,y \rangle = \sum_{i=1}^{n}x_i y_i. @@ -223,7 +233,7 @@ und \end{equation} die jeweils nur von $x$ und $y$ abhängen. Dazu werden $2 \cdot \lfloor n/2 \rfloor \leq n$ Multiplikationen benötigt. -Das Skalarprodukt ist nun geben mit +Das Skalarprodukt ist nun geben durch \begin{equation} \langle x,y \rangle = \begin{cases} @@ -244,7 +254,7 @@ Damit können wir die Laufzeit der Methode von Winograd mit der Laufzeit der Sta \Leftrightarrow & N & \le & T. \end{array} \end{equation} -Eine Matrizenmultiplikation mit $\mathbf{A}$ einer $m \times n$ und $\mathbf{B}$ einer $n \times p$ Matrix, entspricht $N=m+p$ Vektoren mit welchen man $T=mp$ Skalarprodukte berechnet. +Eine Matrizenmultiplikation mit $\mathbf{A}$ einer $m \times n$ und $\mathbf{B}$ einer $n \times p$ Matrix entspricht $N=m+p$ Vektoren, mit welchen man $T=mp$ Skalarprodukte berechnet. Dies f\"uhrt zu \begin{equation} (m+p) \left \lfloor \frac{n}{2} \right \rfloor + mp \left \lfloor \frac{n+1}{2} \right \rfloor = \frac{mn}{2} + \frac{pn}{2} + \frac{mpn}{2} + \frac{mp}{2} @@ -317,9 +327,14 @@ Im Abschnitt \ref{muliplikation:sec:bigo} wurde bereits erläutert: falls $n \ri \subsection{Basic Linear Algebra Subprograms (BLAS)} - +\index{Basic Linear Algebra Subprograms (BLAS)}% +\index{BLAS}% Die gebräuchliche Methode f\"ur die Anwendung einer optimierten Matrizenmultiplikation ist die Verwendung einer Subroutine aus den \textit{Basic Linear Algebra Subprograms (BLAS)} \cite{multiplikation:BLAS}. Die meisten numerischen Bibliotheken von high-level Skriptsprachen wie \texttt{Matlab}, \texttt{NumPy (Python)}, \texttt{GNU Octave} oder \texttt{Mathematica} ben\"utzen eine Form von \textit{BLAS}. +\index{Matlab@\texttt{Matlab}}% +\index{NumPy@\texttt{NumPy}}% +\index{GNU Octave@\texttt{GNU Octave}}% +\index{Mathematica@\texttt{Mathematica}}% \textit{BLAS} sind dabei in drei unterschiedliche Levels aufgeteilt. @@ -375,7 +390,7 @@ Die \textit{BLAS} sind auf die modernen Computerprozessoren optimiert und k\"onn Folgende Algorithmen wurden jeweils in \texttt{C} und \texttt{Python} implementiert. \begin{itemize} \item Standard Matrizenmultiplikation - \item \textit{Divide and Conquer} Matrizenmultiplikation + \item \textit{Divide-and-Conquer}-Matrizenmultiplikation \item Strassens Matrizenmultiplikation \item Winograds Matrizenmultiplikation \item \texttt{BLAS} Matrizenmultiplikation in \texttt{C} @@ -384,17 +399,26 @@ Folgende Algorithmen wurden jeweils in \texttt{C} und \texttt{Python} implementi Der Code kann im zum Buch gehörigem \textit{GitHub} \footnote{\url{https://github.com/AndreasFMueller/SeminarMatrizen.git}} Repository gefunden werden. Anzumerken ist, dass die Matrizenmultiplikation von \texttt{NumPy} als einzige Implementation Multiprocessing und Multithreading verwendet, dies f\"uhrt zu den tiefen Messzeiten. -In Abbildung \ref{multiplikation:fig:python} und Abbildung \ref{multiplikation:fig:c_meas_4096} sind de Messresultate grafisch dargestellt. Die selben Messresultate sind tabellarisch in Tabelle \ref{multiplikation:tab:messung_Python} und Tabelle \ref{multiplikation:tab:messung_C} ersichtlich. +In Abbildung +\ref{multiplikation:fig:c_meas_4096} +und Abbildung +\ref{multiplikation:fig:python} +sind de Messresultate grafisch dargestellt. +Die selben Messresultate sind tabellarisch in Tabelle +\ref{multiplikation:tab:messung_C} +und Tabelle +\ref{multiplikation:tab:messung_Python} +ersichtlich. Die gezeigten Algorithmen haben alle eine Laufzeit der Form $\mathcal{O}(n^k) $. Bei einer doppelt logarithmischen Darstellung unterscheiden sich diese in Geraden mit unterschiedlichen Steigungen. -Bei den grafisch gezeigten Messresultate, können diese Steigungen gut erkannt werden, wobei die tiefere Laufzeit des Strassen Algorithmus eindrücklich zu sehen ist. +Bei den grafisch gezeigten Messresultaten können diese Steigungen gut erkannt werden, wobei die tiefere Laufzeit des Strassen Algorithmus eindrücklich zu sehen ist. Der benötigte Overhead der Algorithmen zeigt sich in unterschiedlichen $y$-Achsenschnittpunkte. In der Messung mit der Programmiersprache \texttt{C} kann ein typischer Cache-Effekt beobachtet wer- den. Bei den Algorithmen von Winograd und der Standardmethode hat bei einer Matrizengrösse von $n = 2048$ wohl eine Zeile der Matrix nicht an einer Cache Speicherstelle Platz. -Diese beiden Algorithmen sind die Einzigen, welche \texttt{for}-Schleifen über die ganze Breite der Matrizen verwenden. +Diese beiden Algorithmen sind die einzigen, welche \texttt{for}-Schleifen über die ganze Breite der Matrizen verwenden. Dies führt dazu, dass ganze Zeilen zwischengespeichert werden müssen. Bei den anderen Algorithmen ist dies nicht der Fall. @@ -476,8 +500,8 @@ Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{mul \begin{figure} \center \includegraphics[width=\linewidth]{papers/multiplikation/images/meas_c} - \caption{Doppelt logarithmisch dargestellte Laufzeiten, der verschieden Algorithmen, in der Programmiersprache \texttt{C}. - Die Steigung der Messreihe mit Strassens Algorithmus ist deutlich kleiner als deren der anderen Algorithmen. + \caption{Doppelt logarithmisch dargestellte Laufzeiten der verschieden Algorithmen in der Programmiersprache \texttt{C}. + Die Steigung der Messreihe mit Strassens Algorithmus ist deutlich kleiner als die der anderen Algorithmen. Die Messung von Winograd ist beinahe gleich wie die Messung mit der Standardmethode, deshalb ist sie nicht gut sichtbar.} \label{multiplikation:fig:c_meas_4096} \end{figure} @@ -486,8 +510,8 @@ Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{mul \begin{figure} \center \includegraphics[width=\linewidth]{papers/multiplikation/images/meas_python} - \caption{Doppelt logarithmisch dargestellte Laufzeiten, der verschieden Algorithmen, in der Skriptsprache \texttt{Python}. - Die Steigung der Messreihe mit Strassens Algorithmus ist deutlich kleiner als deren der anderen Algorithmen. + \caption{Doppelt logarithmisch dargestellte Laufzeiten der verschieden Algorithmen in der Skriptsprache \texttt{Python}. + Die Steigung der Messreihe mit Strassens Algorithmus ist deutlich kleiner als die der anderen Algorithmen. } \label{multiplikation:fig:python} \end{figure} @@ -500,7 +524,7 @@ Ein optimierter Speicherzugriff hat einen weitaus grösseren Einfluss auf die La Doch haben Entdeckungen wie jene von Strassen und Winograd ihre Daseinsberechtigung. Nicht auf jeden Computersystemen können die \textit{BLAS} angewandt werden. -Denke man an sehr kleine Mikrocontroller ohne Floatingpoint Recheneinheiten oder auch an \textit{Field Programmable Gate Arrays (FPGA's)}. +Denke man an sehr kleine Mikrocontroller ohne Floatingpoint Recheneinheiten oder auch an \textit{Field Programmable Gate Arrays (FPGAs)}. Der Overhead der gezeigten Algorithmen ist in allen Fällen grösser als bei der Standardmethode (z.B. sieben rekursive Aufrufe gegenüber drei \texttt{for}-Schleifen). Um diesem entgegenzuwirken muss der Laufzeitunterschied zwischen Addition und Multiplikation gross genug sein. Wenn dies gegeben ist und dazu noch grosse Matritzen multipliziert werden, kann die Verwendung der Algorithmen von Strassen oder Winograd zu einer Senkung der Laufzeit führen. diff --git a/buch/papers/multiplikation/problemstellung.tex b/buch/papers/multiplikation/problemstellung.tex index 879b210..9c525e3 100755 --- a/buch/papers/multiplikation/problemstellung.tex +++ b/buch/papers/multiplikation/problemstellung.tex @@ -10,9 +10,12 @@ Das Ziel dieses Papers ist, verschiedenen Algorithmen der Matrizenmultiplikation Gezielt wird auf Algorithmen eingegangen, welche das Problem schneller als der Standardalgorithmus l\"osen. \label{muliplikation:sec:bigo} -Die Big $\mathcal{O}$ Notation beschreibt die Laufzeitkomplexit\"at eines Algorithmus in Relation zur Inputgrösse \cite{multiplikation:bigo}. -$f(x) \in \mathcal{O}(g(x))$ besagt, dass die Funktion $f$ nicht wesentlich schneller w\"achst als $g$, wenn $x \rightarrow \infty$. -Dies ist gegeben, falls es für $f \in \mathcal{O}(n^k)$ eine Konstante $C$ gibt, mit $f(n) \leq Cn^k$. +Die Big-$\mathcal{O}$-Notation beschreibt die Laufzeitkomplexit\"at eines Algorithmus in Relation zur Inputgrösse \cite{multiplikation:bigo}. +\index{BigOnotation@Big-$\mathcal{O}$-Notation}% +\index{Laufzeitkomplexität}% +$f(n) \in \mathcal{O}(g(n))$ besagt, dass die Funktion $f$ nicht wesentlich schneller w\"achst als $g$, wenn $n \rightarrow \infty$. +%Dies ist gegeben, falls es für $f \in \mathcal{O}(n^k)$ eine Konstante $C$ gibt, mit $f(n) \leq Cn^k$. +Dies ist gegeben, falls es für $f(n) \in \mathcal{O}(g(n))$ eine Konstante $C$ gibt, mit $f(n) \leq Cg(n)$. % Es gibt eine Konstante $K$ derart, dass $f(x) \le K g(x)$ für $x\to\infty$. Vereinfacht werden f\"ur Algorithmen die folgenden Sprechweisen verwendet: \begin{itemize} @@ -27,13 +30,13 @@ Vereinfacht werden f\"ur Algorithmen die folgenden Sprechweisen verwendet: Konstanten werden nicht beachtet, eine Laufzeit von $4n^2$ führt, für $n \rightarrow \infty$ zu $\mathcal{O}(n^2)$. In der Abbildung \ref{multiplikation:fig:bigo} k\"onnen die verschiedenen Laufzeiten miteinander verglichen werden. -Bei einer doppelt logarithmischen Darstellung werden Polynome der Form $f(x) = x^k$ als Gerade und Exponentialfunktionen der Form $f(x) = a^x$ als nach oben gekr\"ummte Kurven abgebildet. +Bei einer doppelt logarithmischen Darstellung werden Polynome der Form $f(n) = n^k$ als Geraden und Exponentialfunktionen der Form $f(n) = a^n$ als nach oben gekr\"ummte Kurven abgebildet. \subsubsection{Beispielalgorithmen} -Es folgen einige Beispiele von Algorithmen, welche zu einer bestimmten Zeitkomplexit\"atsklasse zugeteilt werden k\"onnen. +Es folgen einige Beispiele von Algorithmen, welche einer bestimmten Zeitkomplexit\"atsklasse zugeteilt werden k\"onnen. \begin{table}[t] @@ -112,26 +115,33 @@ Es folgen einige Beispiele von Algorithmen, welche zu einer bestimmten Zeitkompl %\end{table} \paragraph{Beschr\"ankter Algorithmus} -Algorithmus \ref{multiplikation:alg:b1} ist ein Beispiel mit beschränkter Laufzeit $\mathcal{O}(1)$ +\index{beschränkter Algorithmus}% +\index{Algorithmus, beschränkt}% +Algorithmus~\ref{multiplikation:alg:b1} ist ein Beispiel mit beschränkter Laufzeit $\mathcal{O}(1)$. Da $a$ und $b$ Skalare sind, hat keine Gr\"osse $n$ einen Einfluss auf die Laufzeit. Wie erwähnt werden Konstanten nicht beachtet, der Algorithmus \ref{multiplikation:alg:b2} f\"uhrt ebenso zu $\mathcal{O}(1)$ und nicht zu $\mathcal{O}(2)$. \paragraph{Linearer Algorithmus} - -Der Algorithmus \ref{multiplikation:alg:linear} hat ein lineares Verhalten. +\index{linearer Algorithmus}% +\index{Algorithmus, linear}% +Der +%Algorithmus~\ref{multiplikation:alg:linear} +Algorithmus~3 +hat ein lineares Verhalten. Die \texttt{for}-Schleife wird $n$-mal durchlaufen und f\"uhrt deshalb zu $\mathcal{O}(n)$. \paragraph{Quadratischer Algorithmus} - -Der Algorithmus \ref{multiplikation:alg:q1} hat ein quadratisches Verhalten. -Die beiden \texttt{for}-Schleifen werden jeweils $n$-mal durchlaufen und f\"uhrt deshalb zu $\mathcal{O} (n^2 )$. +\index{quadratischer Algorithmus}% +\index{Algorithmus, quadratisch}% +Der Algorithmus~\ref{multiplikation:alg:q1} hat ein quadratisches Verhalten. +Die beiden \texttt{for}-Schleifen werden jeweils $n$-mal durchlaufen und f\"uhren deshalb zu $\mathcal{O} (n^2 )$. \begin{figure} \center \includegraphics[]{papers/multiplikation/images/bigo} - \caption{Laufzeiten von verschiedensten Zeitkomplexitäten. Bei einer doppelt logarithmischen Darstellung werden Polynome der Form $f(x) = x^k$ als Gerade und Exponentialfunktionen der Form $f(x) = a^x$ als nach oben gekr\"ummte Kurven dargestellt.} + \caption{Laufzeiten von verschiedenen Zeitkomplexitäten. Bei einer doppelt logarithmischen Darstellung werden Polynome der Form $f(n) = n^k$ als Geraden und Exponentialfunktionen der Form $f(n) = a^n$ als nach oben gekr\"ummte Kurven dargestellt.} \label{multiplikation:fig:bigo} \end{figure} diff --git a/buch/papers/munkres/main.tex b/buch/papers/munkres/main.tex index 201e70b..ecc7072 100644 --- a/buch/papers/munkres/main.tex +++ b/buch/papers/munkres/main.tex @@ -4,7 +4,7 @@ % (c) 2020 Hochschule Rapperswil % \chapter{Das Zuordnungsproblem und der Munkres-Algorithmus\label{chapter:munkres}} -\lhead{Das Zuordnungsproblem und der Munkres-Algorithmus} +\lhead{Der Munkres-Algorithmus} \begin{refsection} \chapterauthor{Marc Kühne} diff --git a/buch/papers/munkres/teil0.tex b/buch/papers/munkres/teil0.tex index 0578429..efdf816 100644 --- a/buch/papers/munkres/teil0.tex +++ b/buch/papers/munkres/teil0.tex @@ -6,5 +6,13 @@ \section{Einleitung\label{munkres:section:teil0}} \rhead{Einleitung} -Im Bereich der Unternehmensplanung (Operations Research) gibt es verschiedene Fragestellungen. Eine davon ist das sogenannte Transportproblem. Zum Transport einheitlicher Objekte von mehreren Angebots- zu mehreren Nachfrageorten ist ein optimaler, d. h. kostenminimaler Plan zu finden, wobei die vorhandenen und zu liefernden Mengen an den einzelnen Standorten gegeben sowie die jeweiligen Transportkosten pro Einheit zwischen allen Standorten bekannt sind. -Nun gibt es im Bereich des klassischen Transportproblems Sonderfälle. Ein Sonderfall ist z.B. das Zuordnungsproblem. +Im Bereich der Unternehmensplanung (Operations Research) gibt es verschiedene Fragestellungen. +\index{Unternehmensplanung}% +\index{Operations Research}% +Eine davon ist das sogenannte Transportproblem. +\index{Transportproblem}% +Zum Transport einheitlicher Objekte von mehreren Angebots- zu mehreren Nachfrageorten ist ein optimaler, +d.~h.~kostenminimaler Plan zu finden, wobei die vorhandenen und zu liefernden Mengen an den einzelnen Standorten gegeben sowie die jeweiligen Transportkosten pro Einheit zwischen allen Standorten bekannt sind. +Nun gibt es im Bereich des klassischen Transportproblems Sonderfälle. +Ein Sonderfall ist z.~B.~das Zuordnungsproblem. +\index{Zuordnungsproblem}% diff --git a/buch/papers/munkres/teil1.tex b/buch/papers/munkres/teil1.tex index aad45cc..0c23c7c 100644 --- a/buch/papers/munkres/teil1.tex +++ b/buch/papers/munkres/teil1.tex @@ -3,21 +3,28 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Beschrieb des Zuordnungsproblems +\section{Das Zuordnungsproblems \label{munkres:section:teil1}} -\rhead{Problemstellung} +\rhead{Zuordnungsproblem} Das Spezielle an einem Zuordnungsproblem ist, dass es an jedem Ort nur eine Einheit angeboten bzw. nachgefragt wird. Es werden hier nicht Mengen möglichst kostenminimal von einem zum anderen -Ort transportiert, sondern es geht um die kostenminimale Zuordnung von z.B. Personen oder Bau-Maschinen auf bestimmte Orte, Stellen oder Aufgaben. -Um dieses Problem in einer einfachen, händischen Art und Weise zu lösen wurde der Munkres-Algorithmus, auch die Ungarische Methode genannt, entwickelt. Diese Methode ist ein weiteres Hauptthema dieses Kapitels. +Ort transportiert, sondern es geht um die kostenminimale Zuordnung von z.~B.~Personen oder Bau-Maschinen auf bestimmte Orte, Stellen oder Aufgaben. +Um dieses Problem in einer einfachen, händischen Art und Weise zu lösen wurde der Munkres-Algorithmus, auch die ungarische Methode genannt, entwickelt. Diese Methode ist ein weiteres Hauptthema dieses Kapitels. +\index{Munkres-Algorithmus}% +\index{ungarische Methode}% \subsection{Zuordnungsproblem an einem konkreten Beispiel \label{munkres:subsection:bonorum}} Als Beispiel betrachten wir den Fall, wo ein Bauunternehmer einen Bauingenieur beauftragt, eine optimale Transportroute für die Umplatzierung seiner Kräne zu eruieren. Das heisst, die Transportstrecke für die Umplatzierung seine Kräne soll möglichst klein werden. Die Frage lautet: Wie sind die Kräne umzusetzen, damit deren Transportstrecke minimal wird? Bei der normalen Optimierung dürfen normalerweise beliebige reelle Werte $\mathbb{R}$ angenommen werden. -Beim Beispiel mit den Kräne gibt es aber ein Problem. Bei der Suche nach der optimalen Lösung darf nur die Methode der ganzzahligen Optimierung gewählt werden. Materialien kann man aufteilen, jedoch Maschinen nicht. Die Bauarbeiter auf der neuen Baustelle benötigen einen ganzen Kran und nicht nur einen halben Kran. Es muss immer ein ganzer Kran (Anzahl 1) von A nach B oder gar kein Kran (Anzahl 0) verschoben werden. -Für solche Optimierungsprobleme für reelle Variablen sind verschiedene Verfahren entwickelt worden, die im Allgemeinen auch sehr effizient sind. Das reelle Problem ist also in einer einfachen Art und Weise lösbar. Doch das Problem bleibt, wie in der Illustration oben ersichtlich. Es kann mit ganzzahligen Punkten kein Optimum erzielt werden. Das Ziel ist es an das Optimum so nah wie möglich heranzukommen und dies ist eine vergleichsweise träge und langsame Angelegenheit. +\index{Optimierung}% +Für solche Optimierungsprobleme für reelle Variablen sind verschiedene Verfahren entwickelt worden, die im Allgemeinen auch sehr effizient sind. Das reelle Problem ist also in einer einfachen Art und Weise lösbar. + +Beim Beispiel der Kräne gibt es aber ein Problem. Bei der Suche nach der optimalen Lösung darf nur die Methode der ganzzahligen Optimierung gewählt werden. Materialien kann man aufteilen, jedoch Maschinen nicht. Die Bauarbeiter auf der neuen Baustelle benötigen einen ganzen Kran und nicht nur einen halben Kran. Es muss immer ein ganzer Kran (Anzahl 1) von $A$ nach $B$ oder gar kein Kran (Anzahl 0) verschoben werden. +\index{ganzzahlige Optimierung}% +\index{Optimierung, ganzzahlig}% +Es entsteht das Problem, wie in der Illustration~\ref{munkres:Vr2} ersichtlich. Es kann mit ganzzahligen Punkten kein Optimum erzielt werden. Das Ziel ist es an das Optimum so nah wie möglich heranzukommen und dies ist eine vergleichsweise träge und langsame Angelegenheit. \begin{figure} \centering @@ -30,11 +37,11 @@ Für solche Optimierungsprobleme für reelle Variablen sind verschiedene Verfahr \subsection{Zuordnungsproblem abstrakt \label{munkres:subsection:bonorum}} -In einem Zuordnungsproblem sind alle Angebots- und Bedarfsmengen gleich 1 +In einem Zuordnungsproblem sind alle Angebots- und Bedarfsmengen gleich 1: \begin{equation} -a_{i}=b_{j}=1 +a_{i}=b_{j}=1. \end{equation} -Das Ziel ist es die Gesamtkosten zu minimieren. Mit Hilfe einer $n\times n$ Matrix +Das Ziel ist, die Gesamtkosten zu minimieren. Mit Hilfe einer $n\times n$ Matrix \[ A = @@ -47,21 +54,41 @@ a_{n1}&a_{n2}&\dots &a_{nn} \in \mathbb{R}^{n,n} \] kann der Faktor Kosten mit in die Rechnung eingebracht werden. -In den Zellen dieser Matrix sind die Zahlen $a_{i,j}$ dargestellt, welche den Weg in z.B. Kilometer beschreiben. -Sie entstehen, wenn man z.B. einem Kran $i$ dem Einsatzort $j$ zuordnet. +In den Zellen dieser Matrix sind die Zahlen $a_{i,j}$ dargestellt, welche den Weg in z.~B.~Kilometer beschreiben. +Sie entstehen, wenn man z.~B.~einem Kran $i$ dem Einsatzort $j$ zuordnet. \subsection{Alternative Darstellungen des Zuordnungsproblems \label{munkres:subsection:bonorum}} \subsubsection{Netzwerk} -Ein (Fluss- oder Transport-) Netzwerk (engl. network) ist ein zusammenhängender Graph, bei dem jede Kante einen Fluss aufnehmen kann und jede Kante eine Kapazität für den Fluss hat. Die Menge des Flusses auf einer Kante kann die Kapazität der Kante nicht überschreiten. Ein Fluss muss die Einschränkung erfüllen, dass die Menge des Flusses in einen Knoten gleich der Menge des Flusses aus ihm heraus ist. Ein Fluss-Netzwerk (engl. flow network) ist ein Netzwerk, dessen Kanten zusätzlich Kosten pro Mengeneinheit des Flusses zugeordnet sind. Typischerweise will man einen Fluss durch die Kanten bestimmen, der den Einschränkungen des Netzwerks genügt und dessen Gesamtkosten minimal sind. Im Bild 21.2 dargestellt sind in den eckigen Klammern links die externen Flüsse $[1]$ für jeden Kran und in den eckigen Klammern rechts eine $[-1]$ für jeden Baustellenort. Die Kosten sind entlang der Kanten als Zahlen in Klammern dargestellt. +Ein Fluss- oder Transportnetzwerk (engl.~network) ist ein zusammenhängender Graph, bei dem jede Kante einen Fluss aufnehmen kann und jede Kante eine Kapazität für den Fluss hat. +\index{Flussnetzwerk}% +\index{Transportnetzwerk}% +\index{zusammenhängend}% +\index{Fluss}% +\index{Kapazität}% +Die Menge des Flusses auf einer Kante kann die Kapazität der Kante nicht überschreiten. +Ein Fluss muss die Einschränkung erfüllen, dass die Menge des Flusses +in einen Knoten gleich der Menge des Flusses aus ihm heraus ist. +Ein Flussnetzwerk (engl.~flow network) ist ein Netzwerk, dessen Kanten zusätzlich Kosten pro Mengeneinheit des Flusses zugeordnet sind. +\index{Flussnetzwerk}% +Typischerweise will man einen Fluss durch die Kanten bestimmen, der den Einschränkungen des Netzwerks genügt und dessen Gesamtkosten minimal sind. +Im Bild~\ref{munkres:netzwerkdarstellung} +dargestellt sind in den eckigen Klammern links die externen Flüsse $[1]$ für jeden Kran und in den eckigen Klammern rechts eine $[-1]$ für jeden Baustellenort. Die Kosten sind entlang der Kanten als Zahlen in Klammern dargestellt. \subsubsection{Matrix} -Im Bild 21.3 ist eine typische $4\times 4$ Matrix dargestellt. Die Zeilen A1 bis A4 betreffen z.B. vier bestehende Maschinenlager eines Unternehmers. In den Spalten B1 bis B4 sind vier neue Baustellenorte zugewiesen. Die Zahlen in der Matrix bedeuten z.B. die Distanz in Kilometer von dem jeweiligen Lager zur jeweiligen Baustelle. +Im Bild~\ref{munkres:matrixdarstellung} +ist eine typische $4\times 4$ Matrix dargestellt. Die Zeilen A1 bis A4 betreffen z.~B.~vier bestehende Maschinenlager eines Unternehmers. In den Spalten B1 bis B4 sind vier neue Baustellenorte zugewiesen. Die Zahlen in der Matrix bedeuten z.~B.~die Distanz in Kilometer von dem jeweiligen Lager zur jeweiligen Baustelle. \subsubsection{Bitpartiter Graph} Ein bipartiter Graph ist ein mathematisches Modell für Beziehungen -zwischen den Elementen zweier Mengen. Es eignet sich sehr gut zur Untersuchung von Zuordnungsproblemen. Zwischen zwei Gruppen von Objekten wird hierbei eine eindeutige Zuordnung hergestellt. Der Graph ist in Abbildung 21.4 ersichtlich. +zwischen den Elementen zweier Mengen. +\index{bipartit}% +\index{Graph, bipartit}% +Es eignet sich sehr gut zur Untersuchung von Zuordnungsproblemen. +Zwischen zwei Gruppen von Objekten wird hierbei eine eindeutige Zuordnung hergestellt. +Der Graph ist in Abbildung~\ref{munkres:bipartit} +ersichtlich. \begin{itemize} -\item 3 = Anzahl der Knoten aus Menge A. -\item 3 = Anzahl der Knoten aus Menge B. +\item $3 =\mathstrut$Anzahl der Knoten aus Menge $A$. +\item $3 =\mathstrut$Anzahl der Knoten aus Menge $B$. \end{itemize} @@ -69,19 +96,19 @@ zwischen den Elementen zweier Mengen. Es eignet sich sehr gut zur Untersuchung v \centering \includegraphics[width=5cm]{papers/munkres/figures/Netzwerkdarstellung} \caption{Typische Netzwerkdarstellung eines Zuordnungsproblems.} -\label{munkres:Vr2} +\label{munkres:netzwerkdarstellung} \end{figure} \begin{figure} \centering \includegraphics[width=5cm]{papers/munkres/figures/Matrixdarstellung} -\caption{Typische 4x4 Matrixdarstellung eines Zuordnungsproblems.} -\label{munkres:Vr2} +\caption{Typische $4\times 4$ Matrixdarstellung eines Zuordnungsproblems.} +\label{munkres:matrixdarstellung} \end{figure} \begin{figure} \centering \includegraphics[width=5cm]{papers/munkres/figures/bipartiter_graph} \caption{$K_{3,3}$ vollständig bipartiter Graph mit 3 Knoten pro Teilmenge.} -\label{munkres:Vr2} +\label{munkres:bipartit} \end{figure} diff --git a/buch/papers/munkres/teil2.tex b/buch/papers/munkres/teil2.tex index 2fe24f8..e4e968a 100644 --- a/buch/papers/munkres/teil2.tex +++ b/buch/papers/munkres/teil2.tex @@ -3,10 +3,16 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Schwierigkeit der Lösung (Permutationen) +\section{Schwierigkeit der Lösung \label{munkres:section:teil2}} -\rhead{Schwierigkeit der Lösung (Permutationen)} +\rhead{Schwierigkeit der Lösung} -Eine Permutation ist eine Anordnung von Objekten in einer bestimmten Reihenfolge oder eine Umordnung von Objekten aus einer vorgegebenen Reihung. Ist eine optimale Zuordnung gefunden, so steht in jeder Zeile und jeder Spalte der Matrix genau ein Element, das zur optimalen Lösung gehört, eine solche Gruppe von Positionen wird auch als Transversale der Matrix bezeichnet. -Die Problemstellung kann auch so formuliert werden, dass man die Zeilen- oder die Spaltenvektoren so umordnet soll, dass die Summe der Elemente in der Hauptdiagonale maximal wird. Hieraus wird sofort ersichtlich, dass es in einer $n$×$n$-Matrix genau so viele Möglichkeiten gibt, die Zeilen- bzw. Spaltenvektoren zu ordnen, wie es Permutationen von $n$ Elementen gibt, also $n!$. Außer bei kleinen Matrizen ist es nahezu aussichtslos, die optimale Lösung durch Berechnung aller Möglichkeiten zu finden. Schon bei einer 10×10-Matrix gibt es nahezu 3,63 Millionen (3.628.800) zu berücksichtigende Permutationen. +Eine Permutation ist eine Anordnung von Objekten in einer bestimmten Reihenfolge oder eine Umordnung von Objekten aus einer vorgegebenen Reihung. +Ist eine optimale Zuordnung gefunden, so steht in jeder Zeile und jeder Spalte der Matrix genau ein Element, das zur optimalen Lösung gehört, eine solche Gruppe von Positionen wird auch als Transversale der Matrix bezeichnet. +\index{Transversale einer Matrix}% +Die Problemstellung kann auch so formuliert werden, dass man die Zeilen- oder die Spaltenvektoren so umordnet soll, dass die Summe der Elemente in der Hauptdiagonale maximal wird. + +In einer $n\times n$-Matrix gibt es genau so viele Möglichkeiten, die Zeilen- bzw.~Spaltenvektoren zu ordnen, wie es Permutationen von $n$ Elementen gibt, also $n!$. +Ausser bei kleinen Matrizen ist es daher nahezu aussichtslos, die optimale Lösung durch Berechnung aller Möglichkeiten zu finden. +Schon bei einer $10\times 10$-Matrix gibt es nahezu 3.63 Millionen ($10!=3628800$) zu berücksichtigende Permutationen. diff --git a/buch/papers/munkres/teil3.tex b/buch/papers/munkres/teil3.tex index fd25a74..500216a 100644 --- a/buch/papers/munkres/teil3.tex +++ b/buch/papers/munkres/teil3.tex @@ -3,9 +3,9 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Der Munkres-Algorithmus (Ungarische Methode) +\section{Der Munkres-Algorithmus oder die ungarische Methode \label{munkres:section:teil3}} -\rhead{Der Munkres-Algorithmus (Ungarische Methode)} +\rhead{Ungarische Methode} Mit der ungarischen Methode können also Optimierungsprobleme gelöst werden, die bei gewichteten Zuordnungen in bipartiten Graphen entstehen. @@ -16,33 +16,51 @@ Gesamtgewinn maximiert werden kann. \subsection{Geschichte \label{munkres:subsection:malorum}} Die Ungarische Methode wurde 1955 von Harold Kuhn entwickelt und veröffentlicht. +\index{Kuhn, Harold}% Der Name ``Ungarische Methode'' ergab sich, weil der Algorithmus weitestgehend auf den früheren Arbeiten zweier ungarischer Mathematiker basierte: Dénes Kőnig und Jenő Egerváry. +\index{Kőnig, Dénes}% +\index{Egerváry, Jenő}% +\index{Munkres, James}% James Munkres überprüfte den Algorithmus im Jahr 1957 und stellte fest, dass der Algorithmus (stark) polynomiell ist. -Seitdem ist der Algorithmus auch als Kuhn-Munkres oder +Seitdem ist der Algorithmus auch als Kuhn-Munkres- oder Munkres-Zuordnungsalgorithmus bekannt. +\index{Kuhn-Munkres-Zuordnungsalgorithmus}% +\index{Munkres-Zuordnungsalgorithmus}% Die Zeitkomplexität des ursprünglichen Algorithmus war $O(n^4)$, später wurde zudem festgestellt, dass er modifiziert werden kann, um eine $O(n^3)$-Laufzeit zu erreichen. \subsection{Besondere Leistung der Ungarischen Methode \label{munkres:subsection:malorum}} -Die Ungarische Methode ist ein kombinatorischer Optimierungsalgorithmus, der das Zuordnungsproblem +Die ungarische Methode ist ein kombinatorischer Optimierungsalgorithmus, der das Zuordnungsproblem +\index{Optimierungsalgorithmus, kombinatorisch}% in polynomieller Zeit löst. Der Begriff polynomielle Laufzeit bedeutet, dass die Laufzeit des Programms -wie $n^2$, $n^3$, $n^4$, etc.~wächst und vernünftig skaliert. $n$ ist hierbei die ''Grösse'' des Problems. +\index{polynomielle Laufzeit}% +wie $n^2$, $n^3$, $n^4$, etc.~wächst und vernünftig skaliert. $n$ ist hierbei die ``Grösse'' des Problems. \subsection{Unterschiedliche Anzahl von Quellen und Zielen \label{munkres:subsection:malorum}} -Es gibt Fälle, in welchen das Ausgangsproblem keine quadratische Form besitzt. Das ist z. B. dann der Fall, wenn drei Mitarbeiter vier verschiedene Eignungstests absolvieren müssen. In diesem Fall wird in der Ungarischen Methode die Matrix künstlich mittels einer Dummy Position zu einem Quadrat ergänzt. Dummy-Positionen werden dann mit der größten vorhandenen Zahl aus der Matrix besetzt. Beispielsweise wird eine $3\times 4$ zu einer $4\times 4$-Matrix. +Es gibt Fälle, in welchen das Ausgangsproblem keine quadratische Form besitzt. +Das ist z.~B.~dann der Fall, wenn drei Mitarbeiter vier verschiedene Eignungstests absolvieren müssen. +In diesem Fall wird in der Ungarischen Methode die Matrix künstlich mittels einer Dummy-Position zu einem Quadrat ergänzt. +Dummy-Positionen werden dann mit der größten vorhandenen Zahl aus der Matrix besetzt. +Beispielsweise wird eine $3\times 4$ zu einer $4\times 4$-Matrix. \subsection{Beispiel eines händischen Verfahrens \label{munkres:subsection:malorum}} +\begin{figure} +\centering +\includegraphics[width=8cm]{papers/munkres/figures/Ungarische_Methode_Beispiel.png} +\caption{Händisches Beispiel des Munkres Algorithmus, minimaler Transportweg.} +\label{munkres:Vr2} +\end{figure} Die ungarische Methode kann in einem einfachen händischen Beispiel erläutert werden. Wir gehen von der Kostenmatrix $A$ aus. Diese Matrix wird in mehreren Schritten immer weiter reduziert. Anschliessend erfolgen mehrere Zuordnungen. Hierbei ist zu beachten, dass jede Zeile und jede Spalte immer genau eine eindeutige Zuordnung ergibt. Es gibt Situationen, in denen man nichts mehr tun muss, um eine optimale Zuordnung zu finden. Eine optimale Zuordnung ohne zusätzliche Kosten ist eine Auswahl genau eines Feldes in jeder Zeile und Spalte, welches 0 enthält. Das Ziel des Algorithmus ist also, die Matrix so zu ändern, dass genügend Nullen in der Matrix vorkommen. Es ist zudem wichtig, dass man nach jeder Modifikation der Matrix testet, ob man bereits eine Zuordnung machen kann, also genügend Nullen hat. -Das Vorgehen wird in den nachfolgenden Schritten 1-6 beschrieben und auch in der Abbildung 21.5 dargestellt. +Das Vorgehen wird in den nachfolgenden Schritten 1--6 beschrieben und auch in der Abbildung 21.5 dargestellt. \begin{enumerate} \item Man beginnt mit der Zeilen-Reduktion. Pro Zeile eruiert man die kleinste Zahl. Diese kleinste Zahl, jeweils in rot markiert, wird bei allen anderen Ziffern in der jeweiligen Zeile subtrahiert. Mit dieser Subtraktion zieht man die unvermeidbaren Kosten ab, die man hat, um eine Baustelle zu erreichen. Man erkennt, dass die Nullen mit zwei Linien abdeckbar sind. Das heisst es gibt zwei Spalten bei denen noch keine Zuordnungen möglich sind. @@ -56,22 +74,22 @@ Dieser Schritt 3 muss so oft wiederholt werden, bis genügend viele Nullen in de \item In Schritt 4 sollen jetzt möglichst viele Nullen markiert werden, welche freistehend sind. Freistehend bedeutet, dass sowohl in der jeweiligen Zeile und Spalte keine andere markierte Null vorhanden ist. -\item Alle markierten Nullen werden jetzt in eine 1 umgewandelt. Die restlichen Ziffern in der Matrix, exklusiv die einsen, sollen jetzt ignoriert und durch eine Null ersetzt werden. +\item Alle markierten Nullen werden jetzt in eine 1 umgewandelt. Die restlichen Ziffern in der Matrix, exklusiv die Einsen, sollen jetzt ignoriert und durch eine 0 ersetzt werden. -\item Zu guter Letzt werden überall wo eine 1 steht, die Zahlen aus der Ausgangsmatrix eingefügt. Nach Einsetzen der Zahlen können die in rot markierten Zahlen aufsummiert werden. Man erhält den minimalsten Transportweg von total 13 Kilometer. +\item Zu guter Letzt werden überall wo eine 1 steht, die Zahlen aus der Ausgangsmatrix eingefügt. Nach Einsetzen der Zahlen können die in rot markierten Zahlen aufsummiert werden. Man erhält den minimalen Transportweg von total 13 Kilometer. \end{enumerate} \begin{figure} \centering -\includegraphics[width=8cm]{papers/munkres/figures/Ungarische_Methode_Beispiel.png} -\caption{Händisches Beispiel des Munkres Algorithmus, minimalster Transportweg.} +\includegraphics[width=3cm]{papers/munkres/figures/Ungarische_Methode_Beispiel_Zuw.png} +\caption{Händisches Beispiel des Munkres Algorithmus, Zuweisung der Kräne } \label{munkres:Vr2} -\end{figure} +\end{figure} \subsection{Zuordnung der Kräne \label{munkres:subsection:malorum}} -Als Resultat des Munkres-Algorithmus werden in Abbildung 21.6 nebst dem minimalsten Transportweg auch die optimalste Zuweisung der Kräne auf die neuen Standorte ersichtlich. +Als Resultat des Munkres-Algorithmus werden in Abbildung 21.6 nebst dem minimalen Transportweg auch die optimale Zuweisung der Kräne auf die neuen Standorte ersichtlich. Es können die folgenden Zuordnungen aus der Matrix abgelesen werden: \begin{itemize} \item Der Kran von Baustelle A1 soll zur Baustelle B2. @@ -80,9 +98,3 @@ Es können die folgenden Zuordnungen aus der Matrix abgelesen werden: \item Der Kran von Baustelle A4 soll zur Baustelle B1. \end{itemize} -\begin{figure} -\centering -\includegraphics[width=3cm]{papers/munkres/figures/Ungarische_Methode_Beispiel_Zuw.png} -\caption{Händisches Beispiel des Munkres Algorithmus, Zuweisung der Kräne } -\label{munkres:Vr2} -\end{figure}
\ No newline at end of file diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index 0a9d3b6..1ba5466 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -1,9 +1,11 @@ \section{Kristalle} +\index{Kristalle}% Eine nicht allzu häufig gestellte Frage ist, wie ein Kristall definiert ist. Um zu klären, was ein Kristall mit Symmetrien zu tun hat, ist jedoch genau diese Frage äusserst relevant. Glücklicherweise ist das Innere eines Kristalles relativ einfach definiert. \begin{definition}[Kristall] Ein Kristall besteht aus Atomen, welche sich in einem Muster arrangieren, welches sich in drei Dimensionen periodisch wiederholt. +\index{periodisch}% \end{definition} \begin{figure} @@ -15,18 +17,22 @@ Glücklicherweise ist das Innere eines Kristalles relativ einfach definiert. } \end{figure} \subsection{Kristallgitter} +\index{Kristallgitter}% Ein zweidimensionales Beispiel eines solchen Muster ist Abbildung \ref{fig:punktgruppen:lattice}. Für die Überschaubarkeit haben wir ein simples Motiv eines einzelnen grauen Punktes dargestellt und betrachten dies nur in zwei Dimensionen. Die eingezeichneten Vektoren \(\vec{a}_1\) und \(\vec{a}_2\) sind die kleinstmöglichen Schritte im Raum bis sich das Kristallgitter wiederholt. Wird ein beliebiger grauer Gitterpunkt in Abbildung \ref{fig:punktgruppen:lattice} gewählt und um eine ganzzahlige Linearkombination von \(\vec{a}_1\) und \(\vec{a}_2\) verschoben, endet er zwangsweise auf einem Gitterpunkt, wenn nicht wieder am selben Ort. +\index{Gitterpunkt}% Im dreidimensionalen Raum können alle Gitterpunkte mit derselben Idee und einem zusätzlichen Vektor \(\vec{a}_3\) also \[ \vec{r} = n_1 \vec{a}_1 + n_2 \vec{a}_2 + n_3 \vec{a}_3 = \sum_i n_i \vec{a}_i \] erreicht werden sofern \(n_1,n_2,n_3 \in \mathbb{Z}\) sind. Sind die Vektoren \(\vec{a}_1\), \(\vec{a}_2\), \(\vec{a}_3\) gegeben, ist ein Kristallgitter eindeutig beschrieben, weswegen sie auch als Grundvektoren bekannt sind. +\index{Grundvektor}% \subsection{Translationssymmetrie} +\index{Translationssymmetrie}% Da sich das ganze Kristallgitter wiederholt, wiederholen sich auch dessen Eigenschaften periodisch mit den Grundvektoren. Sollte man sich auf einem Gitterpunkt in einem Kristall aufhalten, ist es unmöglich zu wissen, auf welchem Gitterpunkt man sich befindet, da die Umgebungen aller Punkte identisch sind. Mit anderen Worten: Jedes Kristallgitter $ G $ ist \emph{translationssymmetrisch} in der Translation @@ -54,6 +60,7 @@ Dabei sollte erwähnt werden, dass eine Translationssymmetrie nur in unendlich g \end{figure} \begin{satz} \label{thm:punktgruppen:crystal-restriction} +\index{Rotationssymmetrie} Die Rotationssymmetrien eines Kristalls sind auf 2-fach, 3-fach, 4-fach und 6-fach beschränkt. Mit anderen Worten: Es sind nur Drehwinkel von 0\(^{\circ}\), @@ -122,6 +129,7 @@ ein. \end{figure} \subsection{Kristallklassen} +\index{Kristallklasse}% Im vorausgegangenen Abschnitt wurde gezeigt, dass in einem zweidimensionalen Kristallgitter nicht alle Symmetrien möglich sind. Mit weiteren ähnlichen Überlegungen kann gezeigt werden, dass Kristalle im dreidimensionalen Raum nur auf genau 32 Arten rein punktsymmetrische Symmetriegruppen bilden können. @@ -138,13 +146,21 @@ Im vorausgegangenen Abschnitt wurde gezeigt, dass in einem zweidimensionalen Kri \end{figure} \subsubsection{Schönflies-Symbolik} - +\index{Schönflies-Symbol}% Jede der 32 Kristallklassen auf der Abbildung \ref{fig:punktgruppen:kristallklassen} ist mit ihrem zugehörigen Schönflies-Symbol bezeichnet. Die Schönflies-Symbolik stammt von dem Mathematiker Arthur Moritz Schönflies, welcher sich unter anderem mit der Klasifizierung der Punktgruppen auseinandergesetzt hat. +\index{Schönflies, Arthur Moritz}% Er hat Untergruppen gebildet, welche als Grossbuchstaben in Abbildung \ref{fig:punktgruppen:kristallklassen} zu sehen sind. \begin{itemize} \item In Kristallen ist nur die Drehgruppe \(C\), Diedergruppe \(D\), Drehspiegelgruppe \(S\), Tetraedergruppe \(T\) und die Oktaedergruppe \(O\) zu finden. +\index{Drehgruppe}% +\index{Diedergruppe}% +\index{Drehspiegelgruppe}% +\index{Tetraedergruppe}% +\index{Oktaedergruppe}% Es gäbe auch die Ikosaedergruppe \(I\) und die Kugelgruppe \(K\), diese sind aber nach Satz \ref{thm:punktgruppen:crystal-restriction} nicht kompatibel mit der Translationssymmetrie eines Kristalles und daher in der Kristallographie nicht relevant. +\index{Ikosaedergruppe}% +\index{Kugelgruppe}% \item Dank Abschnitt \ref{sec:punktgruppen:Translationssymmetrie} wissen wir, wieso in Abbildung \ref{fig:punktgruppen:kristallklassen} auf \(C\) nur ganz bestimmte Subskripte folgen. Ist im Subskript eine Zahl \(n\) zu finden, steht dies für eine \(n\)-fache Symmetrie. Daher darf \(C_5\) auf der Abbildung \ref{fig:punktgruppen:kristallklassen} nicht vorkommen, da \(360^\circ/5 = 72^\circ\) was nach Satz \ref{thm:punktgruppen:crystal-restriction} keine mögliche Rotationssymmetrie eines Kristalles ist. @@ -159,6 +175,7 @@ Jede der 32 Kristallklassen auf der Abbildung \ref{fig:punktgruppen:kristallklas \item[\(d\)] symbolisiert eine diagonale Symmetrieebene. Es wird ersichtlich wie diagonal gemeint ist, wenn man \(D_2\) zu \(D_{2d}\) vergleicht. \item[\(i\)] steht für ein Inversionszentrum. Hat eine Symmetriegruppe ein Inversionszentrum, bedeutet dies dass sie im Ursprung punktsymmetrisch ist. +\index{Inversionszentrum}% \end{itemize} \end{itemize} Zu beachten ist jedoch, dass manche Symmetriegruppen mit mehreren Schönflies-Symbolen beschieben werden können. diff --git a/buch/papers/punktgruppen/intro.tex b/buch/papers/punktgruppen/intro.tex index e3f0226..f11a346 100644 --- a/buch/papers/punktgruppen/intro.tex +++ b/buch/papers/punktgruppen/intro.tex @@ -1,14 +1,19 @@ \section{Einleitung} Es gibt viele Möglichkeiten sich in Kristallen zu verlieren. +\index{Kristall}% Auch wenn man nur die mathematischen Betrachtungsweisen berücksichtigt, hat man noch viel zu viele Optionen, sich mit Kristallen zu beschäftigen. In diesem Kapitel wird daher der Fokus ``nur'' auf die Symmetrie gelegt. Zu Beginn werden wir zeigen, was eine Symmetrie ausmacht und dass sie noch weit mehr in sich verbirgt als nur schön auszusehen. Die vorgestellten Symmetrien sind äusserst gut geeignet, um die Grundeigenschaften eines Kristalles zu beschreiben. +\index{Symmetrie}% Mit etwas kniffligen geometrischen Überlegungen kann man zeigen, was in der Welt der Kristallographie alles möglich ist oder nicht. +\index{Kristallographie}% Diese erlauben alle möglichen Kristalle nach ihren Symmetrien in erstaunlich wenige Klassen zu kategorisieren. +\index{Kristallklasse}% Kategorien sind nicht nur für einen besseren Überblick nützlich, sondern kann man aus ihnen auch auf physikalische Eigenschaften schliessen. Als spannendes Beispiel: Die Piezoelektrizität. +\index{Piezoelektrizität}% Piezoelektrizität beschreibt einen Effekt, ohne welchen diverse Altagsgegenständen nicht besonders nützlich wären. Zum Beispiel sorgt er in den allermeisten Feuerzeugen für die Zündung. Hiermit ist hoffentlich ein Funken Interesse geweckt um sich mit dem scheinbar trivialen Thema der Symmetrie auseinander zu setzten. diff --git a/buch/papers/punktgruppen/piezo.tex b/buch/papers/punktgruppen/piezo.tex index 1cf9b98..cc4272b 100644 --- a/buch/papers/punktgruppen/piezo.tex +++ b/buch/papers/punktgruppen/piezo.tex @@ -1,5 +1,8 @@ \section{Piezoelektrizität} +\index{Piezoelektrizität}% Die Piezoelektrizität ist die spannende Eigenschaft, dass gewisse Kristalle eine elektrische Spannung erzeugen, wenn mechanischer Druck auf sie ausgeübt wird. +\index{elektrische Spannung}% +\index{mechanischer Druck}% \begin{figure} \centering @@ -9,9 +12,10 @@ Die Piezoelektrizität ist die spannende Eigenschaft, dass gewisse Kristalle ein \end{figure} \subsection{Polarisierung} - +\index{Polarisierung}% Piezoelektrizität basiert darauf, dass zwischen den Oberflächen des Kristalles ein Ladungsungleichgewicht entsteht (siehe Abbildung\ref{fig:punktgruppen:basicPiezo}). Dieses Ungleichgewicht resultiert, weil durch den mechanischen Druck auf der einen Oberfläche des Kristalles positive Ionen näher an die Oberfläche gelangen, wärend auf der gegenüberliegenden Seite dasselbe mit negativen Ionen passiert. +\index{Ionen}% Es besitzt jedoch nicht jeder Kristall eine atomare Struktur, welche sich unter Druck genau so verformt. Der Aufbau und somit auch die Symmetrie des Kristalles sind daher relevant für die Entstehung dieses Effektes. @@ -41,6 +45,8 @@ In Abbildung \ref{fig:punktgruppen:atomPiezo} gilt für alle Strukturen, dass ro Struktur \subref{fig:punktgruppen:atoms-piezo} zeigt ein piezoelektrisches Material in Ruhe. Struktur \subref{fig:punktgruppen:atoms-piezo-fv} ist dasselbe Kristallgitter, jedoch wird es senkrecht belastet. Eingezeichnet ist auch das elektrische Feld, welches entsteht, weil die Ladungsträger ganz links und rechts weiter auseinander gedrückt werden. +\index{elektrisches Feld}% +\index{Ladungsträger}% Als Hilfe zur Vorstellung kann man \subref{fig:punktgruppen:atoms-piezo-fv} zwischen zwei leitende Platten setzen, so wird ersichtlich, dass mit wachsendem Druck eine negative Ladung an die rechte Platte gedrückt wird, während sich die positiven Ionen weiter entfernen. @@ -60,7 +66,7 @@ Das Fehlen dieser Rotationssymmetrie bestätigt sich auch wenn \subref{fig:punkt Piezoelektrische Kristalle können nicht punktsymmetrisch sein. Kristallgitter, bei welchen eine Punktspiegelung eine symmetrische Operation ist, können keine piezoelektrische Kristalle bilden. -Auf Abbildung \ref{fig:punktgruppen:atomPiezo} ist bewusst \subref{fig:punktgruppen:atoms-piezo} ein nicht punktsymmetrischer Kristall mit einem punktsymmetrischen \subref{fig:punktgruppen:atoms-grid} verglichen worden. +In Abbildung \ref{fig:punktgruppen:atomPiezo} ist bewusst \subref{fig:punktgruppen:atoms-piezo} ein nicht punktsymmetrischer Kristall mit einem punktsymmetrischen \subref{fig:punktgruppen:atoms-grid} verglichen worden. Als vereinfachte Erklärung kann man sich wieder das Bild eines Kristalles wie \subref{fig:punktgruppen:atoms-piezo} vor Augen führen, welcher unter Druck auf der einen Seite negative und der anderen Seite positive Ionen an seine Oberfläche verdrängt. Spiegelt man nun den Kristall um den Gitterpunkt in der Mitte des Kristalles, so würden die negativen Ionen auf den positiven auf der anderen Seite landen, was der Definition einer Symmetrie deutlich widerspricht. @@ -69,9 +75,11 @@ Spiegelt man nun den Kristall um den Gitterpunkt in der Mitte des Kristalles, so Piezoelektrizität hat durchaus Nutzen im Alltag. Feuerzeuge welche nicht auf dem Prinzip beruhen einen Zündstein abzuschleifen, sondern ohne Verschleiss auf Knopfdruck einen Zündfunken erzeugen, basieren auf dem Prinzip der Piezoelektrizität. +\index{Feuerzeug}% Drückt der Nutzende auf den Zündknopf, spannt sich eine Feder bis zu einer konfigurierten Spannung. Drückt der Nutzende stärker zu, entspannt sich die Feder schlagartig und beschleunigt mit der gespeicherten Energie ein Hammer, welcher auf das Piezoelement aufschlägt. Der augenblicklich hohe Druck sorgt an den Piezokontakten für eine eben so kurze aber hohe elektrische Spannung. Die Spannung reicht aus, um eine Funkenstrecke zu überwinden und so eine entflammbares Gas zu entzünden. + Sollte der Leser eines Tages in die Situation geraten, in welcher er zwei verschiedene Kristalle vor sich hat und ein piezoelektrisches Feuerzeug bauen musst, wobei bekannt ist, dass der eine eine Punktsymmetrie aufweist, empfiehlt es sich, sich mit dem anderen zu versuchen. diff --git a/buch/papers/punktgruppen/symmetry.tex b/buch/papers/punktgruppen/symmetry.tex index 4a8d911..ec06046 100644 --- a/buch/papers/punktgruppen/symmetry.tex +++ b/buch/papers/punktgruppen/symmetry.tex @@ -22,18 +22,23 @@ Wie wir jedoch später sehen werden, ist das Konzept der Symmetrie eigentlich vi In Abbildung \ref{fig:punktgruppen:geometry-example} haben wir einige Formen, die offensichtlich symmetrisch sind. Zum Beispiel hat das Quadrat eine Gerade, an der es gespiegelt werden kann, ohne sein Aussehen zu verändern. Regelmässige Polygone mit \(n\) Seiten sind auch gute Beispiele, um eine diskrete Rotationssymmetrie zu veranschaulichen, was bedeutet, dass eine Drehung um einen Punkt um einen bestimmten Winkel \(360^\circ/n\) die Figur unverändert lässt. -Das letzte Beispiel auf der rechts ist eine unendliche Rotationssymmetrie. Sie wird so genannt, weil es unendlich viele Werte für den Drehwinkel \(\alpha \in \mathbb{R}\) gibt, die die Form unverändert lassen. +Das letzte Beispiel in Abbildung~\ref{fig:punktgruppen:geometry-example} rechts ist eine unendliche Rotationssymmetrie. Sie wird so genannt, weil es unendlich viele Werte für den Drehwinkel \(\alpha \in \mathbb{R}\) gibt, die die Form unverändert lassen. + Ein Objekt kann mehr als nur eine Symmetrie aufweisen. Zum Beispiel kann das Quadrat in Abbildung \ref{fig:punktgruppen:geometry-example} nicht nur um \(\sigma\) sondern auch diagonal gespiegelt werden oder um \(90^\circ\) gedreht werden. Fasst man die möglichen Symmetrien zusammen, entsteht eine Symmetriegruppe. \begin{definition}[Symmetriegruppe] +\index{Symmetriegruppe}% Seien \(g\) und \(h\) umkehrbare Operationen, sogenannte Symmetrieoperationen, die ein mathematisches Objekt unverändert lassen. Die Komposition \(h\circ g\) definieren wir als die Anwendung der Operationen nacheinander. Alle möglichen Symmetrieoperationen bilden unter Komposition eine Gruppe, die Symmetriegruppe genannt wird. +\index{Komposition}% \end{definition} Eine Gruppe benötigt ausserdem auch zwingend ein neutrales Element, welches wir mit \(\mathds{1}\) bezeichnen. +\index{neutrales Element}% +\index{1@$\mathds{1}$}% Die Anwendung der neutralen Operation ist gleichbedeutend damit, alles unverändert zu lassen. Weiterhin muss in einer Gruppe für jede Operation \(g\) auch eine inverse Operation \(g^{-1}\) vorkommen, die rückgängig macht, was \(g\) getan hat. Somit ist \(\mathds{1}\) auch äquivalent dazu, eine Operation und dann ihre Inverse anzuwenden. @@ -41,11 +46,16 @@ Somit ist \(\mathds{1}\) auch äquivalent dazu, eine Operation und dann ihre Inv Das liegt daran, dass in manchen Fällen die Zusammensetzung algebraisch durch eine Multiplikation berechnet wird. Die Verwendung einer multiplikativen Schreibweise ermöglicht es, einige Ausdrücke kompakter zu schreiben, z.B. durch Verwendung von Potenzen \(r^n = r\circ r \circ \cdots r\circ r\) für eine wiederholte Komposition. +\index{Potenzen von Symmetrieoperationen}% +\index{wiederholte Komposition}% \begin{definition}[Zyklische Untergruppe, Erzeuger] +\index{zyklische Gruppe}% +\index{Erzeuger}% Sei \(g\) ein Element einer Symmetriegruppe \(G\). Alle möglichen Kompositionen von \(g\) und \(g^{-1}\) bilden eine sogenannte zyklische Untergruppe von \(G\), wobei \(g\) Erzeuger der Untergruppe genannt wird. Die von \(g\) erzeugte Untergruppe \(\langle g \rangle = \{ g^k : k \in \mathbb{Z} \}\) wird mit spitzen Klammern bezeichnet. +\index{g@$\langle g\rangle$}% \end{definition} \begin{beispiel} Um die Syntax zu verstehen, betrachten wir eine durch \(a\) erzeugte Gruppe \(G = \langle a \rangle\). @@ -53,12 +63,14 @@ durch Verwendung von Potenzen \(r^n = r\circ r \circ \cdots r\circ r\) für eine \end{beispiel} \begin{beispiel} Als anschaulicheres Beispiel können wir eine zyklische Untergruppe des \(n\)-Gon formalisieren. +\index{n-Gon@$n$-Gon}% Wir bezeichnen mit \(r\) eine Drehung im Gegenuhrzeigersinn von \(360^\circ/n\) um einen Punkt. Diese Definition reicht aus, um die gesamte Symmetriegruppe \[ C_n = \langle r \rangle = \{\mathds{1}, r, r^2, \ldots, r^{n-1}\} \] +\index{Cn@$C_n$}% der Drehungen eines \(n\)-Gons zu erzeugen. Das liegt daran, dass wir durch die mehrfache Verwendung von \(r\) jeden Winkel erzeugen k\"onnen, der die Rotationssymmetrie bewahrt. In ähnlicher Weise, aber weniger interessant, enthält die Reflexionssymmetriegruppe \(\langle\sigma\rangle\) nur \(\left\{\mathds{1}, \sigma\right\}\), weil \(\sigma^2 = \mathds{1}\). @@ -104,14 +116,17 @@ Die anschliessende Frage ist dann, ob wir bereits mathematische Objekte haben, m Die Antwort lautet natürlich ja. Um es formaler zu beschreiben, werden wir einige Begriffe einführen. \begin{definition}[Gruppenhomomorphismus] +\index{Gruppenhomomorphismus}% \(G\) und \(H\) seien Gruppen mit unterschiedlichen Operationen \(\diamond\) bzw. \(\star\). Ein Homomorphismus\footnote{ Für eine ausführlichere Diskussion siehe \S\ref{buch:grundlagen:subsection:gruppen} im Buch.} ist eine Funktion \(f: G \to H\), so dass für jedes \(a, b \in G\) gilt \(f(a\diamond b) = f(a) \star f(b)\). +\index{Homomorphismus}% Man sagt, dass der Homomorphismus \(f\) \(G\) in \(H\) transformiert. \end{definition} \begin{beispiel} Die Rotationssymmetrie des Kreises \(C_\infty\), mit einem unendlichen Kontinuum von Werten \(\alpha \in \mathbb{R}\), entspricht genau dem komplexen Einheitskreis. - Der Homomorphismus \(\phi: C_\infty \to \mathbb{C}\) ist durch die Eulersche Formel \(\phi(r) = e^{i\alpha}\) gegeben. +\index{Cunendlich@$C_{\infty}$}% + Der Homomorphismus \(\varphi: C_\infty \to \mathbb{C}\) ist durch die Eulersche Formel \(\varphi(r) = e^{i\alpha}\) gegeben. \end{beispiel} \begin{definition}[Darstellung einer Gruppe] @@ -131,7 +146,7 @@ Um es formaler zu beschreiben, werden wir einige Begriffe einführen. \sin(2\pi k/n) & \cos(2\pi k/n) \end{pmatrix} \] - definierte Funktion von \(C_n\) nach \(O(2)\) ist eine Darstellung von \(C_n\). + definierte Funktion von \(C_n\) nach \(\operatorname{O}(2)\) ist eine Darstellung von \(C_n\). In diesem Fall ist die erste Gruppenoperation die Komposition und die zweite die Matrixmultiplikation. Man kann überprüfen, dass \(\Phi(r^2 \circ r) = \Phi(r^2)\Phi(r)\). \end{beispiel} diff --git a/buch/papers/reedsolomon/anwendungen.tex b/buch/papers/reedsolomon/anwendungen.tex index b9b1d69..9bb1d99 100644 --- a/buch/papers/reedsolomon/anwendungen.tex +++ b/buch/papers/reedsolomon/anwendungen.tex @@ -10,24 +10,31 @@ In den vorherigen Abschnitten haben wir betrachtet, wie Reed-Solomon-Codes in der Theorie funktionieren. In diesem Abschnitt werden wir einige Anwendungen vorstellen, bei denen ein Reed-Solomon-Code zum Einsatz kommt. -Dabei teilen all diese Anwendungen das gleiche Problem: Die Daten können nur durch einen (höchst Wahrscheinlichen) fehlerbehafteten Kanal empfangen werden. Es gibt keine andere Methode, an diese Daten zu kommen, als über diesen Kanal. +All diese Anwendungen teilen das gleiche Problem: Die Daten können nur durch einen höchstwahrscheinlich fehlerbehafteten Kanal empfangen werden. Es gibt keine andere Methode, an diese Daten zu kommen, als über diesen Kanal. In der Netzwerktechnik zum Beispiel ist es üblich, dass bei Paketverluste oder beschädigt empfangene Datenpaketen diese einfach noch einmal innert wenigen Millisekunden angefordert werden können. +\index{Paketverluste}% In der Raumfahrt ist dies nicht möglich, da aufgrund der beschränkten Speichermöglichkeit die gesammelten Daten so rasch wie möglich zur Erde gesendet werden. +\index{Raumfahrt}% Diese Daten wiederum brauchen aufgrund der grossen Distanz Stunden bis die Daten beim Empfänger ankommen. -Fehlerhafte Daten kann also auf Grund der Zeitverzögerung nicht mehr angefordert werden. +Fehlerhafte Daten können also auf Grund der Zeitverzögerung nicht mehr angefordert werden. Bei CDs oder DVDs gibt es zwar kein zeitliches Problem, jedoch erschweren Kratzer, Verschmutzungen oder Produktionsfehler das Lesen einer solchen Disk. -Da vor allem Produktionsfehler und Kratzer irreversibel sind und die Disk nicht nach jedem Kratzer ersetzt werden muss, so wird die korrekte Ausgabe der gespeicherten Information durch die Fehlerkorrektur sichergestellt. +\index{CD}% +\index{Compact-Disc}% +\index{DVD}% +\index{Digital Video Disk}% +Da vor allem Produktionsfehler und Kratzer irreversibel sind und die Disk nicht nach jedem Kratzer ersetzt werden, wird die korrekte Ausgabe der gespeicherten Information durch die Fehlerkorrektur sichergestellt. Einen ähnlichen Ansatz verfolgen QR-Codes, wobei die Information auch dann noch gelesen werden kann wenn der Code nicht mehr vollständig vorhanden ist. +\index{QR-Code}% %Wie man sieht, eignen sich Reed-Solomon-Codes vor allem für Anwendungen, bei der die Informationen nicht auf einen Anderen Weg beschafft werden kann. % % %, bei denen die Wahrscheinlichkeit hoch ist, dass während der Übertragung % -%Es ist deshalb umso wichtiger die Daten Codiert zu lesen um so gleich die Lesefehler zu korrigieren. +%Es ist deshalb umso wichtiger die Daten codiert zu lesen um so gleich die Lesefehler zu korrigieren. % % da aufgrund der grossen Distanz Stunden vergehen können bis gesendete Daten auf der Erde empfangen werden kann. % @@ -68,15 +75,36 @@ Um die Fähigkeit eines verwendeten Reed-Solomon-Codes zu beschreiben verwendet % %In den letzten abschnitten haben wir uns ausführlich die Funktionsweise des Reed-Solomon-Codes angeschaut. In diesem Abschnitt möchten wir dem Leser ein paar bekannte beispiele vorstellen, in denen Reed-Solomon-Codes zum einsatz kommen. Es sei jedoch angemerkt, dass diese Anwendungen in der Umsetzung oft ein wenig anderst funktionieren als hier vorgestellt. Dies wurde vor allem wegen technischen optimierungen realisiert. (technische tricks und finessen), von der logik jedoch sehr stark an unserem Beispiel orientieren +\begin{figure} + \centering + \includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/Voyager_Sonde} + \caption{Mit einer Entfernung von über 22.8 Milliarden Kilometer ist die Voyager 1 Raumsonde das am weitesten entfernte, von Menschen erschaffene Objekt. Obwohl ihre Schwestersonde Voyager 2 zuerst ins All gestartet wurde befindet Sie sich ``nur'' 19 Milliarden Kilometer weit weg von der Erde. Aufgrund abnehmender Batterieleistung werden die beiden Sonden ihre wissenschaftlichen Aktivitäten etwa 2025 einstellen, bleiben aber bis in die 2030er mit uns in Kontakt.} +\index{Voyager 1 und 2}% + \label{fig:voyager} +\end{figure} + \subsection{Raumfahrt} Obwohl Reed-Solomon-Codes bereits in den 1960er entwickelt wurden fanden sie erstmals Anwendung in der Voyager Raumsonde der NASA. Die Daten der zwei im Jahre 1977 gestarteten Sonden (siehe Abbildung \ref{fig:voyager}) werden mit einem ($255$,$233$)-Code -Codiert. +\index{Voyager Raumsonde}% +\index{NASA}% +codiert. Der Nachrichtenblock hat somit eine Länge von $255$ Zahlen, wovon $233$ als Nutzlast zur Verfügung stehen. Damit ist es möglich bis zu $11$ Fehler im Nachrichtenblock zu korrigieren. -Der Codierte Nachrichtenblock wird in kleinere Blöcke aufgeteilt, mit einem Faltungscode erneut Codiert und anschliessend gesendet. +Der codierte Nachrichtenblock wird in kleinere Blöcke aufgeteilt, mit einem Faltungscode erneut codiert und anschliessend gesendet. Ein Faltungscode ist wie ein Reed-Solomon-Code in der Lage Fehler zu korrigieren, -Codiert seine Information aber auf eine andere weise. Aus jedem unterteilten Block wird vor dem Versenden ein Paritätsbit erzeugt und dem Block angehängt. Anhand diesem Paritätsbit überprüft der Empfänger, ob bei der Übertragung der Block beschädigt wurde. Ist dies der Fall, wird der Block bei der Decodierung nicht beachtet. Diese so entstandenen ``Lücken'' im Datenstrom werden wiederum vom Reed-Solomon-Code korrigiert. Dieses Zusammenspiel beider Codes garantiert so eine hohe Robustheit gegenüber Übertragungsfeher. +codiert seine Information aber auf eine andere Weise. Aus jedem unterteilten Block wird vor dem Versenden ein Paritätsbit erzeugt und dem Block angehängt. Anhand dieses Paritätsbits überprüft der Empfänger, ob bei der Übertragung der Block beschädigt wurde. Ist dies der Fall, wird der Block bei der Decodierung nicht beachtet. Diese so entstandenen ``Lücken'' im Datenstrom werden wiederum vom Reed-Solomon-Code korrigiert. Dieses Zusammenspiel beider Codes garantiert so eine hohe Robustheit gegenüber Übertragungsfehler. +\begin{figure} + \centering + \subfigure[]{ + \includegraphics[width=0.45\textwidth]{papers/reedsolomon/images/Compact_Disc} + } + \subfigure[]{ + \includegraphics[width=0.45\textwidth]{papers/reedsolomon/images/Compact_Disc_zoomed_in} + } + \caption{CDs kamen 1982 auf den Markt. Sie funktioniert durch das Einpressen oder Einbrennen von Punkten und Strichen, die die Daten repräsentieren. Gelesen werden diese wiederum durch die Reflektion eines Lasers an diesen Punkten und Strichen.} + \label{fig:cd} +\end{figure} % % Funktioniert aber nach einem ganz anderen Prinzip. % @@ -92,16 +120,12 @@ Codiert seine Information aber auf eine andere weise. Aus jedem unterteilten Blo % %mit der Erde mit einem RS(255,233)-Code für die digitalen Bilder sowie einem konventionellen Faltungscode. -\begin{figure} - \centering - \includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/Voyager_Sonde} - \caption{Mit einer Entfernung von über 22.8 Milliarden Kilometer ist die Voyager 1 Raumsonde das am weitesten entfernte, von Menschen erschaffene Objekt. Obwohl ihre Schwestersonde Voyager 2 zuerst ins All gestartet wurde befindet Sie sich ``nur'' 19 Milliarden Kilometer weit weg von der Erde. Aufgrund abnehmender Batterieleistung werden die beiden Sonden ihre wissenschaftlichen Aktivitäten etwa 2025 einstellen, bleiben aber bis in die 2030er mit uns in Kontakt.} - \label{fig:voyager} -\end{figure} \subsection{CD/DVD} Compact discs verwenden sogar zwei ineinander verschachtelte Reed-Solomon-Codes, einen (32,28)-Code und einen (28,24)-Code. -Beide Codes sind in der Lage, Fehler aus dem jeweils anderen gelesenen Block zu korrigieren. Dieses spezielle Zusammenspielen dieser beiden Codes werden auch Cross-interleaved Reed-Solomon-Codes (CIRC) genannt. +Beide Codes sind in der Lage, Fehler aus dem jeweils anderen gelesenen Block zu korrigieren. Dieses spezielle Zusammenspielen dieser beiden Codes wird auch Cross-interleaved Reed-Solomon-Code (CIRC) genannt. +\index{CIRC}% +\index{Cross-interleaved Reed-Solomon code}% Diese Vorgehensweise erzielt eine hohe Robustheit gegenüber Produktionsfehlern oder Verschmutzung auf der Disc. Bei CDs sind diese in der Lage, bis zu 4000 fehlerhafte Bits am Stück (ca. $2.5mm$) zu erkennen und zu korrigieren. Die Digital Video Disc funktioniert nach dem selben Konzept mit grösseren Codeblöcken. Die DVD verwendet einen (208,192)-Code und einen (182,172)-Code. @@ -112,28 +136,6 @@ Die Digital Video Disc funktioniert nach dem selben Konzept mit grösseren Codeb \begin{figure} \centering \subfigure[]{ - \includegraphics[width=0.45\textwidth]{papers/reedsolomon/images/Compact_Disc} - } - \subfigure[]{ - \includegraphics[width=0.45\textwidth]{papers/reedsolomon/images/Compact_Disc_zoomed_in} - } - \caption{CDs kamen 1982 auf den Markt. Sie funktioniert durch das Einpressen oder Einbrennen von Punkten und Strichen, die die Daten repräsentieren. Gelesen werden diese wiederum durch die Reflektion eines Lasers an diesen Punkten und Strichen.} - \label{fig:cd} -\end{figure} - -\subsection{QR-Codes} -Quick Response Codes oder auch QR-Codes funktionieren nach einem sehr ähnlichen Prinzip wie in unserem Beispiel der Abschnitte \ref{reedsolomon:section:codebsp} - \ref{reedsolomon:section:rekonstruktion} nur das QR-Codes in einem $\mathbb{F}_{256}$ Körper arbeiten. Die physische Grösse eines Codes ist stark abhängig von der Menge an codierten Daten sowie dem verwendeten Fehlerkorrektur-Level. Es ist so auf dem ersten Blick nicht ersichtlich, wie viel Nutzinformationen ein Qr-Code enthält. Die QR-Codes in Abbildung \ref{fig:qr} zeigen jeweils die Gleiche Information mit unterschiedlichem Fehlerkorrektur-Level. Codes mit einem höheren Korrektur-Level können auch für Designer-Codes Zweckentfremdet werden. Dabei wird z.B. das Firmenlogo oder einen Schriftzug über den Qr-Code gelegt, ohne das die Funktion des Codes beeinträchtigt wird. Ein Beispiel dazu ist unter Abbildung \ref{fig:designqr} zu finden. - -% - -%So kann auf den ersten Blick nicht -% -% -% funktionieren nach einem sehr ähnlichen Prinzip wie in unserem Beispiel, nur dass QR-Codes in einem $\mathbb{F}_{256}$ Körper arbeiten. Je nach grösse der Codierung ist der QR-Code im Endeffekt robuster gegen Beschädigungen. Bei Low Level Codes können 7\% der Daten Wiederhergestellt werden, beim High Level Code sind das sogar 30\%. - -\begin{figure} - \centering - \subfigure[]{ \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/qrcode_h} } \subfigure[]{ @@ -145,7 +147,7 @@ Quick Response Codes oder auch QR-Codes funktionieren nach einem sehr ähnlichen % \subfigure[]{ % \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/designer_qrcode} % } - \caption{Anhand der grösse würde man darauf schliessen, dass bei (a) mehr Informationen Codiert sind als bei (b). Tatsächlich aber beinhalten beide Codes die gleiche Information. Das liegt daran, da die Fehlerkorrekturfähigkeit von QR-Codes sich in insgesamt vier Levels aufteilen lassen. Der höchste Fehlerkorrektur-Level, der bei (a) angewendet wurde, ist in der Lage, bis zu 30\% der Daten wiederherzustellen. Der kleinste Level schafft etwa 7\%, der in (b) veranschaulicht wird. Da die Grösse also nichts über die Menge an Daten aussagt, könnte es sich bei (a) auch um einen Code mit viel Nutzdaten und kleinem Fehlerkorrektur-Level handeln. Der Unterschied ist von Auge nicht sichtbar.} + \caption{Anhand der grösse würde man darauf schliessen, dass bei (a) mehr Informationen codiert sind als bei (b). Tatsächlich aber beinhalten beide Codes die gleiche Information. Das liegt daran, da die Fehlerkorrekturfähigkeit von QR-Codes sich in insgesamt vier Levels aufteilen lassen. Der höchste Fehlerkorrektur-Level, der bei (a) angewendet wurde, ist in der Lage, bis zu 30\% der Daten wiederherzustellen. Der kleinste Level schafft etwa 7\%, der in (b) veranschaulicht wird. Da die Grösse also nichts über die Menge an Daten aussagt, könnte es sich bei (a) auch um einen Code mit viel Nutzdaten und kleinem Fehlerkorrektur-Level handeln. Der Unterschied ist von Auge nicht sichtbar.} \label{fig:qr} \end{figure} @@ -165,4 +167,22 @@ Quick Response Codes oder auch QR-Codes funktionieren nach einem sehr ähnlichen } \caption{Während (a) noch einen unveränderten QR-Code repräsentiert, handelt es sich bei (b) nun um einen Designer-QR-Code. Beide Codes verfügen über einen mittleren Fehlerkorrektur-Level von theoretisch 15\%. Da bei (b) jetzt einen Teil des Codes durch ein Logo verdeckt wird, schränkt sich die Fehlerkorrekturfähigkeit je nach Grösse des verdeckten Teils mehr oder weniger stark ein. Unser Designer-Code in (b) ist nur noch in der Lage etwa 9\% des Codes zu rekonstruieren.} \label{fig:designqr} -\end{figure}
\ No newline at end of file +\end{figure} + +\subsection{QR-Codes} +\index{QR-Code}% +Quick Response Codes oder auch QR-Codes funktionieren nach einem sehr ähnlichen Prinzip wie in unserem Beispiel der Abschnitte \ref{reedsolomon:section:codebsp} - \ref{reedsolomon:section:rekonstruktion} nur das QR-Codes in einem $\mathbb{F}_{256}$ Körper arbeiten. +Die physische Grösse eines Codes ist stark abhängig von der Menge an codierten Daten sowie dem verwendeten Fehlerkorrektur-Level. +Es ist so auf dem ersten Blick nicht ersichtlich, wie viel Nutzinformationen ein QR-Code enthält. +Die QR-Codes in Abbildung \ref{fig:qr} zeigen jeweils die gleiche Information mit unterschiedlichem Fehlerkorrektur-Level. +Codes mit einem höheren Korrektur-Level können auch für Designer-Codes zweckentfremdet werden. +\index{Designed-QR-Code}% +Dabei wird z.~B.~das Firmenlogo oder einen Schriftzug über den QR-Code gelegt, ohne das die Funktion des Codes beeinträchtigt wird. Ein Beispiel dazu ist in Abbildung \ref{fig:designqr} zu finden. + +% + +%So kann auf den ersten Blick nicht +% +% +% funktionieren nach einem sehr ähnlichen Prinzip wie in unserem Beispiel, nur dass QR-Codes in einem $\mathbb{F}_{256}$ Körper arbeiten. Je nach grösse der Codierung ist der QR-Code im Endeffekt robuster gegen Beschädigungen. Bei Low Level Codes können 7\% der Daten Wiederhergestellt werden, beim High Level Code sind das sogar 30\%. + diff --git a/buch/papers/reedsolomon/codebsp.tex b/buch/papers/reedsolomon/codebsp.tex index eb4e82f..02484e0 100644 --- a/buch/papers/reedsolomon/codebsp.tex +++ b/buch/papers/reedsolomon/codebsp.tex @@ -26,7 +26,7 @@ Der Nachrichtenblock im Beispiel besteht aus \[ n = q - 1 = 10 \text{ Zahlen}, \] -wobei die null weggelassen wird. Wenn wir versuchen würden, mit der null zu codieren, so stellen wir fest, dass wir wieder null an der gleichen Stelle erhalten und somit wäre die Codierung nicht eindeutig. +wobei die Null weggelassen wird. Wenn wir versuchen würden, mit der Null zu codieren, so stellen wir fest, dass wir wieder Null an der gleichen Stelle erhalten und somit wäre die Codierung nicht eindeutig. % Notes %Da bei allen Codes, die codiert werden wird an der gleichen Stelle eine Nullstelle auftreten. @@ -51,7 +51,7 @@ k = n - 2t = 6\text{ Zahlen} \] übertragen. -Zusammenfassend haben wir einen Nachrichtenblock mit der Länge von 10 Zahlen definiert, der 6 Zahlen als Nutzlast beinhaltet und in der Lage ist, aus 2 fehlerhafte Stellen im Block die ursprünglichen Nutzdaten zu rekonstruieren. Zudem werden wir im weiteren feststellen, dass dieser Code maximal vier Fehlerstellen erkennen, diese aber nicht rekonstruieren kann. +Zusammenfassend haben wir einen Nachrichtenblock mit der Länge von 10 Zahlen definiert, der 6 Zahlen als Nutzlast beinhaltet und in der Lage ist, aus 2 fehlerhafte Stellen im Block die ursprünglichen Nutzdaten zu rekonstruieren. Zudem werden wir im Weiteren feststellen, dass dieser Code maximal vier Fehlerstellen erkennen, diese aber nicht rekonstruieren kann. Wir legen nun für das Beispiel die Nachricht \[ @@ -76,7 +76,7 @@ dar. \subsection{Der Ansatz der diskreten Fouriertransformation \label{reedsolomon:subsection:diskFT}} -Im vorherigen Abschnitt \ref{reedsolomon:section:dtf} haben wir schon einmal die diskrete Fouriertransformation zum Codieren einer Nachricht verwendet. In den endlichen Körpern wird dies jedoch nicht gelingen, da die Eulerische Zahl $e$ in endlichen Körpern nicht existiert. +Im vorherigen Abschnitt \ref{reedsolomon:section:dtf} haben wir schon einmal die diskrete Fouriertransformation zum Codieren einer Nachricht verwendet. In den endlichen Körpern wird dies jedoch nicht gelingen, da die Eulersche Zahl $e$ in endlichen Körpern nicht existiert. Wir wählen deshalb eine Zahl $a$, die die gleichen Aufgaben haben soll wie $e^{\frac{j}{2 \pi}}$ in der diskreten Fouriertransformation, nur mit dem Unterschied, dass $a$ in $\mathbb{F}_{11}$ ist. Dazu soll die Potenz von $a$ den gesamten Zahlenbereich von $\mathbb{F}_{11}$ abdecken. Dazu ändern wir die Darstellung von \[ @@ -115,7 +115,8 @@ in die von $a$ abhängige Schreibweise \subsubsection{Die primitiven Einheitswurzeln \label{reedsolomon:subsection:primsqrt}} - +\index{primitive Einheitswurzel}% +\index{Einheitswurzel, primitiv}% Wenn wir jetzt Zahlen von $\mathbb{F}_{11}$ an Stelle von $a$ einsetzen, erhalten wir \begin{center} \begin{tabular}{c c c c c c c} @@ -151,6 +152,7 @@ Wenden wir diese Vorgehensweise auch für andere endliche Körper an, so werden \subsubsection{Bildung einer Transformationsmatrix \label{reedsolomon:subsection:transMat}} +\index{Transformationsmatrix}% Mit der Wahl einer Einheitswurzel ist es uns jetzt möglich, unsere Nachricht zu Codieren. Daraus sollen wir dann einen Übertragungsvektor $v$ erhalten, den wir an den Empfänger schicken können. Für die Codierung setzen wir alle Zahlen in $\mathbb{F}_{11}\setminus\{0\}$ nacheinander in $m(X)$ ein. Da wir zuvor eine von $a$ abhängige Schreibweise gewählt haben setzen wir stattdessen $a^i$ ein mit $a = 8$ als die von uns gewählten primitiven Einheitswurzel. Daraus ergibt sich @@ -167,6 +169,7 @@ Für die Codierung setzen wir alle Zahlen in $\mathbb{F}_{11}\setminus\{0\}$ nac \end{tabular} \end{center} als unser Übertragungsvektor. +\index{Ubertragungsvektor@Übertragungsvektor}% \subsection{Allgemeine Codierung \label{reedsolomon:subsection:algCod}} @@ -197,3 +200,4 @@ Für unseren Übertragungsvektor resultiert v = [5,3,6,5,2,10,2,7,10,4], \] den wir jetzt über einen beliebigen Nachrichtenkanal versenden können. +\index{Nachrichtenkanal}% diff --git a/buch/papers/reedsolomon/decmitfehler.tex b/buch/papers/reedsolomon/decmitfehler.tex index 598cf68..97694ae 100644 --- a/buch/papers/reedsolomon/decmitfehler.tex +++ b/buch/papers/reedsolomon/decmitfehler.tex @@ -11,7 +11,7 @@ In der realen Welt müssen wir uns jedoch damit abfinden, dass kein Übertragung Genau für dieses Problem wurden Fehler korrigierende Codes, wie der Reed-Solomon-Code, entwickelt. In diesem Abschnitt betrachten wir somit die Idee der Fehlerkorrektur und wie wir diese auf unser Beispiel anwenden können. -Der Übertragungskanal im Beispiel weisst jetzt den Fehlervektor +Der Übertragungskanal im Beispiel weist jetzt den Fehlervektor \[ u = [0, 0, 0, 3, 0, 0, 0, 0, 2, 0] \] @@ -76,16 +76,18 @@ als neuen, fehlerbehafteten Übertragungsvektor $w$ auf der Empfängerseite. Als Empfänger wissen wir jedoch nicht, dass der erhaltene Übertragungsvektor jetzt fehlerbehaftet ist und werden dementsprechend den Ansatz aus Abschnitt \ref{reedsolomon:section:decohnefehler} anwenden. Wir stellen jedoch recht schnell fest, dass am decodierten Nachrichtenblock \[ -r = [\underbrace{5,7,4,10,}_{\text{Syndrom}}5,4,5,7,6,7] +r = [\underbrace{5,7,4,10,}_{\displaystyle\text{Syndrom}}5,4,5,7,6,7] \] etwas nicht in Ordnung ist, denn die vorderen vier Fehlerkorrekturstellen haben nicht mehr den Wert null. -Der Nachrichtenblock weisst jetzt ein \em Syndrom \em auf, welches anzeigt, dass der Übertragungsvektor fehlerhaft empfangen wurde. +Der Nachrichtenblock weisst jetzt ein {\em Syndrom} auf, welches anzeigt, dass der Übertragungsvektor fehlerhaft empfangen wurde. +\index{Syndrom}% % Old Text %Wenn wir den Übertragungsvektor jetzt Rücktransformieren wie im vorherigen Kapitel erhalten wir %\[ %r = [\underbrace{5,7,4,10,}_{Fehlerinfo}5,4,5,7,6,7]. %\] Jetzt stellt sich natürlich die Frage, wie wir daraus den ursprünglich gesendeten Nachrichtenvektor zurückerhalten sollen. Laut der Definition über die Funktionsweise eines Reed-Solomon-Codes können wir aus den Fehlerkorrekturstellen ein ``Lokatorpolynom'' berechnen, welches die Information enthält, welche Stellen innerhalb des empfangenen Übertragungsvektors fehlerhaft sind. +\index{Lokatorpolynom}% \subsection{Das Fehlerstellenpolynom $d(X)$ \label{reedsolomon:subsection:fehlerpolynom}} @@ -101,9 +103,11 @@ In einem ersten Versuch berechnen wir die Differenz $d$ des empfangenen und dem $d(X)$ & $=$ & $r(X) - m(X)$ \end{tabular} \end{center} -und nennen $d(X)$ als unseres Fehlerstellenpolynom. Dieses Polynom soll uns sagen, welche Stellen korrekt und welche fehlerhaft sind. +und nennen $d(X)$ unser {\em Fehlerstellenpolynom}. +\index{Fehlerstellenpolynom}% +Dieses Polynom soll uns sagen, welche Stellen korrekt und welche fehlerhaft sind. -Durch das verwenden von $m(X)$ stossen wir auf weitere Probleme, da wir den Nachrichtenvektor auf der Empfängerseite nicht kennen (unser Ziel ist es ja genau diesen zu finden). Dieses Problem betrachten wir im Abschnitt \ref{reedsolomon:subsection:nachrichtenvektor} genauer. Um die Überlegungen in den folgenden Abschnitten besser zu verstehen sei $m(X)$ bekannt auf der Empfängerseite. +Durch das Verwenden von $m(X)$ stossen wir auf weitere Probleme, da wir den Nachrichtenvektor auf der Empfängerseite nicht kennen (unser Ziel ist es ja genau diesen zu finden). Dieses Problem betrachten wir im Abschnitt \ref{reedsolomon:subsection:nachrichtenvektor} genauer. Um die Überlegungen in den folgenden Abschnitten besser zu verstehen sei $m(X)$ bekannt auf der Empfängerseite. %Dies wird uns zwar andere sorgen wegen $m(X)$ bereiten, wir werden werden deshalb erst in Abschnitt \ref{reedsolomon:subsection:nachrichtenvektor} darauf zurückkommen. @@ -127,18 +131,19 @@ Setzen wir jetzt unsere Einheitswurzel aus dem Beispiel ein so erhalten wir \end{tabular} \end{center} und damit die Information, dass allen Stellen, die nicht Null sind, Fehler enthalten. -Aus der Tabelle lesen wir ab, das in unserem Beispiel die Fehler an der Stelle drei und acht zu finden sind. +Aus der Tabelle lesen wir ab, das in unserem Beispiel die Fehler an der Stelle $3$ und $8$ zu finden sind. Für das einfache Bestimmen von Hand mag dies ja noch ausreichen, jedoch können wir mit diesen Stellen nicht das Lokatorpolynom bestimmen, denn dafür bräuchten wir alle Nullstellen, an denen es Fehler gegeben hat (also sozusagen genau das umgekehrte). Um dies zu erreichen wenden wir eine andere Herangehensweise und nehmen uns den Satz von Fermat sowie den kleinsten gemeinsamen Teiler zur Hilfe. \subsection{Mit dem grössten gemeinsamen Teiler auf Nullstellenjagd \label{reedsolomon:subsection:ggT}} - +\index{ggT}% +\index{grösster gemeinsamer Teiler}% Zuerst betrachten wir den Satz von Fermat, dessen Funktionsweise wir in Abschnitt \ref{buch:section:galoiskoerper} kennengelernt haben. Der besagt, dass \[ f(X) = X^{q-1} -1 = 0 \] -gilt für jedes $X$. Setzen wir das $q$ von unserem Beispiel ein +gilt für jedes $X$. Setzen wir das $q$ von unserem Beispiel ein, erhalten wir \[ f(X) = X^{10}-1 = 0 \qquad \text{für } X \in \{1,2,3,4,5,6,7,8,9,10\} \] @@ -165,7 +170,8 @@ Dies scheint zuerst nicht sehr hilfreich zu sein, da wir für das Lokatorpolynom \subsection{Mit dem kgV fehlerhafte Nullstellen finden \label{reedsolomon:subsection:kgV}} - +\index{kgV}% +\index{kleinstes gemeinsames Vielfaches}% Das kgV hat nämlich die Eigenschaft sämtliche Nullstellen zu finden, also nicht nur die fehlerhaften sondern auch die korrekten, was in \[ \operatorname{kgV}(f(X),d(X)) = (X-a^0)(X-a^1)(X-a^2)(X-a^3)(X-a^4)(X-a^5)(X-a^6)(X-a^7)(X-a^8)(X-a^9) \cdot q(X). @@ -181,7 +187,7 @@ Somit ist l(X) = (X-a^3)(X-a^8) \] unser gesuchtes Lokatorpolynom. -Es scheint so als müssten wir nur noch an den besagten Stellen den Übertragungsvektor korrigieren und wir währen fertig mit der Fehlerkorrektur. +Es scheint so als müssten wir nur noch an den besagten Stellen den Übertragungsvektor korrigieren und wir wären fertig mit der Fehlerkorrektur. Jedoch haben wir noch ein grundlegendes Problem, dass zu Beginn aufgetaucht ist, wir aber beiseite geschoben haben. Die Rede ist natürlich vom Nachrichtenvektor $m(X)$, mit dem wir in erster Linie das wichtige Fehlerstellenpolynom $d(X)$ berechnet haben, auf der Empfängerseite aber nicht kennen. \subsection{Der problematische Nachrichtenvektor $m(X)$ @@ -214,7 +220,7 @@ so zu berechnen, dass wir die wichtigen vier Stellen kennen, der Rest des Polyno \subsection{Die Berechnung der Fehlerstellen \label{reedsolomon:subsection:nachrichtenvektor}} - +\index{Fehlerstellen}% Um die Fehlerstellen zu berechnen wenden wir die gleiche Vorgehensweise wie zuvor an, also zuerst den ggT, danach berechnen wir das kgV um am Ende das Lokatorpolynom zu erhalten. \subsubsection{Schritt 1: ggT} @@ -309,11 +315,12 @@ l(X) = (X-a^i)(X-a^j). \] Also brauchen wir nur noch $i$ und $j$ zu berechnen und wir haben unsere gesuchten Fehlerstellen. Diese bekommen wir recht einfach mit -\begin{center} - $a^i = 5 \qquad \Rightarrow \qquad i = 3$ - - $a^j = 6 \qquad \Rightarrow \qquad j = 8$. -\end{center} +\begin{equation*} +\begin{aligned} + a^i &= 5 &&\Rightarrow & i &= 3\\ + a^j &= 6 &&\Rightarrow & j &= 8. +\end{aligned} +\end{equation*} Schlussendlich erhalten wir \[ d(X) = (X-a^3)(X-a^8) diff --git a/buch/papers/reedsolomon/decohnefehler.tex b/buch/papers/reedsolomon/decohnefehler.tex index 50bd8d6..2c755f9 100644 --- a/buch/papers/reedsolomon/decohnefehler.tex +++ b/buch/papers/reedsolomon/decohnefehler.tex @@ -33,7 +33,8 @@ Definiert ist sie als \[ F(\omega) = \int_{-\infty}^{\infty} f(t) \mathrm{e}^{-j\omega t} dt \qquad \Rightarrow \qquad \mathfrak{F}^{-1}(F(\omega)) = f(t) = \frac{1}{2 \pi} \int_{-\infty}^{\infty} F(\omega) \mathrm{e}^{j \omega t} d\omega. \] -Im wesentlichen ändert sich bei der inversen diskreten Fouriertransformation $e^{j/2\pi}$ zu $e^{-j/2\pi}$. Zusätzlich benötigt die inverse noch einen Korrekturfaktor $1/n$. Wir erwarten daher, dass wir auch im endlichen Körper $A$ die Zahl $a$ durch $a^{-1}$ ersetzen können. Mit der primitiven Einheitswurzel ergibt das +Im wesentlichen ändert sich bei der inversen diskreten Fouriertransformation $e^{j/2\pi}$ zu $e^{-j/2\pi}$. Zusätzlich benötigt die Inverse noch einen Korrekturfaktor $1/n$. Wir erwarten daher, dass wir auch im endlichen Körper $A$ die Zahl $a$ durch $a^{-1}$ ersetzen können. Mit der primitiven Einheitswurzel ergibt das +\index{Korrekturfaktor}% %Damit beschäftigen wir uns im Abschnitt \ref{reedsolomon:subsection:sfaktor} weiter, konkret suchen wir momentan aber eine Inverse für unsere primitive Einheitswurzel $a$. \[ 8^1 \qquad \rightarrow \qquad 8^{-1}. @@ -45,7 +46,7 @@ Mit einem solchen Problem haben wir uns bereits in Abschnitt \ref{buch:section:e \subsection{Inverse der primitiven Einheitswurzel \label{reedsolomon:subsection:invEinh}} - +\index{Inverse}% Die Funktionsweise des euklidischen Algorithmus ist im Abschnitt \ref{buch:section:euklid} ausführlich beschrieben. Für unsere Anwendung wählen wir die Parameter $a = 8$ und $b = 11$ ($\mathbb{F}_{11}$). Daraus erhalten wir @@ -169,7 +170,8 @@ als unseren Vorfaktor setzen müssen um, die Gleichung \ref{reedsolomon:equation \subsection{Allgemeine Decodierung \label{reedsolomon:subsection:algdec}} -Wir haben jetzt alles für eine erfolgreiche Rücktransformation vom empfangenen Nachrichtenvektor beisammen. Die allgemeine Gleichung für die Rücktransformation lautet +Wir haben jetzt alles für eine erfolgreiche Rücktransformation vom empfangenen Nachrichtenvektor beisammen. +Die allgemeine Gleichung für die Rücktransformation lautet \[ m = s \cdot A^{-1} \cdot v. \] @@ -201,10 +203,11 @@ m = 10 \cdot A^{-1} \cdot v \qquad \Rightarrow \qquad m = 10 \cdot \begin{pmatri \cdot \begin{pmatrix} 5 \\ 3 \\ 6 \\ 5 \\ 2 \\ 10 \\ 2 \\ 7 \\ 10 \\ 4 \\ -\end{pmatrix} +\end{pmatrix}, \] -und wir erhalten +erhalten wir \[ m = [0,0,0,0,4,7,2,5,8,1] \] -als unsere Nachricht zurück.
\ No newline at end of file +als unsere Nachricht zurück. + diff --git a/buch/papers/reedsolomon/dtf.tex b/buch/papers/reedsolomon/dtf.tex index 9647775..a50a134 100644 --- a/buch/papers/reedsolomon/dtf.tex +++ b/buch/papers/reedsolomon/dtf.tex @@ -1,26 +1,30 @@ % % dtf.tex -- Idee mit DFT % -\section{Übertragung mit Hilfe der diskrten Fourier-Transformation +\section{Übertragung mit Hilfe der diskreten Fourier-Transformation \label{reedsolomon:section:dtf}} -\rhead{Umwandlung mit DTF} +\rhead{Fehlerkorrektur mit diskreter Fourier-Transformation} Die Grundidee eines fehlerkorrigierenden Code ist, dass Informationen eines Datenpunktes durch die Codierung auf viele übertragene Werte verteilt werden. Die Decodierung ist in der Lage, den ursprünglichen Datenwert zu rekonstruieren, sogar wenn einzelne wenige übertragene Werte beschädigt worden sind. \par Die Fourier-Transformation transformiert einen einzelnen Wert, +\index{Fourier-Transformation}% eine Dirac-Funktion, auf ein Spektrum, welches sich über die ganze Frequenzachse erstreckt. +\index{Dirac-Funktion}% +\index{Spektrum}% Aus der Filtertheorie ist bekannt, dass der ursprüngliche Impuls mehr oder weniger rekonstruierbar ist, vorausgesetzt, es gehen nicht zu viele Frequenzen bei der Übertragung verloren. -\par +\index{Filtertheorie}% Es liegt daher nahe zu versuchen, die Fourier-Transformation für Codierung und Decodierung zu verwenden. -\subsection{Beispiel mit Fehlerkorrektur mit Fourier-Transformation +\subsection{Beispiel: Fehlerkorrektur mit Fourier-Transformation \label{reedsolomon:subsection:sendbsp}} Das folgende Beispiel soll zeigen, wie die Idee der Fehlerkorrektur umgesetzt wurde. Die Fehlererkennung des Reed-Solomon-Codes funktioniert nach einem sehr Ähnlichen Prinzip. +\index{Reed-Solomon-Code}% %Das folgende Beispiel soll zeigen, wie Fehlerkorrektur möglich ist. %Dieses auf eine Art, die der Funktionsweise des Reed-Solomon-Codes, @@ -45,8 +49,10 @@ In der folgenden Aufzählung werden diese einzelne Schritte erklärt und erläut \begin{enumerate}[(1)] \item Das Signal besteht aus 64 zufälligen, ganzzahligen Datenwerten zwischen 0 und 10. Für die Rekonstruktion werden zusätzliche Datenwerte benötigt, wir fügen deshalb 32 Werte hinzu. - Diese setzen wir willkürlich alle auf Null und nennen sie Fehlerkorrekturstellen. + Diese setzen wir willkürlich alle auf Null und nennen sie {\em Fehlerkorrekturstellen}. +\index{Fehlerkorrekturstellen}% Wir erhalten so einen erweiterten Signalvektor der Länge $N =96$. +\index{Signalvektor}% \item Mit der Fourier-Transformation wird der ganze Signalvektor codiert. Dadurch wird jede Informationseinheit auf alle Punkte des Spektrums verteilt. \item Wir dürfen annehmen, dass bei der Übertragung, nur einzelne übertragene @@ -58,11 +64,12 @@ In der folgenden Aufzählung werden diese einzelne Schritte erklärt und erläut Der Empfänger erkennt daher im allgemeinen nicht, ob und wo Übertragungsfehler aufgetreten sind. \item Ohne Übertragungsfehler kann der Signalvektor durch die inverse Fourier-Transformation vollständig wiederhergestellt werden. - Dazu gehören auch die Nullen an den Fehlerkorrekturstellen 64 - 96. + Dazu gehören auch die Nullen an den Fehlerkorrekturstellen 64--96. \par Sind Übertragungsfehler aufgetreten, werden an diesen Stellen die Werte von Null abweichen. Somit haben wir bereits Fehler erkannt. - \item Die Werte an den Fehlerkorrekturstellen 64 - 96, die nicht mehr Null sind, nennen wir das Syndrom. + \item Die Werte an den Fehlerkorrekturstellen 64--96, die nicht mehr Null sind, nennen wir das {\em Syndrom}. +\index{Syndrom}% Im Syndrom steckt nur Information über die Fehler, sie werden durch die inverse Fourier-Transformation erzeugt. \item Um die Fehler zu rekonstruieren, kann man versuchen, die Information im Syndrom mit Fourier-Transformation zu transformieren. Da das Syndrom nur ein Teil der Fehlerinformation ist, liefert die Fourier-Transformation eine Approximation der Fehler. @@ -70,7 +77,6 @@ In der folgenden Aufzählung werden diese einzelne Schritte erklärt und erläut \end{enumerate} Im Beispiel haben wir mit dem Syndrom nur etwa ein Drittel der Fehlerinformation, es ist daher zu erwarten, dass die Fehlerwerte auch nur ein Drittel so gross sind. -\par Damit können die Fehler korrigiert und die Originaldaten wiederhergestellt werden. Der Rekonstruktionsauftrag ist damit erfolgreich ausgeführt. @@ -116,9 +122,12 @@ Die Analogie geht aber noch weiter. \end{equation} für verschiedene \( w = e^{-\frac{2\pi j}{N} k}, k=1, \dots ,N-1\) übermittelt. Das Syndrom entstand durch die Wahl ${f_{64}}=0$ bis ${f}_{N-1}=0$ (graue Koeffizenten). -\par + Die Polynominterpolation und die Fourier-Transformation rechnen beide mit reellen Zahlen. -Wenn die Approximation nicht mehr genügend gut ist um die Fehler zu erkennen und rekonstruieren, +Wenn die Approximation nicht mehr genügend gut ist, um die Fehler zu erkennen und zu rekonstruieren, dann brauchen wir andere Varianten. -Um dieser Approximation zu entkommen, verlassen wir die reellen Zahlen und gehen zum endlichen Körpern, oder auch Galois-Körper genannt. -Dieser bietet uns einige Vorteile.
\ No newline at end of file +Um dieser Approximation zu entkommen, verlassen wir die reellen Zahlen und gehen zu endlichen Körpern, auch Galois-Körper genannt. +\index{endlicher Körper}% +\index{Galois-Körper}% +\index{Körper, endlich}% +Diese bieten uns einige Vorteile. diff --git a/buch/papers/reedsolomon/einleitung.tex b/buch/papers/reedsolomon/einleitung.tex index f99ad82..cf46c27 100644 --- a/buch/papers/reedsolomon/einleitung.tex +++ b/buch/papers/reedsolomon/einleitung.tex @@ -6,11 +6,13 @@ \section{Einleitung \label{reedsolomon:section:einleitung}} \rhead{Einleitung} -Der Reed-Solomon-Code wurde von den beiden Mathematiker Irving S. Reed und Gustave Solomon im Jahre 1960 entwickelt. -Dabei haben sie das Problem der Fehlerhaften Datenübertragung gelöst. -In diesem Abschnitt wird möglichst verständlich die mathematische Abfolge und +Der Reed-Solomon-Code wurde von den beiden Mathematikern Irving S. Reed und Gustave Solomon im Jahre 1960 entwickelt. +\index{Reed, Irving S.}% +\index{Solomon, Gustave}% +Dabei haben sie das Problem der fehlerhaften Datenübertragung gelöst. +In diesem Kapitel wird möglichst verständlich die mathematische Abfolge und Funktionsweise des Reed-Solomon-Code erklärt. -Es wird jedoch nicht auf die technische Umsetzung oder Implementierung eingegangen, jedoch wird im Abschnitt \ref{reedsolomon:section:anwendung} einige Anwendungen des Reed-Solomon-Codes vorgestellt. +Es wird jedoch nicht auf die technische Umsetzung oder Implementierung eingegangen, jedoch werden im Abschnitt \ref{reedsolomon:section:anwendung} einige Anwendungen des Reed-Solomon-Codes vorgestellt. diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex index daa2913..b1ab8f6 100644 --- a/buch/papers/reedsolomon/idee.tex +++ b/buch/papers/reedsolomon/idee.tex @@ -5,13 +5,13 @@ \label{reedsolomon:section:idee}} \rhead{Problemstellung} Um Fehler in einer Datenübertragung zu erkennen, könnte man die Daten jeweils doppelt senden, -also den gleiche Wert immer zweimal versenden. -Tritt ein Fehler ein wird sich dies in der Differenz der beiden Werten bemerkbar machen. +also den gleiche Wert immer zweimal. +Tritt ein Fehler ein wird sich dies in der Differenz der beiden Werte bemerkbar machen. Aber wie erkennen wir, welcher nun der richtige ist? Die Lösung ist simpel: Wir übertragen den Wert einfach dreimal. -Wenn jetzt ein Fehler auftritt, kann durch die beiden unveränderten Werten den richtigen bestimmt werden. +Wenn jetzt ein Fehler auftritt, kann durch die beiden unveränderten Werte der richtige bestimmt werden. Doch was machen wir, wenn bei dieser Übertragung zwei Fehler auftreten? -Oder noch schlimmer: Was wenn zweimal derselbe Fehler auftritt? Die beiden Fehlerhaften Werte überstimmen bei der Evaluierung den gesendeten Datenwert, der dann unwiderruflich verloren geht. -Wir könnten dies noch steigern mit vier, fünf oder mehr gleichen Übertragenen Werte. Dies erhöht zwar die Robustheit der gesendeten Daten, führt aber auch dazu, dass wir durch die Mehrfachübertragung nur sehr wenige Nutzdaten versenden können. +Oder noch schlimmer: Was wenn zweimal derselbe Fehler auftritt? Die beiden fehlerhaften Werte überstimmen bei der Evaluierung den gesendeten Datenwert, der dann unwiderruflich verloren geht. +Wir könnten dies noch steigern mit vier, fünf oder mehr gleichen übertragenen Werte. Dies erhöht zwar die Robustheit der gesendeten Daten, führt aber auch dazu, dass wir durch die Mehrfachübertragung nur sehr wenige Nutzdaten versenden können. Gerade in unserer heutigen Zeit wäre dies ein enorm grosses Problem und aus diesem Grund wurden alternative Ansätze ausgearbeitet um dieses grundlegende Problem zu lösen. % % @@ -69,58 +69,60 @@ p(x) \textcolor{blue}{2}x^2 + \textcolor{blue}{1}x + \textcolor{blue}{5}. \label{reedsolomon:equation1} \end{equation} -\par + Ein Polynom zweiten Grades ist durch drei Punkte eindeutig bestimmbar. -Bei einer fehlerlosen Übertragung können wir mit 3 übertragenen Werten +Bei einer fehlerlosen Übertragung können wir mit drei übertragenen Werten das Polynom durch Polynominterpolation volständig rekonstruieren. Wir brauchen Polynominterpolation als Methode, um aus den Punkten wieder ein Polynom zu bilden. Die Koeffizente des rekonstruierten Polynoms sind dann unsere gesendeten Zahlen \textcolor{blue}{2}, \textcolor{blue}{1} und \textcolor{blue}{5}. -\par + Wie können wir nun Fehler erkennen oder sogar korrigieren? -Versuchen wir doch, mehr Werte zu übertragen, wie zum Beispiel 7 Werte. +Versuchen wir doch, mehr Werte zu übertragen, wie zum Beispiel sieben Werte. Übertragen werden nun die \textcolor{darkgreen}{grünen Werte} des \textcolor{blue}{blauen Polynomes} an den Stellen 1, 2, 3, \dots , 7. In Abbildung \ref{fig:polynom} ist das zu den \textcolor{blue}{Datenpunkten} gehörige Polynom blau dargestellt, die \textcolor{darkgreen}{übertragenen Werte} des Polynoms sind grün, wobei diese Punkte aufgrund von Übertragungsfehler jetzt eine Parabel darstellen. -Die Fehlerhaften Punkte lassen sich sehr einfach bestimmen, weil diese nicht auf der ursprünglichen Funktion liegen. +Die fehlerhaften Punkte lassen sich sehr einfach bestimmen, weil diese nicht auf der ursprünglichen Funktion liegen. Somit können die roten Punkte auf der Parabel durch die grauen ersetzt werden und sind damit korrigiert. -Bisher konnten wir von 7 Zahlen zwei Fehler erkennen und korrigieren. Können wir in diesem Beispiel noch mehr Fehler korrigieren? +Bisher konnten wir von sieben Zahlen zwei Fehler erkennen und korrigieren. Können wir in diesem Beispiel noch mehr Fehler korrigieren? Wir erhöhen dazu die Fehleranzahl Schritt für Schritt: +\begin{figure}%[!ht] + \centering + %\includegraphics[width=\textwidth]{papers/reedsolomon/figures/polynom2} + \input{papers/reedsolomon/tikz/polynomraw.tex} + \caption{Polynom $p(x)$ von der Gleichung\eqref{reedsolomon:equation1}} + \label{fig:polynom} +\end{figure}% \begin{itemize} \item[\textit{1 Fehler}:] Bei einem Fehler können konkurrenzierende, aber falsche Polynome zusammen mit zwei originalen Punkten entstehen. - Dabei können aber maximal 3 Punkte auf diesem Konkurrenzpolynom sein. + Dabei können aber maximal drei Punkte auf diesem Konkurrenzpolynom sein. Da 6 > 3 ist haben wir unser originales Polynom gefunden. \item[\textit{2 Fehler}:] Bei Zwei Fehlern kann ein Fehler mit zwei originalen Punkten ein konkurrenzierendes, aber falsches Polynom bilden. Da der zweite \textcolor{red}{Fehler} frei wählbar ist, kann dieser auch auf dem \textcolor{gray}{Konkurrenzpolynom} liegen, wie in der Abbilbung \ref{fig:polynom} zu sehen ist. - Nun haben wir, ein \textcolor{blue}{originales Polynom} mit \textcolor{darkgreen}{5} übereinstimmenden und ein konkurrenzierendes mit 4 Punkten. - Da 5 noch grösser als 4 ist, können wir sagen, welches das Originalpolynom ist. - \item[\textit{3 Fehler}:] Bei Drei kann genau wie bei 1 oder 2 Fehler, ein konkurenzierendes Polynom mit einem Fehler und zwei originalen Punkten bestimmt werden. + Nun haben wir, ein \textcolor{blue}{originales Polynom} mit \textcolor{darkgreen}{fünf} übereinstimmenden und ein konkurrenzierendes mit vier Punkten. + Da fünf noch grösser als vier ist, können wir sagen, welches das Originalpolynom ist. + \item[\textit{3 Fehler}:] Bei drei kann genau wie bei ein oder zwei Fehler, ein konkurenzierendes Polynom mit einem Fehler und zwei originalen Punkten bestimmt werden. Auch hier sind die anderen Fehler frei wählbar und liegen auf dem Konkurrenzpolynom. - Nun ist es so das 5 Punkte auf diesem konkurenzierenden Polynom und 4 Punkte auf dem originalen. + Nun ist es so das fünf Punkte auf diesem konkurenzierenden Polynom und vier Punkte auf dem originalen liegen. Das Originalpolynom kann nicht mehr gefunden werden. - \item[\textit{4 Fehler}:] Bei Vier kann noch erkannt werden, dass Fehler aufgetreten sind, da 3 originale Punkte das ursprüngliche Polynom ergeben. - Somit haben wir mindestens 2 verschieden Polynome, was bedeutet, dass Fehler entstanden sind. - \item[\textit{5 Fehler:}] Bei Fünf kann mit den 2 originalen Punkte das Originale Polynom nicht mehr erkannt werden und + \item[\textit{4 Fehler}:] Bei vier kann noch erkannt werden, dass Fehler aufgetreten sind, da drei originale Punkte das ursprüngliche Polynom ergeben. + Somit haben wir mindestens zwei verschiedene Polynome, was bedeutet, dass Fehler entstanden sind. + \item[\textit{5 Fehler:}] Bei fünf kann mit den zwei originalen Punkten das originale Polynom nicht mehr erkannt werden und somit kann auch keine Aussage mehr gemacht werden, ob Fehler aufgetreten sind oder nicht. -\end{itemize} - -\begin{figure}%[!ht] - \centering - %\includegraphics[width=\textwidth]{papers/reedsolomon/figures/polynom2} - \input{papers/reedsolomon/tikz/polynomraw.tex} - \caption{Polynom $p(x)$ von der Gleichung\eqref{reedsolomon:equation1}} - \label{fig:polynom} -\end{figure} \qedhere +\end{itemize} \end{beispiel} \section{Anzahl Übertragungswerte bestimmen \label{reedsolomon:section:Fehlerkorrekturstellen}} -Um zu bestimmen, wie viele zusätzliche \textcolor{darkgreen}{Übertragungspunkte} notwendig sind um die Fehler zu korrigieren, +Um zu bestimmen, wie viele zusätzliche \textcolor{darkgreen}{Übertragungspunkte} notwendig sind, um die Fehler zu korrigieren, muss man zuerst wissen, wie viele \textcolor{blue}{Datenwerte} gesendet und wie viele \textcolor{red}{Fehler} erkannt werden sollen. -Die Anzahl Datenwerte ergeben die Anzahl Polynomkoeffizenten \textcolor{blue}{$k$} und somit den Grad $k-1$ des Polynoms. -Die Bestimmung der Anzahl der Fehler \textcolor{red}{$t$}, welche korrigiert werden können, braucht Redundanz. +Die Anzahl Datenwerte ergibt die Anzahl +\textcolor{blue}{$k$} +Polynomkoeffizenten +und somit den Grad $k-1$ des Polynoms. +Die Bestimmung der Anzahl \textcolor{red}{$t$} der Fehler, welche korrigiert werden können, braucht Redundanz. Bilden wir verschieden grosse Polynome und untersuchen diese mit unterschiedlich vielen Fehlern erkennt man allmählich ein Muster. \begin{table}%[!ht] @@ -142,12 +144,14 @@ Bilden wir verschieden grosse Polynome und untersuchen diese mit unterschiedlich \par Es müssen mehr Punkte auf dem \textcolor{blue}{originalen Polynom} liegen, als auf dem konkurenzierenden. Somit braucht man für die Übertragung pro \textcolor{red}{Fehler} zwei Übertragungspunkte mehr. -Wie in der Tabelle \ref{tab:fehlerkorrekturstellen} ersichtlich ist ergeben sich diese Anzahl an \textcolor{darkgreen}{Punkte} für die Übertragung. +Wie in der Tabelle \ref{tab:fehlerkorrekturstellen} ersichtlich ist ergibt sich die +Anzahl \begin{equation} \textcolor{darkgreen}{u}= \textcolor{blue}{k}+2\textcolor{red}{t}. \label{reedsolomon:equation2} \end{equation} +von \textcolor{darkgreen}{Punkten} für die Übertragung. Ein Nebeneffekt ist, dass auch $2t$ Fehler erkannt werden können, die aber nicht korrigiert werden können. Um die Polynomkoeffizenten nach der Übertragung zu rekonstruieren, haben wir jedes mal die Polynominterpolationsmethode angewendet. diff --git a/buch/papers/reedsolomon/rekonstruktion.tex b/buch/papers/reedsolomon/rekonstruktion.tex index b099e68..4f7fd7b 100644 --- a/buch/papers/reedsolomon/rekonstruktion.tex +++ b/buch/papers/reedsolomon/rekonstruktion.tex @@ -23,9 +23,10 @@ Aufgrund der Fehlerstellen müssen wir aber davon ausgehen, das wir nicht mehr d Wir stellen also die Matrix auf und markieren gleichzeitig die Fehlerstellen: \[ \textcolor{gray}{ - \begin{pmatrix} + \begin{matrix} a^0 \\ a^1 \\ a^2 \\ \textcolor{red}{a^3} \\ a^4 \\ a^5 \\ a^6 \\ a^7 \\ \textcolor{red}{a^8} \\ a^9 \\ -\end{pmatrix}} +\end{matrix}} +\qquad \begin{pmatrix} 5 \\ 3 \\ 6 \\ \textcolor{red}{8} \\ 2 \\ 10 \\ 2 \\ 7 \\ \textcolor{red}{1} \\ 4 \\ \end{pmatrix} @@ -176,7 +177,7 @@ Nun können wir den Gauss-Algorithmus anwenden um die Matrix zu Invertieren. \cdot \begin{pmatrix} 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ -\end{pmatrix} +\end{pmatrix}. \] Multiplizieren wir nun aus, erhalten wir unseren Nutzdatenteil \[ diff --git a/buch/papers/reedsolomon/zusammenfassung.tex b/buch/papers/reedsolomon/zusammenfassung.tex index c24fcf3..a098107 100644 --- a/buch/papers/reedsolomon/zusammenfassung.tex +++ b/buch/papers/reedsolomon/zusammenfassung.tex @@ -6,6 +6,8 @@ \section{Zusammenfassung \label{reedsolomon:section:zf}} \rhead{Zusammenfassung} +\index{Reed-Solomon-Code, Zusammenfassung}% +\index{Zusammenfassung Reed-Solomon-Code}% Dieser Abschnitt beinhaltet eine Übersicht über die Funktionsweise eines Reed-Solomon-Codes für beliebige endliche Körper. \subsubsection{Schritt 1: primitives Element} @@ -55,11 +57,11 @@ Die Codierungsmatrix ändert sich somit zur Decodierungsmatrix Daraus lässt sich der Nachrichtenblock aus dem Übertragungsvektor rekonstruieren. \subsubsection{Schritt 4: Decodierung mit Fehler} -Sollte der Übertragungsvektor fehlerhaft empfangen werden, so kann der Nachrichtenblock nicht durch invertieren der Matrix rekonstruiert werden. +Sollte der Übertragungsvektor fehlerhaft empfangen werden, so kann der Nachrichtenblock nicht durch Invertieren der Matrix rekonstruiert werden. Zur Lokalisierung der Fehlerstellen nehmen wir das Polynom $f(X)$ zur Hilfe, welches wir über den Satz von Fermat bestimmt haben. Berechnen wir daraus das $\operatorname{kgV}$ von $f(X)$ und $d(X)$, so erhalten wir ein Lokatorpolynom. -Durch das bestimmen der Exponenten erhalten wir die Fehlerhaften Stellen im Übertragungsvektor. -Für die Rekonstruktion stellen wir ein Gleichungssystem auf und entfernen daraus die Fehlerhaften Zeilen. +Durch das Bestimmen der Exponenten erhalten wir die fehlerhaften Stellen im Übertragungsvektor. +Für die Rekonstruktion stellen wir ein Gleichungssystem auf und entfernen daraus die fehlerhaften Zeilen. Im Anschluss kann das verkleinerte Gleichungssystem gelöst werden. Als Resultat erhalten wir die fehlerfreie Nachricht. %Aus diesem Grund suchen wir nach einem Lokatorpolynom, welches uns die Fehlerhaften Stellen im Übertragungsvektor anzeigt. diff --git a/buch/papers/spannung/Einleitung.tex b/buch/papers/spannung/Einleitung.tex index 8e0d36d..1062b8b 100644 --- a/buch/papers/spannung/Einleitung.tex +++ b/buch/papers/spannung/Einleitung.tex @@ -1,6 +1,10 @@ \section{Einleitung\label{spannung:section:Einleitung}} \rhead{Einleitung} Das Hook'sche Gesetz beschreibt die Beziehung von Spannung und Dehnung von linear-elastischen Materialien im Eindimensionalen. +\index{Hook'sches Gesetz}% +\index{Spannung}% +\index{Dehnung}% +\index{elastisches Material}% In diesem Kapitel geht es darum, das Hook'sche Gesetz im Dreidimensionalen zu beschreiben. Durch variable Krafteinwirkungen entstehen in jedem Punkt des Materials eine Vielzahl an unterschiedlichen Spannungen. In jedem erdenklichen Punkt im Dreidimensionalen herrscht daher ein entsprechender individueller Spannungszustand. @@ -8,6 +12,7 @@ Um das Hook'sche Gesetz für den 3D Spannungszustand formulieren zu können, rei Darum werden Vektoren, Matrizen und Tensoren zu Hilfe gezogen. Mit diesen lässt sich eine Spannungsformel für den 3D Spannungszustand bilden. Diese Spannungsformel ist Grundlage für Computerprogramme und geotechnische Versuche, wie der Oedometer-Versuch. +\index{Oedometer-Versuch}% Um die mathematischen und physikalischen Berechnungen anwenden zu können, müssen vorerst ein paar spezifische Bedingungen vorausgesetzt und Annahmen getroffen werden. @@ -18,7 +23,11 @@ wie sie in gängigen Lehrbüchern der Mechanik oder der Geotechnik behandelt wer \section{Spannungsausbreitung\label{spannung:section:Spannungsausbreitung}} \rhead{Spannungsausbreitung} Die Geotechnik ist eine Ingenieurdisziplin, bei welcher man Erdbau und den Erdbau tangierende Bauwerke dimensioniert. +\index{Geotechnik}% +\index{Erdbau}% Sie beinhaltet aber auch die statische Beurteilung von Boden und Fels. +\index{Boden}% +\index{Fels}% Belastet man den Boden mit einer Spannung \[ @@ -47,12 +56,14 @@ Das können beispielsweise verschiedene Bodenkennwerte oder auch der Wassergehal \begin{figure} \centering - \includegraphics[width=0.35\linewidth,keepaspectratio]{papers/spannung/Grafiken/Bild5.png} + %\includegraphics[width=0.35\linewidth,keepaspectratio]{papers/spannung/Grafiken/Bild5.png} + \includegraphics{papers/spannung/images/tiefe.pdf} \caption{Funktionen der Spannung und Dehnung im Zusammenhang mit der Tiefe} \label{fig:Bild5} \end{figure} -Bei jeder dieser Zusatzspannung geht eine entsprechende Zusatzdehnung des Bodens einher, welche eine Setzung bedeutet. +Mit jeder dieser Zusatzspannung geht eine entsprechende Zusatzdehnung des Bodens einher, welche eine Setzung bedeutet. +\index{Setzung}% Im einfachsten Fall kann modellhaft mit \[ \varepsilon @@ -76,6 +87,7 @@ berechnet werden mit: Diese Zusammenhänge sind wie erwähnt unter anderem im Lehrbuch \cite{spannung:Grundlagen-der-Geotechnik} beschrieben. In der praktischen Geotechnik wird man allerdings weitaus schwierigere Situationen antreffen. Ein Beispiel wäre eine Baugrube mit einem Baugrubenabschluss, wo ein Teil des Bodens abgetragen ist (siehe Abbildung~\ref{fig:Bild3}). +\index{Baugrube}% Die Ausbreitung der Zusatzspannung $\sigma(x,y,t)$ würde hier deutlich komplizierter ausfallen. Dies bedeutet auch eine komplexere Setzung der Bodenoberfläche infolge einer Flächenlast $\sigma$. Aus allen zusätzlichen Spannungen müssen die adäquaten Dehnungen mit Hilfe einer Spannungsgleichung berechnet werden. diff --git a/buch/papers/spannung/images/Makefile b/buch/papers/spannung/images/Makefile new file mode 100644 index 0000000..0c6ccc7 --- /dev/null +++ b/buch/papers/spannung/images/Makefile @@ -0,0 +1,9 @@ +# +# Makefile -- build images +# +# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +all: tiefe.pdf + +tiefe.pdf: tiefe.tex ../Grafiken/Bild5.png + pdflatex tiefe.tex diff --git a/buch/papers/spannung/images/tiefe.pdf b/buch/papers/spannung/images/tiefe.pdf Binary files differnew file mode 100644 index 0000000..de9e7cf --- /dev/null +++ b/buch/papers/spannung/images/tiefe.pdf diff --git a/buch/papers/spannung/images/tiefe.tex b/buch/papers/spannung/images/tiefe.tex new file mode 100644 index 0000000..9ad7fa4 --- /dev/null +++ b/buch/papers/spannung/images/tiefe.tex @@ -0,0 +1,42 @@ +% +% tiefe.tex -- Abhängigkeit von \varepsilon und \sigma von der Tiefe +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math} +\begin{document} +\def\skala{1} +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\def\s{1} +\newboolean{debug} +\setboolean{debug}{true} +\setboolean{debug}{false} + +\node at (0,0) {\includegraphics[width=6cm]{../Grafiken/Bild5.png}}; +\def\beschriftung#1#2#3{ + \ifthenelse{\boolean{debug}}{ + \fill[color=red,opacity=0.2] ({(#1-0.22)*\s},{(#2-0.22)*\s}) + rectangle ({(#1+0.22)*\s},{(#2+0.22)*\s}); + }{ + \fill[color=white] ({(#1-0.22)*\s},{(#2-0.22)*\s}) + rectangle ({(#1+0.22)*\s},{(#2+0.22)*\s}); + } + \node at ({#1*\s-0.1},{#2*\s}) {#3\strut}; +} + +\beschriftung{2.75}{2.9}{$\varepsilon$} +\beschriftung{-0.4}{2.9}{$\sigma$} + +\beschriftung{-2.5}{-2.9}{$t$} +\beschriftung{0.67}{-2.9}{$t$} + +\end{tikzpicture} +\end{document} + diff --git a/buch/papers/spannung/teil0.tex b/buch/papers/spannung/teil0.tex index 089c28e..f9afde0 100644 --- a/buch/papers/spannung/teil0.tex +++ b/buch/papers/spannung/teil0.tex @@ -17,6 +17,8 @@ Es werden jeweils drei Seiten dieses Würfels betrachtet, wobei die drei gegenü sodass der Elementarwürfel im Gleichgewicht ist. Wäre dieses Gleichgewicht nicht vorhanden, käme es zu Verschiebungen und Drehungen. Das infinitesimale Bodenteilchen hat die Koordinatenachsen $1$, $2$, $3$. +\index{Normalspannung}% +\index{Schubspannung}% Veränderungen der Normalspannungen können durch Schubspannungen kompensiert werden und umgekehrt. So sind insgesamt neun verschiedene Spannungen möglich, konkret sind dies drei Normal- und sechs Schubspannungen. Normalspannungen wirken normal (mit rechtem Winkel) zur angreifenden Fläche und Schubspannungen parallel zur angreifenden Fläche. @@ -61,6 +63,9 @@ mit \end{align*} Diese Beziehung gilt bei linear-elastischen Materialien, welche reversible Verformungen zulassen. Es ist praktisch, die relative Dehnung $\varepsilon$ anzugeben und nicht eine absolute Längenänderung $\Delta l$. +\index{Dehnung, relativ}% +\index{Längenänderung}% +\index{Elastizitätsmodul}% \begin{figure} \centering \includegraphics[width=0.35\linewidth,keepaspectratio]{papers/spannung/Grafiken/Bild1.png} @@ -78,6 +83,6 @@ Im Falle, dass $E$ nicht konstant ist, wird dieser durch \[ E = -\frac{\text{d}\sigma}{\text{d}\varepsilon} +\frac{d\sigma}{d\varepsilon} \] -ausgedrückt.
\ No newline at end of file +ausgedrückt. diff --git a/buch/papers/spannung/teil1.tex b/buch/papers/spannung/teil1.tex index 647b452..10f7663 100644 --- a/buch/papers/spannung/teil1.tex +++ b/buch/papers/spannung/teil1.tex @@ -1,9 +1,11 @@ \section{Skalare, Vektoren, Matrizen und Tensoren\label{spannung:section:Skalare,_Vektoren,_Matrizen_und_Tensoren}} \rhead{Skalare, Vektoren, Matrizen und Tensoren} Der Begriff Tensor kann als Überbegriff der mathematischen Objekte Skalar, Vektor und Matrix, betrachtet werden. +\index{Tensor}% Allerdings sind noch höhere Stufen dieser Objekte beinhaltet. Skalare, Vektoren oder Matrizen sind daher auch Tensoren. Ein Skalar ist ein Tensor 0. Stufe. +\index{Stufe}% Mit einem Vektor können mehrere Skalare auf einmal beschrieben werden. Ein Vektor hat daher die Stufe 1 und ist höherstufig als ein Skalar. Mit einer Matrix können wiederum mehrere Vektoren auf einmal beschrieben werden. @@ -14,10 +16,18 @@ Jede Stufe von Tensoren verlangt andere Rechenregeln. So zeigt sich auch der Nachteil von Tensoren mit Stufen höher als 2. Man ist also bestrebt höherstufige Tensoren mit Skalaren, Vektoren oder Matrizen zu beschreiben. -In den 40er Jahren vom 19. Jahrhundert wurde der Begriff Tensor von Rowan Hamilton in die Mathematik eingeführt. +In den 40er Jahren des 19.~Jahrhunderts wurde der Begriff Tensor von Rowan Hamilton in die Mathematik eingeführt. +\index{Hamilton, Rowan}% James Clerk Maxwell hat bereits mit Tensoren operiert, ohne den Begriff Tensor gekannt zu haben. +\index{Maxwell, James Clerk}% Erst Woldemar Voigt hat den Begriff in die moderne Bedeutung von Skalar, Matrix und Vektor verallgemeinert. +\index{Voigt, Woldemar} Er hat in der Elastizitätstheorie als erstes Tensoren eingesetzt und beschrieben. +\index{Elastizitätstheorie}% Auch Albert Einstein hat solche Tensoren eingesetzt, -um in der Relativitätstheorie die Änderung der 4D Raumzeit beschreiben zu können. -\cite{spannung:Tensor} +\index{Einstein, Albert}% +um in der Relativitätstheorie die Änderung der vierdimensionalen Raumzeit beschreiben zu können +\index{Relativitätstheorie}% +\index{Raumzeit}% +\cite{spannung:Tensor}. + diff --git a/buch/papers/spannung/teil2.tex b/buch/papers/spannung/teil2.tex index 8620afe..8bf1968 100644 --- a/buch/papers/spannung/teil2.tex +++ b/buch/papers/spannung/teil2.tex @@ -1,18 +1,18 @@ \section{Dreiachsiger Spannungszustand\label{spannung:section:Dreiachsiger_Spannungszustand}} \rhead{Dreiachsiger Spannungszustand} -Durch komplexe Spannungsausbreitungen im Boden entstehen im 3D Spannungszustand unterschiedliche Normal- und Schubspannungen. +Durch komplexe Spannungsausbreitungen im Boden entstehen im 3D-Spannungszustand unterschiedliche Normal- und Schubspannungen. \begin{figure} \centering \includegraphics[width=0.30\linewidth,keepaspectratio]{papers/spannung/Grafiken/infinitesimalerWuerfel.png} \caption{Beispiel eines Spannungszustandes; Vergrösserung eines infinitesimalen Bodenteilchen} \label{fig:infinitesimalerWuerfel} \end{figure} -Ein Tensor 0. Stufe, sprich ein Skalar, kann lediglich den 1D Spannungszustand beschreiben. -Um den 3D Spannungszustandes als ein mathematisches Objekt darstellen zu können, wird ein Tensor 2. Stufe, sprich eine Matrix, eingesetzt. +Ein Tensor 0.~Stufe, sprich ein Skalar, kann lediglich den 1D-Spannungszustand beschreiben. +Um den 3D-Spannungszustandes als ein mathematisches Objekt darstellen zu können, wird ein Tensor 2.~Stufe, sprich eine Matrix, eingesetzt. Die Spannungen sind durch die zwei Indizes -\[ +\( i, j\in\left\{1, 2, 3\right\} -\] +\) definiert. Daher ergeben sich die neun Spannungen. Die nachfolgenden Zusammenhänge sind in \cite{spannung:Voigtsche-Notation} beschrieben. @@ -30,11 +30,11 @@ Dieser Spannungstensor kann schliesslich mit $3^2$ Einträgen als $3\times3$ Mat \] dargestellt werden und beschreibt somit den gesamten Spannungszustand. Die Dehnungen wirken in die gleichen Richtungen wie die korrespondierenden Spannungen und sind durch die zwei Indizes -\[ +\( k, l\in\left\{1, 2, 3\right\} -\] +\) definiert. -Der Dehnungstensor ist ebenfalls ein Tensor 2. Stufe und kann somit auch als $3\times3$ Matrix mit +Der Dehnungstensor ist ebenfalls ein Tensor 2.~Stufe und kann somit auch als $3\times3$ Matrix mit \[ \overline{\varepsilon} = @@ -48,7 +48,7 @@ Der Dehnungstensor ist ebenfalls ein Tensor 2. Stufe und kann somit auch als $3\ \] dargestellt werden und beschreibt den gesamten Dehnungszustand. -Der Spannungs- und Dehnungstensor 2. Stufe kann je in einen Tensor 1. Stufe überführt werden, welches ein Spaltenvektor ist. +Der Spannungs- und Dehnungstensor 2.~Stufe kann je in einen Tensor 1.~Stufe überführt werden, welches ein Spaltenvektor ist. Man darf Zeile um Zeile in eine Spalte notieren, sodass es einen Spaltenvektor ergibt. So ergibt sich der Spannungsvektor @@ -108,18 +108,19 @@ und der Dehnungsvektor \end{pmatrix} . \] -Um die Beziehung von Spannung und Dehnung, welche mit Tensoren 2. Stufe ausgedrückt werden, zu beschreiben, wird ein Elastizitätstensor 4. Stufe benötigt. -Dieser ist im 1D Spannungszustand ein Tensor 0. Stufe und somit ein Skalar, der Elastizitätsmodul $E$. +Um die Beziehung von Spannung und Dehnung, welche mit Tensoren 2.~Stufe ausgedrückt werden, zu beschreiben, wird ein Elastizitätstensor 4.~Stufe benötigt. +\index{Elastizitätstensor}% +Dieser ist im 1D-Spannungszustand ein Tensor 0.~Stufe und somit ein Skalar, der Elastizitätsmodul $E$. -Dieser Elastizitätstensor 4. Stufe kann als Tensor 2. Stufe, sprich als Matrix, dargestellt werden. +Dieser Elastizitätstensor 4.~Stufe kann als Tensor 2.~Stufe, sprich als Matrix, dargestellt werden. So wird die Spannungsgleichung stark vereinfacht, da nun eine Matrix auf einen Vektor operiert. -Dieser Tensor muss für eine Spannung jeden Einfluss aus allen 9 Dehnungen mit Konstanten erfassen. -Dies bedeutet um eine von 9 Spannungen berechnen zu können müssen alle 9 Dehnung mit unterschiedlichen Faktoren summiert werden. -Es ergeben sich $9^2$ Einträge, welches mit den 4 Indizes -\[ +Dieser Tensor muss für eine Spannung jeden Einfluss aus allen neun Dehnungen mit Konstanten erfassen. +Dies bedeutet um eine von neun Spannungen berechnen zu können müssen alle neun Dehnung mit unterschiedlichen Faktoren summiert werden. +Es ergeben sich $9^2$ Einträge, welches mit den vier Indizes +\( i, j, k, l\in\left\{1, 2, 3\right\} , -\] +\) die zueinander verknüpft werden müssen, zu begründen ist. Es ergeben sich $3^4$ Einträge, sprich eine $9\times9$ Matrix, welche allgemein \[ @@ -157,6 +158,7 @@ C_{ijkl}\cdot\varepsilon_{kl} \] geschrieben werden. Der Elastizitätstensor muss für isotrope Materialien zwingend symmetrisch sein. +\index{isotrop}% Folglich gilt: \[ \overline{\overline{C}} @@ -169,6 +171,8 @@ Die Konstanten $C$ werden nun nach dem Hook'schen Gesetz mit Hilfe des Elastizit Da dieser Modul durch die eindimensionale Betrachtung definiert ist, muss für die dreidimensionale Betrachtung eine weitere Kennzahl eingeführt werden. Dies ist die Querdehnungszahl $\nu$ (auch Poisson-Zahl), welche durch +\index{Querdehnungszahl}% +\index{Poisson-Zahl}% \[ \nu = @@ -228,7 +232,7 @@ Die Normalspannung $\sigma_{22}$ lässt sich zum Beispiel als \] berechnen. -Reduzierte Spannungs- und Dehnungsgleichungen +\section{Reduzierte Spannungs- und Dehnungsgleichungen} Man betrachte nun die Eigenschaften des Elastizitätstensors. Dieser ist quadratisch und symmetrisch, die verschiedenen Einträge wechseln sich aber miteinander ab. @@ -270,6 +274,7 @@ und folglich auch \] gilt. Diese Eigenschaft wird durch die Voigt'sche Notation \cite{spannung:Voigtsche-Notation} ausgenutzt, um die Gleichung vereinfachen zu können. +\index{Voigt'sche Notation}% Durch diese Symmetrie gilt \[ \overline{\sigma} @@ -442,7 +447,8 @@ Es ist ersichtlich, dass die Schubdehnungen keinen Einfluss auf $\sigma_{33}$ ha Der Einfluss der zu $\sigma_{33}$ äquivalenten Dehnung $\varepsilon_{33}$ hat den grössten Einfluss. Die anderen Normalspannungen $\sigma_{11}$ und $\sigma_{22}$ haben einen unter anderem mit $\nu$ korrigierten Einfluss. -Von $\overline{\overline{C}}$ bildet man die inverse Matrix $\overline{\overline{C}}\mathstrut^{-1}$, mithilfe des Gauss - Jordan Algorithmus, um die Gleichung umstellen zu können. +Von $\overline{\overline{C}}$ bildet man die inverse Matrix $\overline{\overline{C}}\mathstrut^{-1}$, mithilfe des Gauss-Jordan-Algorithmus, um die Gleichung umstellen zu können. +\index{Gauss-Algorithmus}% Durch einige Berechnungsschritte erhält man die Dehnungsgleichung: \[ @@ -492,4 +498,4 @@ Um wieder die Einflüsse der Parameter veranschaulichen zu können berechnet man \] Diese hängt wieder am meisten von $\sigma_{22}$ ab. Ist die Querdehnung $\nu$ grösser, so wird die Dehnung $\varepsilon_{22}$ reduziert. -Bei inkompressiblen Medien, bei welchen keine Dehnungen und nur identische Normalspannungen auftreten können, ist folglich $\nu=0.5$. +Bei inkompressiblen Medien, bei welchen keine Dehnungen und nur identische Normalspannungen auftreten können, ist folglich $\nu=\frac12$. diff --git a/buch/papers/spannung/teil3.tex b/buch/papers/spannung/teil3.tex index a9080ea..c68c0d1 100644 --- a/buch/papers/spannung/teil3.tex +++ b/buch/papers/spannung/teil3.tex @@ -62,7 +62,7 @@ und \frac{3E}{2(1+\nu)} \overbrace{\frac{2}{3}(\varepsilon_{11} - \varepsilon_{33})}^{\displaystyle{\varepsilon_{s}}} . \] -Die Faktoren mit den Dehnungskomponenten können so mit +Die Faktoren mit den Dehnungskomponenten können so als \[ \varepsilon_{v} = diff --git a/buch/papers/spannung/teil4.tex b/buch/papers/spannung/teil4.tex index 00b2d4f..2e0de45 100644 --- a/buch/papers/spannung/teil4.tex +++ b/buch/papers/spannung/teil4.tex @@ -1,6 +1,9 @@ \section{Oedometrischer Elastizitätsmodul\label{spannung:section:Oedometrischer Elastizitätsmodul}} \rhead{Oedometrischer Elastizitätsmodul} Mit dem Oedometer-Versuch kann der oedometrische Elastizitätsmodul $E_{\text{OED}}$ bestimmt werden. +\index{Oedometer-Versuch}% +\index{oedometrischer Elastizitätsmodul}% +\index{Elastizitätsmodul, oedometrisch}% Dieser beschreibt ebenfalls das Verhältnis zwischen Spannung und Dehnung, allerdings unter anderen Bedingungen. Diese Bedingung ist das Verhindern der seitlichen Verformung, sprich der Dehnung in Richtung $1$ und $2$. Es wird ein Probeelement mit immer grösseren Gewichten belastet, welche gleichmässig auf das Material drücken. @@ -33,6 +36,12 @@ Die Spannung $\sigma_{11}$ wird durch die aufgebrachte Kraft mit = \frac{F}{A} \] +\begin{figure} + \centering + \includegraphics[width=0.45\linewidth,keepaspectratio]{papers/spannung/Grafiken/DiagrammOedometer-Versuch.png} + \caption{Diagramm Charakteristik verschiedener Elastizitätsmodule bei gleichem Material} + \label{fig:DiagrammOedometer-Versuch} +\end{figure}% und die Dehnung $\varepsilon_{11}$ jeweils mit den entsprechenden Setzungen berechnet. Diese Randbedingungen können in die vereinfachte Gleichung \eqref{spannung:Matrixschreibweise} eingesetzt werden. Diese lautet nun: @@ -71,9 +80,3 @@ Den Versuch kann man auf einem $\sigma$-$\varepsilon$-Diagramm abtragen (siehe A Durch die Komprimierung nimmt der Boden mehr Spannung auf, und verformt sich zugleich weniger stark. Mit diesem ermittelten $E_{\text{OED}}$ kann man nun weitere Berechnungen für die Geotechnik durchführen. -\begin{figure} - \centering - \includegraphics[width=0.45\linewidth,keepaspectratio]{papers/spannung/Grafiken/DiagrammOedometer-Versuch.png} - \caption{Diagramm Charakteristik verschiedener Elastizitätsmodule bei gleichem Material} - \label{fig:DiagrammOedometer-Versuch} -\end{figure}
\ No newline at end of file diff --git a/buch/papers/verkehr/section1.tex b/buch/papers/verkehr/section1.tex index 8994066..4a450f1 100644 --- a/buch/papers/verkehr/section1.tex +++ b/buch/papers/verkehr/section1.tex @@ -1,55 +1,87 @@ \label{section:verkehr/einfuehrung} Das Verkehrsnetz besteht aus allen Anlagen, auf oder unter der Erdoberfläche, auf denen eine räumliche Fortbewegung von Personen oder auch Gütern stattfindet. Verkehrsnetze sind ein Bestandteil der Verkehrsinfrastruktur, die auf topografischen Karten festgehalten werden. Sie umfassen den Schienenverkehr, alle Strassen und Wege, wie auch Flugplätze und alle dazugehörigen Bauwerke. +\index{Verkehrsnetz}% +\index{Fortbewegung}% +\index{topographische Karte}% +\index{Flugplatz}% Aus verkehrsgeografischer Sicht besteht das Verkehrsnetz aus Kanten, Knotenpunkten und dem Hinterland. Die Knotenpunkte werden auch hier durch die Kanten verbunden, die den Verkehrsstrom aufnehmen, wobei das Hinterland durch einzelne Knoten versorgt wird. Die Aufteilung in Kanten und Knotenpunkte ermöglicht eine Vereinfachung komplexer Verkehrsnetze, damit sie mittels der Graphentheorie untersucht werden können. +\index{Knotenpunkt}% +\index{Hinterland}% +\index{Verkehrtsstrom}% Grundsätzlich können kurze Wege zwischen den Knotenpunkten das Ziel beim Aufbau eines Verkehrsnetzes sein. Es kann aber auch versucht werden, die Bau- und Unterhaltskosten des Verkehrsnetzes in einem gewissen Rahmen zu halten. Aus diesen Vorgaben ergibt sich dann, je nach dem was gewünscht wird, eine grob- oder feinmaschige Struktur des Netzes. +\index{Graphentheorie}% Ziel ist aber ein möglichst wirtschaftliches und optimales Verkehrsnetz. \section{Suchalgorithmen} Inbesondere bei Graphen in Form von Verkehrsnetzen ist das Finden eines kürzesten Weges von Interesse. Mathematisch betrachtet handelt es sich hierbei um ein Optimierungsproblem, bei dem die Summe der Kantengewichte zwischen zwei Knoten minimiert werden soll. Zu diesem Zweck existieren verschiedene Suchalgorithmen. In den folgenden Abschnitten wird auf eine Auswahl davon eingegangen. Zuvor ist es jedoch notwendig, einige Begriffe und Eigenschaften von Suchalgorithmen zu definieren. +\index{kürzester Weg}% +\index{Optimierungsproblem}% +\index{Suchalgorithmus}% Einerseits wird zwischen optimalen und nicht-optimalen Algorithmen unterschieden. Ein Suchalgorithmus gilt als optimal, falls er einen günstigsten Pfad zwischen zwei Knoten findet. Es gilt zu beachten, dass im Falle des Vorhandenseins von mehrerern Pfaden mit identischer, minimaler Summe der Kantengewichte zwischen zwei Knoten, mindestens einer dieser Pfade gefunden wird. +\index{optimaler Algorithmus}% +\index{Algorithmus, optimal}% Weiter wird zwischen informierten und uninformierten Algorithmen differenziert. Während uninformierte Suchalgorithmen den Suchraum schematisch auf Basis der Eigenschaften des Graphen absuchen, bis eine günstigste Lösung gefunden wurde, verwenden informierte Suchalgorithmen eine Heuristik zur Abschätzung der Suchrichtung. Oftmals wird bei informierten Algorithmen ein Verlust der Optimalität zugunsten einer verbesserten Rechenzeit in Kauf genommen. Es exisitieren jedoch auch Heurstiken, die eine optimale Lösung gewährleisten. +\index{Heuristik}% +\index{informierter Algorithmus}% +\index{Algorithmus, informiert}% +\index{Greedy-Algorithmus}% +\index{gieriger Algorithmus}% +\index{Algorithmus, gierig}% Eine besondere Art von Suchalgorithmen stellen die sogenannten Greedy-Algorithmen, zu deutsch gierige Algorithmen, dar. Sie zeichnen sich dadurch aus, dass sie stets den zurzeit günstigsten Folgezustand auswählen. Dadurch sind sie in der Regel äusserst effizient, garantieren bei vielen Problemstellungen jedoch keine optimale Lösung. \subsection{Dijkstra-Algorithmus} Der Algorithmus von Dijkstra ist benannt nach seinem Erfinder dem Mathematik- und Informatikprofessor Edsger Dijkstra. Er gehört zur Klasse der uninformierten Greedy-Algorithmen. Zudem ist die Optimalität bei strikt positiven Kantengewichten gewährleistet. +\index{Dijkstra, Edsger}% +\index{Dijkstra-Algorithmus}% Vorteilhaft ist die einfache Implementierung. Abhängig von der Programmiersprache sind zwischen 30 und 40 Zeilen an Code ausreichend, damit er den kürzesten Pfad zwischen einem Startknoten $a$ und Zielknoten $b$ finden kann. Die für dieses Paper verwendete programmierte Funktion (MATLAB) verwendet eine abgewandelte Form der gewichteten Adjazenz-Matrix $A$, für welche gilt: +\index{Matlab}% +\index{Adjazenz-Matrix}% Der Matrix-Eintrag $A_{i,j}$ enthält das Kantengewicht der Kante von Knoten $j$ nach $i$ auf. Falls keine Kante zwischen $j$ und $i$ vorhanden ist, beträgt der Eintrag $\infty$. Dies vereinfacht die Implementierung zur Bestimmung des nächst-günstigsten Pfades. Zudem werden zwei Hilfs-Vektoren $\vec{d}$ und $\vec{b}$ der Länge $n$ eingeführt, wobei $n$ die Anzahl Knoten des Graphen ist. Im Vektoreintrag $\vec{d}(i)$ wird das kummulierte Kantengewicht zur Erreichung von Knoten $i$ vom Startknoten $a$ gespeichert. Der Eintrag $\vec{d}(a)$ beträgt somit $0$. Im Vektor $\vec{b}$ wird zudem vermerkt, falls ein Knoten bereits als Ziel eines kürzesten Pfads gefunden wurde und somit für die weitere Suche nicht mehr berücksichtigt werden muss ($\vec{b}(i)=1$, sonst $\vec{b}(i)=0$). -Ausgehend vom Startknoten $a$ wird nun anhand der Matrix $A$ in der Spalte $a$ nach dem kleinsten Eintrag gesucht. Somit wird der Folgeknoten $c$ gefunden. Dieser Vorgang wird nun wiederholt, wobei jedoch sämtliche von Knoten $a$ und $c$ erreichbaren Knoten berücksichtigt werden, die noch nicht besucht wurden. In anderen Worten alle nicht verschwindenden Einträge $i$ der Spalten $a$ und $c$ der Matrix $A$, für welche gilt $\vec{b}(i)=0$. Ausschlaggebend für die folgende Auswahl ist die Summe der kummulierten Kantengewichte und des Kantengewichts des nächsten Knotens. Als Beispiel zur Erreichung von Knoten $k$ über Knoten $j$: +Ausgehend vom Startknoten $a$ wird nun anhand der Matrix $A$ in der Spalte $a$ nach dem kleinsten Eintrag gesucht. So wird der Folgeknoten $c$ gefunden. Dieser Vorgang wird nun wiederholt, wobei jedoch sämtliche von Knoten $a$ und $c$ erreichbaren Knoten berücksichtigt werden, die noch nicht besucht wurden. In anderen Worten alle nicht verschwindenden Einträge $i$ der Spalten $a$ und $c$ der Matrix $A$, für welche gilt $\vec{b}(i)=0$. Ausschlaggebend für die folgende Auswahl ist die Summe der kummulierten Kantengewichte und des Kantengewichts des nächsten Knotens. Als Beispiel zur Erreichung von Knoten $k$ über Knoten $j$: \begin{equation} -\vec{d}(k)=\vec{d}(j)+A(k,j) +\vec{d}(k)=\vec{d}(j)+A(k,j). \end{equation} Diese Iteration wird solange durchgeführt, bis der Folgeknoten dem Zielknoten entspricht. \subsection{A*-Algorithmus} Der A*-Algorithmus basiert auf dem Dijkstra-Algorithmus, verwendet jedoch eine Heuristik zur Abschätzung der günstigsten Suchrichtung. Somit handelt es sich um einen informierten Greedy-Algorithmus, der abhängig von der verwendeten Heuristik auch optimal sein kann. Er wurde von Peter Hart, Nils Nilsson und Bertram Raphael entwickelt. +\index{Hart, Peter}% +\index{Nilsson, Nils}% +\index{Raphel, Bertram}% +\index{A*-Algorithmus}% \subsection{Anwendung A*-Algorithmus} Wie oben erwähnt basiert der A*-Algorithmus auf dem Shortest-Path-Algorithmus von Dijkstra. Gemäss dem Algorihtmus von Dijkstra werden von einem Startknoten aus die jeweiligen Nachbarknoten, die Nachbarknoten der Nachbarknoten usw. verarbeitet. Die Kantengewichte werden dabei aufsummiert und die Priorität wird auf die Kante gelegt, die das geringste Gewicht aufweist. Mit diesem Verfahren wird sichergestellt, dass die erste gefundene Lösung auch eine optimale Lösung darstellt.\\ +\index{Shortest-Path-Algorithmus}% -Der A*-Algorithmus unterscheidet sich vom Dijkstra-Algorithmus dahingehend, dass bei der Auswahl des Folgeknotens, nicht nur die Summe der Kantengewichte $\vec{d}(j)+A(k,j)$, sondern zusätzlich die für jeden Knoten definierte Abschätzfunktion $f(k)$ hinzuaddiert wird. Dies passiert jedoch nur bei der \emph{Auswahl} des Folgeknotens. Der Wert von $f(k)$ wird nicht im Eintrag $\vec{d}(k)$ gespeichert. Somit wird gewährleistet, dass der gefundene Pfad, der Summe der Kantengewichte entspricht. Ein Beispiel dafür, wie eine Abschätzfunktion gebildet werden kann findet sich in Abschnitt \ref{sec:verkehr/euklidische} +Der A*-Algorithmus unterscheidet sich vom Dijkstra-Algorithmus dahingehend, dass bei der Auswahl des Folgeknotens, nicht nur die Summe der Kantengewichte $\vec{d}(j)+A(k,j)$, sondern zusätzlich die für jeden Knoten definierte Abschätzfunktion $f(k)$ hinzuaddiert wird. Dies passiert jedoch nur bei der \emph{Auswahl} des Folgeknotens. Der Wert von $f(k)$ wird nicht im Eintrag $\vec{d}(k)$ gespeichert. Somit wird gewährleistet, dass der gefundene Pfad, der Summe der Kantengewichte entspricht. Ein Beispiel dafür, wie eine Abschätzfunktion gebildet werden kann, findet sich in Abschnitt \ref{sec:verkehr/euklidische} \subsection{Euklidische Heuristik} \label{sec:verkehr/euklidische} -Bei Verkehrsnetzen ist die euklidische Distanz eine gängige und zuverlässige Heurstik. Dabei wird zu den effektiven Reisekosten zum aktuellen Knoten die euklidische Distanz bis zum Zielknoten hinzuaddiert. Dadurch wird die Kostenfunktion konsequent nie überschätzt. Dies stellt eine Voraussetzung an eine zulässige Heuristik dar. Unter Verwendung dieser Heuristik gilt der A*-Algorithmus als optimal. +Bei Verkehrsnetzen ist die euklidische Distanz eine gängige und zuverlässige Heuristik. Dabei wird zu den effektiven Reisekosten zum aktuellen Knoten die euklidische Distanz bis zum Zielknoten hinzuaddiert. Dadurch wird die Kostenfunktion konsequent nie überschätzt. Dies stellt eine Voraussetzung an eine zulässige Heuristik dar. Unter Verwendung dieser Heuristik gilt der A*-Algorithmus als optimal. -Bei der euklidischen Heuristik wird die Abschätzfunktion $f(k)$ für jeden Knoten $k$ durch euklidische Distanz zum Zielknoten $b$ gebildet. +Bei der euklidischen Heuristik wird die Abschätzfunktion $f(k)$ für jeden Knoten $k$ durch euklidische Distanz \begin{equation} f(k)=\sqrt{(x_k-x_b)^2+(y_k-y_b)^2} \end{equation} +zum Zielknoten $b$ gebildet. Was bei einem physischen Verkehrsnetz einfach zu bewältigen ist, da Koordinaten von Verkehrsnetzen zur Berechnung der Distanz verwendet werden können, ist bei virtuellen Netzwerken (z.B. Servernetzen) entweder nicht möglich, oder nicht relevant. Hier können hingegen andere Eigenschaften des Netzwerks verwendet werden, auf welche in diesem Paper nicht weiter eingegangen wird. \subsection{Floyd-Warshall-Algorithmus} +\index{Floyd-Warshall-Algorithmus}% Der Floyd-Warshall-Algorithmus, auch Tripel-Algorithmus genannt, wurde erstmals im Jahr 1962 von seinen Namensgebern Robert Floyd und Stephen Warshall vorgestellt. -Der Floyd-Warshall-Algorithmus sucht kürzeste Wege innerhalb eines Graphen. Er ermittelt aber nicht nur die Distanz zwischen zwei Knoten, sondern berechnet die kürzesten Wege zwischen allen Knotenpaaren eines gewichteten Graphen. Somit werden die günstigsten Wege zwischen allen Paaren von Knoten berechnet. Der Floyd-Warhshall-Algrithmus kann ausserdem mit negativen Kantengewichten umgehen, sofern der Graph keinen negativen Kreis (Zyklus) aufweist. Ein Kreis, sprich ein Weg mit identischem Start- und Zielknoten, ist negativ, falls die Summe der Kantengewichte des Weges kleiner als null ist. Ist dies der Fall, führt der Algorithmus zu einem falschen Ergebnis. +Der Floyd-Warshall-Algorithmus sucht kürzeste Wege innerhalb eines Graphen. Er ermittelt aber nicht nur die Distanz zwischen zwei Knoten, sondern berechnet die kürzesten Wege zwischen allen Knotenpaaren eines gewichteten Graphen. Somit werden die günstigsten Wege zwischen allen Paaren von Knoten berechnet. Der Floyd-Warhshall-Algorithmus kann ausserdem mit negativen Kantengewichten umgehen, sofern der Graph keinen negativen Kreis (Zyklus) aufweist. Ein Kreis, sprich ein Weg mit identischem Start- und Zielknoten, ist negativ, falls die Summe der Kantengewichte des Weges kleiner als null ist. Ist dies der Fall, führt der Algorithmus zu einem falschen Ergebnis. +\index{Zyklus}% +\index{Kreis (Graphentheorie)}% \subsection{Anwendung Floyd-Warshall-Algorithmus} @@ -66,6 +98,9 @@ ermittelt. \section{PageRank-Algorithmus} +\index{PageRank-Algorithmus}% +\index{Page, Larry}% +\index{Brin, Sergey}% Der PageRank-Algorithmus wurde von den Gründern von Google, Larry Page und Sergey Brin im Jahr 1996 entwickelt und zum Patent angemeldet. Zwei Jahre später gründeten sie ihr Unternehmen Google Inc. Beim PageRank-Algorithmus handelt es sich nicht um einen Suchalgorithmus, stattdessen werden Knoten aufgrund der Vernetzung des vorliegenden Graphen bewertet. Verwendet wird er beispielsweise um die Verlinkungsstruktur verschiedener Websites des World Wide Web anhand ihrer Struktur zu bewerten und relevante Suchergebnisse zu ermittteln. Der PageRank wird umso höher, je mehr hochwertige Links auf eine Webseite verweisen und je höher die Gewichtung einer Webseite ist, desto grösser ist der Effekt. @@ -84,10 +119,15 @@ Grundsätzlich setzt sich der PageRank Algorithmus mit der Fragestellung auseina -Für ungerichtete Graphen mit $n$ Knoten gilt \begin{equation}A_{i,j}=A_{j,i}\end{equation} und weiter \begin{equation}A_{i,i}=0\quad\forall i\in \left\{1\dots n\right\}\end{equation} +Für ungerichtete Graphen mit $n$ Knoten gilt \begin{equation}A_{i,j}=A_{j,i}\end{equation} und weiter +\begin{equation} +A_{i,i}=0\quad\forall i\in \left\{1\dots n\right\}. +\end{equation} Beim PageRank-Algorithmus wird eine abgewandelte Form der Adjazenz-Matrix verwendet. Dabei werden die Matrix-Einträge spaltenweise durch die jeweilige Spaltensumme geteilt, so entsteht die Link-Matrix -\[ P_{i,j}=\frac{A_{i,j}}{\sum_{k=1}^{n}A_{k,j}} \] +\[ +P_{i,j}=\frac{A_{i,j}}{\sum_{k=1}^{n}A_{k,j}}. +\] Anschliessend multipliziert man diese Matrix $P$ mit einem Spaltenvektor $\Vec{r_0}$ mit $n$ Einträgen, für welchen gilt: \( \Vec{r_0}(i) = \frac{1}{n} \quad\forall i\in \left\{1\dots n\right\} \) Dieser Vektor stellt ein neutrales Ranking dar. Alle Knoten werden gleich gewichtet. @@ -95,4 +135,4 @@ Dadurch erhält man wiederum einen $n$-zeiligen Spaltenvektor $\Vec{r_1}$, der d \( \Vec{r_2} = P\cdot\Vec{r_1} = P\cdot(P\cdot\Vec{r_0}) = P^2\cdot\Vec{r_0}\) und somit allgemein: \( \Vec{r_i} = P^i\cdot\Vec{r_0}\) -Der Vektor $\Vec{r_i}$ konvergiert zu einem Eigenvektor von $P$ der das abschliessende Ranking darstellt. +Der Vektor $\Vec{r_i}$ konvergiert zu einem Eigenvektor von $P$, der das abschliessende Ranking darstellt. diff --git a/buch/papers/verkehr/section2.tex b/buch/papers/verkehr/section2.tex index 527885e..a0e88b6 100644 --- a/buch/papers/verkehr/section2.tex +++ b/buch/papers/verkehr/section2.tex @@ -4,6 +4,7 @@ Um zwei der vorgestellten Suchalgorithmen zu vergleichen, wurden zwei Versuchsreihen erstellt. Dazu wurden in einem ersten Schritt zufällige Netzwerke generiert und anschliessend der Dijkstra- und der A*-Algorithmus auf das Netzwerk angewandt. Dieser Vorgang wurde für die zufällig generierten Netzwerke mit einer Knotenzahl von 10, 20 50, 100, 200, 500 und 1000 je zehnmal wiederholt. Die Anzahl der Knoten im abgesuchten Netzwerk wirkt sich direkt auf die Rechenzeit aus. Der \emph{Dijkstra}-Algorithmus weist eine Zeitkomplexität von $\mathcal{O}(|E|\log{}|V|)$ auf, wobei $E$ die Menge der Kanten (engl. \emph{edges}) und $V$ die Menge der Knoten (engl. \emph{vertices}) des Graphen $G$ darstellt. +\index{Zeitkomplexität}% Für den A*-Algorithmus ist die Zeitkomplexität einerseits abhängig von der verwendeten Heuristik, andererseits aber auch vom vorliegenden Netzwerk selbst. Aus diesem Grund lässt sich keine definitive Angabe zur Zeitkomplexität machen. Die beiden Versuchsreihen unterscheiden sich zudem dahingehend, dass der Start- und Zielknoten bei der ersten Versuchsreihe im Netzwerk diametral gegenüber liegen. Dadurch gehen viele Knoten verloren, welcher \emph{Dijkstra} als uninformierter Suchalgorithmus absuchen würde. In der zweiten Veruschsreihe werden hingegen Start- un Zielpunkt zufällig im Netzwerk ausgewählt. Es wird deshalb erwartet, dass die Unterschiede in der Rechenzeit der beiden Algorithmen in der zweiten Versuchsreihe deutlich ausgeprägter sind. diff --git a/buch/papers/verkehr/section3.tex b/buch/papers/verkehr/section3.tex index 9aa8ae4..50bae2a 100644 --- a/buch/papers/verkehr/section3.tex +++ b/buch/papers/verkehr/section3.tex @@ -1,9 +1,20 @@ \section{Ausblick} \subsection{Optimierungsprobleme bei Graphen} -Das Finden eines kürzesten Pfades, sprich die Minimierung der Summe der Kantengewichte, ist nur eines der Optimierungsprobleme, die sich im Bereich von Graphen aufstellen lassen. Verschiedene, ähnliche Problemstellungen lassen sich teilweise mit denselben Algorithmen lösen. +Das Finden eines kürzesten Pfades, sprich die Minimierung der Summe der Kantengewichte, ist nur eines der Optimierungsprobleme, die sich im Bereich von Graphen aufstellen lassen. +Verschiedene, ähnliche Problemstellungen lassen sich teilweise mit denselben Algorithmen lösen. -Im Bereich vom Computernetzwerken könnte zum Beispiel die Minimierung der Knotenzahl zur Datenübbertragung von Interesse sein. Dabei lässt sich dieses Problem einfach dadurch lösen, dass dem Dijkstra- oder dem A*-Algorithmus anstelle der gewichteten Adjazenz-Matrix (mit Kantengewichten als Einträgen) die ungewichtet Adjazenz-Matrix als Argument übergeben wird. Der gefundene kürzeste Pfad enstpricht der Anzahl benutzter Kanten, bzw. der Anzahl besuchter Knoten. +Im Bereich vom Computernetzwerken könnte zum Beispiel die Minimierung der Knotenzahl zur Datenübbertragung von Interesse sein. +Dabei lässt sich dieses Problem einfach dadurch lösen, dass dem Dijkstra- oder dem A*-Algorithmus anstelle der gewichteten Adjazenz-Matrix (mit Kantengewichten als Einträgen) die ungewichtet Adjazenz-Matrix als Argument übergeben wird. +Der gefundene kürzeste Pfad enstpricht der Anzahl benutzter Kanten, bzw. der Anzahl besuchter Knoten. \subsection{Wahl der Heuristik} -Ein grundlegendes Problem bei der Anwendung des A* oder ähnlicher informierter Suchalgorithmen ist die Wahl der Heurstik. Bei einem physischen Verkehrsnetz kann bspw. die euklidische Distanz problems ermittelt werde. Bei einem regionalen Netzwerk ist die Annahme eines orthogonalen X-Y-Koordinatenetzes absolut ausreichend. Dies gilt z.B. auch für das Vernessungsnetz der Schweiz\footnote{Die aktuelle Schweizer Referenzsystem LV95 benutzt ein E/N-Koordinatennetz, wobei aufgrund zunehmender Abweichung vom Referenzellipsoid bei grosser Entfernung vom Nullpunkt ein Korrekturfaktor für die Höhe angebracht werden muss.} Bei überregionalen Netzwerken (Beispiel: Flugverbindungen) ist hingegen eine Berechnung im dreidimensionalen Raum, oder vereinfacht als Projektion auf das Geoid notwendig. Anonsten ist der Ablauf bei der Ausführung des Algorithmus allerdings identisch. -In nicht-physischen Netzwerken stellt sich jedoch eine zweite Problematik. Da eine physische Distanz entweder nicht ermittelt werden kann, oder aber nicht ausschlaggebend ist, sind andere Netzwerk-Eigenschaften zur Beurteilung beizuziehen. Die Zuverlässigkeit ist dabei aber in den meisten Fällen nicht vergleichbar hoch, wie bei der euklidischen Heuristik. Oftmals werden deshalb bei derartigen Problem auch Algorithmen angewendet, die eine deutlich optimierte Zeitkomplexität aufweisen, dafür aber nicht mit Sicherheit den effizienstesten Pfad finden. +Ein grundlegendes Problem bei der Anwendung des A* oder ähnlicher informierter Suchalgorithmen ist die Wahl der Heurstik. +Bei einem physischen Verkehrsnetz kann bspw.~die euklidische Distanz problems ermittelt werde. +Bei einem regionalen Netzwerk ist die Annahme eines orthogonalen X-Y-Koordinatenetzes absolut ausreichend. +Dies gilt z.~B.~auch für das Vernessungsnetz der Schweiz\footnote{Die aktuelle Schweizer Referenzsystem LV95 benutzt ein E/N-Koordinatennetz, wobei aufgrund zunehmender Abweichung vom Referenzellipsoid bei grosser Entfernung vom Nullpunkt ein Korrekturfaktor für die Höhe angebracht werden muss.}. +Bei überregionalen Netzwerken (Beispiel: Flugverbindungen) ist hingegen eine Berechnung im dreidimensionalen Raum, oder vereinfacht als Projektion auf das Geoid notwendig. +Ansonsten ist der Ablauf bei der Ausführung des Algorithmus allerdings identisch. +In nicht-physischen Netzwerken stellt sich jedoch eine zweite Problematik. +Da eine physische Distanz entweder nicht ermittelt werden kann, oder aber nicht ausschlaggebend ist, sind andere Netzwerk-Eigenschaften zur Beurteilung beizuziehen. +Die Zuverlässigkeit ist dabei aber in den meisten Fällen nicht vergleichbar hoch, wie bei der euklidischen Heuristik. +Oftmals werden deshalb bei derartigen Problem auch Algorithmen angewendet, die eine deutlich optimierte Zeitkomplexität aufweisen, dafür aber nicht mit Sicherheit den effizienstesten Pfad finden. |