diff options
Diffstat (limited to '')
66 files changed, 1860 insertions, 450 deletions
diff --git a/buch/papers/clifford/10_Quaternionen.tex b/buch/papers/clifford/10_Quaternionen.tex index 8945ba8..375c6e7 100644 --- a/buch/papers/clifford/10_Quaternionen.tex +++ b/buch/papers/clifford/10_Quaternionen.tex @@ -5,57 +5,223 @@ % \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 3 dimensionalen Raum. Sie haben, wie die komplexen Zahlen, eine dreh-streckende 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 dreh-streckende Eigenschaft. Sie finden beispielsweise in der Computergraphik und in der Robotik Anwendung. -Die Quaternionen werden so definiert. +Die Quaternionen \begin{align} - q = w + xi + yj + zk; \quad w,x,y,z \in \mathbb{R};\enspace q \in \mathbb{H} + q = w + xi + yj + zk \quad w,x,y,z \in \mathbb{R}\enspace q \in \mathbb{H} \end{align} -Eine Drehstreckung wird dabei mit dieser Formel erreicht. +können dabei eine Drehstreckung mit dieser Formel erreichen \begin{align} \label{QuatRot} \begin{split} &v'' = qvq^{-1};\quad q,v,q^{-1} \in \mathbb{H}\\ - &Re(q) = Re(q^{-1});\enspace Im(q) = -Im(q^-1) + &\operatorname{Re}(q) = \operatorname{Re}(q^{-1})\quad \operatorname{Im}(q) = -\operatorname{Im}(q^{-1}) \end{split} \end{align} -Die Quaternionen besitzen im Gegensatz zu dem komplexen Zahlen 3 imaginäre Einheiten $i,j,k$. Wieso 3? Weil es in der dritten Dimension 3 Drehachsen gibt, anstatt nur eine. Nun haben wir ein kleines Problem. Wie sollen wir die Quaternionen darstellen? Wir bräuchten 4 Achsen für die 3 Imaginären Einheiten und die eine reelle Einheit. Ein weiterer Nachteil in visueller Hinsicht entsteht beim Anwenden eines Quaternion auf einen Vektor. Sie befinden sich nicht im gleichen Raum und müssen zuerst ineinander umgewandelt werden, um damit zu rechnen, wie man bei $v$ in der Formel (\ref{QuatRot}) sieht. +Auffallend ist hier schon die Ähnlichkeit zu dem Kapitel Rotation. 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 der dritten Dimension drei Drehachsen gibt, anstatt nur eine. Wie im Kapitel Rotation 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 der vierten Dimension 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). + +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 eines Quaternion auf einen Vektor. Sie befinden sich nicht im gleichen Raum und müssen zuerst ineinander umgewandelt werden, um damit zu rechnen, wie man bei $v \in \mathbb{H}$ in der Formel (\ref{QuatRot}) sieht. + +\subsection{Geometrische Algebra} +Die geometrische Algebra besitzt die Fähigkeit beide Probleme zu lösen. Die Quaternionen können, wie schon im 2 dimensionalen 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 bilden $\mathbf{e}_{12}, \mathbf{e}_{23}, \mathbf{e}_{31}$. +\begin{definition} + Multivektoren mit Drehstreckenden Eigenschaften in $G_3(\mathbb{R})$ (gleichbedeutend zu Quaternionen) + \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{definition} -\subsection{geometrischen Algebra} -Die geometrische Algebra besitzt die Fähigkeit beide Probleme zu lösen. Die Quaternionen können, wie schon im 2 dimensionalen Fall durch die gerade Grade $\mathbb{G}_3^+ \cong \mathbb{H}$ dargestellt werden. Da wir uns jetzt aber in $\mathbb{G}_3$ befinden haben wir 3 Basisvektoren $e_1, e_2, e_3$ und können somit 3 Bivektoren bilden $e_{12}, e_{23}, e_{31}$. -\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 q \in \mathbb{G}_3^+ -\end{align} 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 darstellen. -\\BILD VEKTOR, QUATERNION IN G3\\ +\begin{figure} + \centering + \begin{tikzpicture} + % Koordinatensystem + \draw[thin,gray!40] (-3,-2) grid (3,3); + \draw[<->] (-3,0)--(3,0) node[right]{$a_1$}; + \draw[<->] (0,-2)--(0,3) node[above]{$a_2$}; + \draw[<->] (3,3)--(-2,-2) node[left]{$a_3$}; + + % v Vektor + \draw[line width=2pt,black,-stealth](0,0)--(2,-1) node[anchor=north]{$\boldsymbol{v}$}; + + % q Quaternion + \draw[line width=0,fill=blue!40] (0,0)--(0.75,0)--(0.75,0.75)--(0,0.75) + node[xshift=0.375cm, yshift=-0.5cm, blue]{$x\boldsymbol{e_{12}}$}; + \draw[->] (0.7,0.55) arc (0:310:0.15); + + \draw[line width=0,fill=blue!40] (0,0)--(-1,-1)--(-1,0.71)--(0,1.71) + node[xshift=-0.5cm, yshift=-1.5cm, blue]{$y\boldsymbol{e_{23}}$}; + \draw[->] (-0.1,1.1) arc (0:310:0.15); + + \draw[line width=0,fill=blue!40] (0,0)--(-0.71,-0.71)--(0.29,-0.71)--(1,0) + node[xshift=-0.7cm, yshift=-0.2cm, blue]{$z\boldsymbol{e_{31}}$}; + \draw[->] (0,-0.5) arc (0:310:0.15); + + % Basisvektoren + \draw[line width=1.5pt,gray,-stealth](0,0)--(1,0) node[anchor=south west]{$\boldsymbol{e_1}$}; + \draw[line width=1.5pt,gray,-stealth](0,0)--(0,1) node[anchor=north west, yshift=0.2cm]{$\boldsymbol{e_2}$}; + \draw[line width=1.5pt,gray,-stealth](0,0)--(-0.71,-0.71) node[anchor=south, yshift=0.2cm]{$\boldsymbol{e_3}$}; + \end{tikzpicture} + \caption{Darstellung eines Quaternion $\mathbf{q}$ und eines Vektors $\mathbf{v}$ im selben Raum} + \label{BildQuaternionen} +\end{figure} Wie schon im 2 dimensionalen Fall beschreibt ein Bivektor, um wie viel der um 90 grad gedrehte orginale Vektor gestreckt wird. Dabei dreht jeder Bivektor den Vektor um eine andere Achse. \\BILD?\\ -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 Einheitsquaternion, welche den Betrag $|q|=1$ haben. Sie rotieren die Objekte bzw. Vektoren lediglich. -\begin{align} - \mathbf{q} = \cos(\alpha) + sin(\alpha)(x\mathbf{e_{12}} + y\mathbf{e_{23}} + z\mathbf{e_{31}}) -\end{align} -wobei definiert ist, dass $x^2+y^2+z^2=1$. Somit beträgt der Betrag immer 1. +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 $|q|=1$ haben. Sie rotieren die Objekte bzw. Vektoren lediglich. +\begin{definition} + Einheitsquaternionen + \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{definition} +Dabei ist definiert, dass $\tilde{x}^2+\tilde{y}^2+\tilde{z}^2=1$. Somit beträgt der Betrag von $\mathbf{q}$ immer 1. \begin{align} - |q| = \sqrt{cos(\alpha)^2 + sin(\alpha)^2(x^2+y^2+z^2) } = \sqrt{cos(\alpha)^2 + sin(\alpha)^2} = 1 + |\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} -Man verwendet um einen Vektor zu drehen wieder die gleiche Formel, wie auch schon im 2 dimensionalen Fall. -\begin{align} \label{QuatRot} +Der Winkel $\alpha$ beschreibt dabei, wie im Bild (...) gezeigt den halben Winkel, um welchen der parallelen Anteil $\mathbf{v_{\perp}}$ des Vektors $\mathbf{v}$ zur kombinierten Bivektorebene $sin(\alpha)^2(\tilde{x}^2+\tilde{y}^2+\tilde{z}^2)$ gedreht wird. + +Um einen Vektor zu drehen, verwendet man wieder die gleiche Formel, wie auch schon im zweidimensionalen Fall. +\begin{align} \label{QuatRotGA} \begin{split} - &v'' = qvq^{-1}\\ - &Re(q) = Re(q^{-1});\enspace Im(q) = -Im(q^-1) + &\mathbf{v}'' = \mathbf{qvq}^{-1}\\ + &\operatorname{Re}(\mathbf{q}) = \operatorname{Re}(\mathbf{q}^{-1});\enspace \operatorname{Im}(\mathbf{q}) = -\operatorname{Im}(\mathbf{q}^-1) \end{split} \end{align} -Es ist wichtig bei Quaternionen für eine reine Drehstreckung mit $q$ und $q^{-1}$ beidseitig zu multiplizieren, sonst werden die senkrechten Anteile zu den Bivektorebenen ebenfalls beeinflusst, wie man im Kapitel Rotation bei der Formel (\ref{RotAufPerpPar}) sehen kann +Es ist wichtig bei Quaternionen für eine reine Drehstreckung mit $q$ und $q^{-1}$ beidseitig zu multiplizieren, sonst werden die senkrechten Anteile zu den Bivektorebenen ebenfalls beeinflusst, wie man im Kapitel Rotation bei der Formel (\ref{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 einen Einheitsquaternion welcher um die Orientierte Ebene $\mathbf{e}_{23}$ um 90 Grad dreht + \begin{align} + \mathbf{q}_{23} &= \cos(\pi/4) + sin(\pi/4)(1\mathbf{e}_{23}) = e^{(\pi/4)\mathbf{e}_{23}} &= 0.71 + 0.71\mathbf{e}_{23}\\ + \mathbf{q}_{23}^{-1} &&= 0.71 - 0.71\mathbf{e}_{23} + \end{align} + und danach Einheitsquaternion welcher um die Orientierte Ebene $\mathbf{e}_{31}$ um 90 Grad dreht + \begin{align} + \mathbf{q}_{31} &= \cos(\pi/4) + sin(\pi/4)(1\mathbf{e}_{31}) = e^{(\pi/4)\mathbf{e}_{31}} &= 0.71 + 0.71\mathbf{e}_{31}\\ + \mathbf{q}_{31}^{-1} &&= 0.71 - 0.71\mathbf{e}_{31} + \end{align} + Um die vollständige Rotation zu beschreiben können die Einheitsquaternion multipliziert werden, wobei die Reihenfolge der Ausführung beachtet werden muss + \begin{align} \label{FormelBeispielQuaternion} + \mathbf{q} &= \mathbf{q}_{31}\mathbf{q}_{23} = (0.71 + 0.71\mathbf{e}_{31})(0.71 + 0.71\mathbf{e}_{23}) &= 0.5 + 0.5\mathbf{e}_{31} + 0.5 \mathbf{e}_{23} + 0.5 \mathbf{e}_{12}\\ + \mathbf{q}^{-1} &= \mathbf{q}_{23}^{-1}\mathbf{q}_{31}^{-1} = (0.71 - 0.71\mathbf{e}_{23})(0.71 - 0.71\mathbf{e}_{31}) &= 0.5 - 0.5\mathbf{e}_{31} - 0.5 \mathbf{e}_{23} - 0.5 \mathbf{e}_{12} + \end{align} + Wenn wir nun den Quaternion $\mathbf{q}$ auf den Vektor $\mathbf{v}$ anwenden + \begin{align} + \mathbf{v}'' = \mathbf{qvq}^{-1} &= (0.5 + 0.5\mathbf{e}_{31} + 0.5 \mathbf{e}_{23} + 0.5 \mathbf{e}_{12})(1\mathbf{e}_2)(0.5 - 0.5\mathbf{e}_{31} - 0.5 \mathbf{e}_{23} - 0.5 \mathbf{e}_{12})\\ + &= (0.5\mathbf{e}_2 + 0.5 \mathbf{e}_{123} - 0.5 \mathbf{e}_3 + 0.5 \mathbf{e}_1)(0.5 - 0.5\mathbf{e}_{31} - 0.5 \mathbf{e}_{23} - 0.5 \mathbf{e}_{12})\\ + &= (0.25 + 0.25 + 0.25 + 0.25)\mathbf{e}_1 + (0.25 + 0.25 - 0.25 - 0.25)\mathbf{e}_2 +\\ &(-0.25 + 0.25 - 0.25 + 0.25)\mathbf{e}_3 + (0.25 - 0.25 - 0.25 + 0.25)\mathbf{e}_{123}\\ + &= 1e_1 + \end{align} + Anders betrachtet könnte man von der Formel \eqref{FormelBeispielQuaternion} sehen, dass der Drehwinkel + \begin{align} + \alpha = \arccos(w) = \arccos(0.5) = 60° + \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° rotiert wird während der senkrechte Anteil unverändert bleibt +\end{beispiel} -\subsection{Gimbal-Lock und Interpolation} - -\subsection{Fazit} -andere Darstellungsweise. Besser für Verständnis => komplexe Zahlen erscheinen ähnlicher zu Quaternionen? Eine Sprache für alle Geometrische Probleme +\begin{figure} + \centering + \begin{tikzpicture} + % Koordinatensystem + \draw[thin,gray!40] (-3,-2) grid (3,3); + \draw[<->] (-3,0)--(3,0) node[right]{$a_1$}; + \draw[<->] (0,-2)--(0,3) node[above]{$a_2$}; + \draw[<->] (3,3)--(-2,-2) node[left]{$a_3$}; + + % q Quaternion + \draw[line width=0,fill=blue!40] (0,0)--(1.41,0)--(1.41,1.41)--(0,1.41) + node[xshift=0.375cm, yshift=-0.5cm, blue]{$x\boldsymbol{e_{12}}$}; + \draw[->] (1.35, 1.2) arc (0:310:0.15); + + \draw[line width=0,fill=blue!40] (0,0)--(-1,-1)--(-1,0.41)--(0,1.41) + node[xshift=-0.5cm, yshift=-1.5cm, blue]{$y\boldsymbol{e_{23}}$}; + \draw[->] (-0.65,-0.5) arc (0:310:0.15); + + \draw[line width=0,fill=blue!40] (0,0)--(-1,-1)--(0.41,-1)--(1.41,0) + node[xshift=-0.7cm, yshift=-0.2cm, blue]{$z\boldsymbol{e_{31}}$}; + \draw[->] (0.4,-0.8) arc (0:310:0.15); + + % Basisvektoren + \draw[line width=1.5pt,gray,-stealth](0,0)--(2,0) node[anchor=south west]{$\boldsymbol{e_1}$}; + \draw[line width=1.5pt,gray,-stealth](0,0)--(0,2) node[anchor=north west, yshift=0.2cm]{$\boldsymbol{e_2}$}; + \draw[line width=1.5pt,gray,-stealth](0,0)--(-1.41,-1.41) node[anchor=south, yshift=0.2cm]{$\boldsymbol{e_3}$}; + + % v Vektor + \draw[line width=2pt,black,-stealth](-0.05,0)--(-0.05,2) node[anchor=east]{$\boldsymbol{v}$}; + % v'' Vektor + \draw[line width=2pt,black,-stealth](0,0.05)--(2,0.05) node[anchor=north]{$\boldsymbol{v}''$}; + \end{tikzpicture} + \caption{Beispiel für Drehung um 90 Grad je um die $\mathbf{e}_1$- und $\mathbf{e}_2$-Achse.} + \label{BildQuaternionBeispiel} +\end{figure} +\begin{figure} + \centering + \begin{tikzpicture} + % q Quaternion + \draw[line width=0,fill=blue!40] (-0.75,-1)--(1.5,-0.5)--(0.55,1.35)--(-1.5,1) + node[xshift=0.375cm, yshift=-0.5cm, blue]{$\boldsymbol{q}$}; + \draw[->] (-0.7, 0.5) arc (310:0:0.15); + + % Koordinatensystem + \draw[thin,gray!40] (-3,-2) grid (3,3); + \draw[<->] (-3,0)--(3,0) node[right]{$a_1$}; + \draw[<->] (0,-2)--(0,3) node[above]{$a_2$}; + \draw[<->] (3,3)--(-2,-2) node[left]{$a_3$}; + + % Basisvektoren + \draw[line width=1.5pt,gray,-stealth](0,0)--(2,0) node[anchor=south west]{$\boldsymbol{e_1}$}; + \draw[line width=1.5pt,gray,-stealth](0,0)--(0,2) node[anchor=north west, yshift=0.2cm]{$\boldsymbol{e_2}$}; + \draw[line width=1.5pt,gray,-stealth](0,0)--(-1.41,-1.41) node[anchor=south, yshift=0.2cm]{$\boldsymbol{e_3}$}; + + % v Vektor + \draw[line width=2pt,black,-stealth](-0.05,0)--(-0.05,2) node[anchor=east]{$\boldsymbol{v}$}; + % vpar Vektor + \draw[line width=2pt,red,-stealth](0,0)--(-0.33,1.25) node[anchor=east]{$\boldsymbol{v_{\parallel}}$}; + % vperp Vektor + \draw[line width=2pt,green,-stealth](-0.33,1.25)--(0,2) node[anchor=east, xshift = -0.05, yshift = -0.3cm]{$\boldsymbol{v_{\perp}}$}; + % v'' Vektor + \draw[line width=2pt,black,-stealth](0,0.05)--(2,0.05) node[anchor=north, xshift = 0.25cm]{$\boldsymbol{v}''$}; + % vpar'' Vektor + \draw[line width=2pt,red,-stealth](0,0)--(1.66,-0.75) node[anchor=east, yshift = -0.2cm, xshift = -0.1cm]{$\boldsymbol{v_{\parallel}''}$}; + % vperp'' Vektor + \draw[line width=2pt,green,-stealth](1.66,-0.75)--(2,0) node[anchor=east, xshift = 0.5cm, yshift = -0.65cm]{$\boldsymbol{v_{\perp}''}$}; + + \coordinate (A) at (0,0); + \coordinate (B) at (-0.33,1.25); + \coordinate (C) at (1.66,-0.75); + \tikzset{anglestyle/.style={angle eccentricity=2, draw, thick, angle radius=0.75cm, purple}} + \draw pic ["120° $=2\alpha$", anglestyle] {angle = C--A--B}; + \end{tikzpicture} + \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} -\begin{tikzpicture} - \draw[thin,gray!40] (-3,-3) grid (3,3); - \draw[<->] (-3,0)--(3,0) node[right]{$x$}; - \draw[<->] (0,-3)--(0,3) node[above]{$y$}; - \draw[line width=2pt,blue,-stealth](0,0)--(1,1) node[anchor=south west]{$\boldsymbol{u}$}; - \draw[line width=2pt,red,-stealth](0,0)--(-1,-1) node[anchor=north east]{$\boldsymbol{-u}$}; -\end{tikzpicture}
\ No newline at end of file +\subsection{Interpolation} +In der Computergrafik wird Interpolation verwendet, um eine flüssige Drehbewegung zu erreichen. Dabei wird die gewünschte Drehbewegungen des Objektes in kleinere aufgeteilt. 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 $R$ dargestellt werden. + \begin{align} + \begin{split} + &R = R_z(\gamma) R_y(\beta) R_x(\alpha)\\ + &R = + \begin{pmatrix} + \cos(\gamma) & -\sin(\gamma) & 0\\ \sin(\gamma) & \cos(\gamma) & 0 \\ 0 & 0 & 1 + \end{pmatrix} + \begin{pmatrix} + \cos(\beta) & 0 & \sin(\beta)\\ 0 & 1 & 0 \\ -\sin(\beta) & 0 & \cos(\beta) + \end{pmatrix} + \begin{pmatrix} + 1 & 0 & 0 \\ 0 & \cos(\alpha) & -\sin(\alpha)\\ 0 & \sin(\alpha) & \cos(\alpha) + \end{pmatrix} + \end{split} + \end{align} + 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 (REF zu BILD) sehen. Die Matrix ganz links 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 selber dreht. 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 Andererseits mit den Quaternionen, welche die besondere Eigenschaft haben, dass eine Drehung immer um die globale Achsen ausgeführt wird, egal in welcher Rotationsposition 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. +\subsection{Gimbal-Lock} +Ein weiterer Nachteil der Eulerschen Winkel ist das Gimbal-Lock. Es entsteht dann, wenn der äussere Ring Deckungsgleich über denn Inneren gedreht wird. 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 das bei älteren Spielen dann gesehen, wenn plötzlich Gliedmassen bei den Spielermodellen in unnatürlichen Richtungen gesprungen sind. +\subsection{Fazit} +andere Darstellungsweise. Besser für Verständnis => komplexe Zahlen erscheinen ähnlicher zu Quaternionen? Eine Sprache für alle Geometrische Probleme
\ No newline at end of file diff --git a/buch/papers/clifford/6_Dirac-Matrizen.tex b/buch/papers/clifford/6_Dirac-Matrizen.tex deleted file mode 100644 index 6417bb3..0000000 --- a/buch/papers/clifford/6_Dirac-Matrizen.tex +++ /dev/null @@ -1,7 +0,0 @@ -% -% einleitung.tex -- Beispiel-File für die Einleitung -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Dirac-Matrizen} -\rhead{Dirac-Matrizen} diff --git a/buch/papers/clifford/6_PauliMatrizen.tex b/buch/papers/clifford/6_PauliMatrizen.tex new file mode 100644 index 0000000..e41275a --- /dev/null +++ b/buch/papers/clifford/6_PauliMatrizen.tex @@ -0,0 +1,128 @@ +% +% einleitung.tex -- Beispiel-File für die Einleitung +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Pauli-Matrizen} +\rhead{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} +\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. +\begin{definition} \label{def:defPauli} + Die Matrizen + \begin{align} \label{Pauli} + \mathbf{e}_0 = E = + \begin{pmatrix} + 1 & 0 \\ + 0 & 1 + \end{pmatrix},\quad + \mathbf{e}_1 = + \begin{pmatrix} + 0 & 1 \\ + 1 & 0 + \end{pmatrix},\quad + \mathbf{e}_2 = + \begin{pmatrix} + 0 & -j \\ + j & 0 + \end{pmatrix},\quad + \mathbf{e}_3 = + \begin{pmatrix} + 1 & 0 \\ + 0 & -1 + \end{pmatrix} + \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. +\begin{definition} \label{def:defPauli2} + Die Bivektoren und Trivektoren hergeleitet aus den Pauli-Matrizen sind + \begin{align} \label{Pauli2} + \mathbf{e}_{12} = + \begin{pmatrix} + j & 0 \\ + 0 & -j + \end{pmatrix}\quad + \mathbf{e}_{23} = + \begin{pmatrix} + 0 & j \\ + j & 0 + \end{pmatrix}\quad + \mathbf{e}_{31} = + \begin{pmatrix} + 0 & 1 \\ + -1 & 0 + \end{pmatrix}\enspace\text{und}\enspace + \mathbf{e}_{123} = + \begin{pmatrix} + j & 0 \\ + 0 & j + \end{pmatrix}. + \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} + \mathbf{e}_1^2 &= + \begin{pmatrix} + 0 & 1 \\ + 1 & 0 + \end{pmatrix}^2 = + \begin{pmatrix} + 1 & 0 \\ + 0 & 1 + \end{pmatrix}= \mathbf{e}_0 \quad\text{und}\\ + \mathbf{e}_{12}^2 &= + \begin{pmatrix} + j & 0 \\ + 0 & -j + \end{pmatrix}^2 = + \begin{pmatrix} + -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 herausgelesen. +\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 + \begin{align} + M = + \begin{pmatrix} + (a_0+a_3) + (a_{12}+a_{123})j & (a_1+a_{31})+(-a_2+a_{23})j \\ + (a_1-a_{31})+(a_2+a_{23})j & (a_0-a_3)+(-a_{12}+a_{123})j + \end{pmatrix}.\label{MultivektorMatirx} + \end{align} +\end{hilfssatz} +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{pmatrix} + 1 & 0 \\ + 0 & -1j + \end{pmatrix} + \end{align} + soll als Multivektor in der Form \eqref{MultiVektorAllg} geschrieben werden. Dafür entnehmen wir aus \eqref{MultivektorMatirx} die Gleichungen + \begin{align} + 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} + aus denen man auf + \begin{align} + 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} + schliessen kann. Da die restlichen Realteile und Imaginärteile 0 sind, werden die anderen Anteile ebenfalls 0 sein. Daher ist + \begin{align} + 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} +\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 diff --git a/buch/papers/clifford/7_Reflektion.tex b/buch/papers/clifford/7_Reflektion.tex index d4942e0..bdfb4e8 100644 --- a/buch/papers/clifford/7_Reflektion.tex +++ b/buch/papers/clifford/7_Reflektion.tex @@ -3,31 +3,81 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Reflektion/ Spiegelung} -\rhead{Reflektion/ Spiegelung} -Die Spiegelung ist eine grundlegende, geometrische Operation, aus welcher man weitere, wie beispielsweise die später beschriebene Rotation, ableiten kann. Da die Geometrische Algebra für geometrische Anwendungen ausgelegt ist, sollte die Reflektion auch eine einfache, praktische Formulierung besitzen. \\HIER BILD -\subsection{linearen Algebra} -Aus der linearen Algebra ist bekannt, dass man eine Reflektion wie folgt beschreiben kann. -\begin{align} \label{RefLinAlg} - \mathbf{v^{'}} = \mathbf{v} - 2 \cdot \mathbf{v_{\perp u}} -\end{align} -Dabei stellt $\mathbf{u}$ die Spiegelachse dar. -Es scheint für diese Formel aber umständlich zu sein, weitere Reflektionen, mit weiteren Spiegelachsen, anzufügen. Man kann die Abbildung des Vektors auf den Reflektierten Vektor auch als Matrix schreiben, welche aus den Komponenten des zu der Spiegelachse orthonormalen Vektors $\mathbf{\hat{n}}$ besteht. -\\MATRIZEN O(2) und O(3) zeigen\\ -Diese Matrizen gehören der Matrizengruppe $O(n)$ an.... -\subsection{geometrischen Algebra} -Die Geometrische Algebra leitet aus der obigen Formel (\ref{RefLinAlg}) eine einfache und intuitive Form her, welche auch für weitere Operationen einfach erweitert werden kann. +\section{Spiegelung} +\rhead{Spiegelung} + +Die Spiegelung ist eine grundlegende, geometrische Operation, aus welcher man weitere, wie beispielsweise die später beschriebene Rotation, 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} + \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=2pt,black,-stealth](0,0)--(2,2) node[anchor=south east]{$\boldsymbol{v}$}; + \draw[line width=1.5pt,blue,-stealth](0,0)--(0,2.5) node[anchor=south east]{$\boldsymbol{u}$}; + \draw[line width=2pt,black,-stealth](0,0)--(-2,2) node[anchor=south east]{$\boldsymbol{v'}$}; + \draw[line width=1.5pt,gray,-stealth](0,0)--(1,0) node[anchor=north]{$\boldsymbol{e_1}$}; + \draw[line width=1.5pt,gray,-stealth](0,0)--(0,1) node[anchor=north east]{$\boldsymbol{e_2}$}; + \draw[line width=1.5pt,red,-stealth](0,2)--(2,2) node[xshift=-1cm, yshift= + 0.25cm]{$\boldsymbol{v_{\perp u}}$}; + \draw[line width=1.5pt,red,-stealth](-2,2)--(0,2) node[xshift=-1cm, yshift= + 0.25cm]{$\boldsymbol{v_{\perp u}}$}; + \draw[line width=1.5pt,purple,-stealth](0,1.5)--(1,1.5) node[xshift=-0.5cm, yshift=-0.25cm]{$\boldsymbol{\hat{n}}$}; + \end{tikzpicture} + \caption{Spiegelung des Vektors \textbf{v} an Spiegelachse bzw. Vektor \textbf{u}} + \label{BildSpiegelung} +\end{figure} + +\subsection{Linearen Algebra} +Aus der linearen Algebra ist bekannt, dass man eine Spiegelung an einer Ebene wie folgt beschreiben kann. +\begin{definition} + Die Spiegelungsgleichung in der linearen Algebra mit dem Normalenvektor $\mathbf{\hat{n}}$ zur Spiegelebene ist + \begin{equation} \label{RefLinAlg} + \mathbf{v^{'}} = \mathbf{v} - 2 \cdot \mathbf{v_{\parallel \hat{n}}} = \mathbf{v} - 2 \cdot \mathbf{v_{\perp u}}. + \end{equation} + Per Definition sind $\mathbf{v_{\parallel \hat{n}}} = \mathbf{v_{\perp u}}$. In der geometrischen Algebra verwenden wir aber in den Formeln Vektoren, welche Spiegelachsen, nicht Spiegelebenen, repräsentieren. +\end{definition} +Es scheint für diese Formel aber umständlich zu sein, weitere Spiegelungen mit weiteren Spiegelebenen anzufügen. Man kann diese Abbildung aber auch als Matrix schreiben. Sei $\mathbf{\hat{n}}$ ein Normalenvektor auf die Spiegelungs-Achse bzw. -Ebene, also $\mathbf{\hat{n}}\perp \mathbf{u}$, und sei ausserdem normiert $|\mathbf{\hat{n}}| = 1$, dann kann man die Spiegelung durch die Matrix \begin{align} - \mathbf{v'} = \mathbf{uvu^{-1}} + S = E - 2\dfrac{1}{|\mathbf{n}|^2}\mathbf{nn}^t +\end{align} +beschrieben werden. In der zweiten und dritten Dimension ergibt die Berechnung +\begin{align} \label{Spiegelmatrizen} + S_2 = \begin{pmatrix} + 1-2n_1^2 & -2n_1n_2 \\ + -2n_1n_2 & 1-2n_2^2 + \end{pmatrix} \quad + S_3 = \begin{pmatrix} + 1-2n_1^2 & -2n_1n_2 & -2n_1n_3\\ + -2n_1n_2 & 1-2n_2^2 & -2n_2n_3\\ + -2n_1n_3 & -2n_2n_3 & 1-2n_3^2\\ + \end{pmatrix}. \end{align} -wobei die Inverse eines Vektors so definiert ist, dass multipliziert mit sich selbst das neutrale Element 1 ergibt. +Diese Spiegelmatrizen gehören der orthogonalen Matrizengruppe $S\in \text{O}(n)$ an. Die Matrizengruppe $\text{O}(n)$ haben die Eigenschaft $S^t S = E$, was bedeutet, dass die Länge und Winkel bei der Abbildung beibehalten bleiben. Zusätzlich sind die Spiegelmatrizen symmetrisch, es gilt $S^t = S$. Somit liefert zweimal dieselbe Spiegelung wieder die identische Abbildung, wie man aus \begin{align} - u^{-1} = \dfrac{u}{|u|^2} \Rightarrow uu^{-1} = 1 + S^t S = S^2 = E \end{align} -verwendet man für $\mathbf{u}$ nur einen Einheitsvektor $\mathbf{\hat{u}}$, welcher die Länge 1 besitzt, wird somit die Formel reduziert zu einer beidseitigen Multiplikation von $\mathbf{\hat{u}}$. +schliessen kann. + +\subsection{Geometrische Algebra} +Um die folgenden Formeln zu verstehen, definieren wir zuerst die Inverse eines Vektors, welche in dieser Form nicht in der linearen Algebra nicht existiert. +\begin{definition} + Die Inverse eines Vektors wird definiert als + \begin{align} + \mathbf{u}^{-1} = \dfrac{\mathbf{u}}{|\mathbf{u}|^2} \Rightarrow \mathbf{uu}^{-1} = \dfrac{\mathbf{u}^2}{|\mathbf{u}|^2} = 1. + \end{align} + Wie schon aus anderen algebraischen Strukturen bekannt, ergibt ein Element, hier $\mathbf{u}$, multipliziert mit dessen Inversen, hier $\mathbf{u}^{-1}$, das neutrale Element der Struktur, hier 1. +\end{definition} +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 Spiegelungsgleichung in der geometrischen Algebra mit der Spiegelachse $\mathbf{u}$ ist definiert als + \begin{align}\label{RefGA} + \mathbf{v}' = \mathbf{uvu}^{-1} + \end{align} +\end{definition} + +verwendet man für $\mathbf{u}$ nur einen Einheitsvektor $\mathbf{\hat{u}}$, welcher die Länge 1 besitzt, wird die Gleichung zu \begin{align} \mathbf{v'} = \mathbf{\hat{u}v\hat{u}} \end{align} -Im Gegensatz zu den Abbildungen in der linearen Algebra, welche in jeder anderen Dimension durch andere Matrizen 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 keine Multiplikation von Vektoren definiert ist. -\\BEISPIEL?
\ 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 der dritten Dimension keine Multiplikation von Vektoren definiert ist.
\ No newline at end of file diff --git a/buch/papers/clifford/8_Rotation.tex b/buch/papers/clifford/8_Rotation.tex index c2928bf..6a3251a 100644 --- a/buch/papers/clifford/8_Rotation.tex +++ b/buch/papers/clifford/8_Rotation.tex @@ -5,96 +5,166 @@ % \section{Rotation} \rhead{Rotation} -Eine Rotation kann man aus zwei, aufeinanderfolgende Reflektionen bilden. Das war für mich zuerst eine verwirrende Aussage, da man aus den vorherig gezeigten Formeln annehmen könnte, dass die Reflektion schon für eine Drehung ausreicht. Obwohl sich die Längen, Winkel und Volumen sich bei einer Reflektion, wie bei einer Rotation, nicht ändert, sind sie doch verschieden, da die Orientierung bei der Reflektion invertiert wird. Stellt man sich beispielsweise ein Objekt in 3D vor und spiegelt dieses an einer Fläche, dann ist es unmöglich nur durch eine Rotation (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 zwei mal invertiert wurde. -\\BILD -\subsection{linearen Algebra} -In der linearen Algebra haben wir Drehungen durch die Matrizen der Gruppe $SO(n)$ beschrieben. Die SO(2) werden beispielsweise auf diese Weise gebildet. +Eine Rotation kann man aus zwei aufeinanderfolgenden Spiegelungen bilden. Das wird für einige 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 Rotation, nicht ändert, sind sie doch verschieden, da die Orientierung bei der Spiegelung invertiert wird. Stellt man sich beispielsweise ein Objekt im Dreidimensionalen vor und spiegelt dieses an einer Fläche, dann ist es unmöglich nur durch eine Rotation (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. +\\(Hier wird noch ein Bild für das Verständnis eingefügt) + +\begin{figure} + \centering + \begin{tikzpicture} + \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=2pt,black,-stealth](0,0)--(2,2) node[anchor=south east]{$\boldsymbol{v}$}; + \draw[line width=1.5pt,blue,-stealth](0,0)--(0,2.5) node[anchor=south east]{$\boldsymbol{u}$}; + \draw[line width=2pt,black,-stealth](0,0)--(-2,2) node[anchor=south east]{$\boldsymbol{v'}$}; + \draw[line width=1.5pt,red,-stealth](0,0)--(-2.31, 0.957) node[anchor=south east]{$\boldsymbol{w}$}; + \draw[line width=2pt,black,-stealth](0,0)--(-2.828,0) node[anchor=south east]{$\boldsymbol{v''}$}; + \draw[line width=1.5pt,gray,-stealth](0,0)--(1,0) node[anchor=north]{$\boldsymbol{e_1}$}; + \draw[line width=1.5pt,gray,-stealth](0,0)--(0,1) node[anchor=north west]{$\boldsymbol{e_2}$}; + + \coordinate (A) at (0,0); + \coordinate (B) at (0,2.5); + \coordinate (C) at (-2.31, 0.957); + \tikzset{anglestyle/.style={angle eccentricity=1.25, draw, thick, angle radius=1.25cm}} + \draw pic ["$\theta$", anglestyle] {angle = B--A--C}; + \end{tikzpicture} + \caption{Rotation des Vektors $\textbf{v}$ um $2\theta$} + \label{BildRotation} +\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} D = \begin{pmatrix} - cos(\alpha) & sin(\alpha) \\ - -sin(\alpha) & cos(\alpha) - \end{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. Diese 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. +\\(BILD Mengen Spezieller Matrizen von Herrn Müller Präsentation) -\subsection{geometrischen Algebra} -Da wir jetzt aus der Geometrie wissen, dass eine Rotation durch zwei Reflektionen gebildet werden kann, können wir die Rotation einfach herleiten. -\begin{align} \label{rotGA} - v'' = wv'w^{-1} = w(uvu^{-1})w^{-1} -\end{align} -Die Vektoren $\mathbf{w}$ und $\mathbf{u}$ bilden hier wiederum die Spiegelachsen. Diese versuchen wir jetzt noch zu verbessern. Dazu leiten wir zuerst die bekannte Polarform her. (Anmerkung: Hier wird eine Rotation auf der $\mathbf{e_{12}}$ Ebene hergeleitet. Weitere Drehungen können in höheren Dimensionen durch Linearkombinationen von Drehungen in den $\mathbf{e_{ij}}, i\not=j$ Ebenen erreicht werden) -\begin{align} - \mathbf{w} = |w| \left[\cos(\theta_w) e_1 + \sin(\theta_w) e_2\right] -\end{align} -Dabei können wir ausnützen, dass $e_1^2 = 1$ ist. Was nichts ändert wenn wir es einfügen. Zudem klammern wir dann $e_1$ aus. +\subsection{Geometrische Algebra} +Da wir jetzt aus der Geometrie wissen, dass eine Rotation durch zwei Spiegelungen gebildet werden kann, können wir die Rotation mit der Formel \eqref{RefGA} einfach herleiten. +\begin{satz} + Eine Rotation + \begin{align} \label{rotGA} + \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} + lässt sich durch zwei nacheinander auf einen Vektor $\mathbf{v}$ angewendete Spiegelungen beschreiben. +\end{satz} +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}_{12}$ Ebene liegen. Weitere Drehungen können in höheren Dimensionen durch Linearkombinationen von Drehungen in den $\mathbf{e}_{ij}, i\not=j$ Ebenen erreicht werden. Für die Herleitung erweitern wir nun als erstes die Polarform \begin{align} - \mathbf{w} = |w| \left[\cos(\theta_w) e_1 + \sin(\theta_w) e_1e_1e_2\right] + \mathbf{w} = |\mathbf{w}| \left(\cos(\theta_w) \mathbf{e}_1 + \sin(\theta_w) \mathbf{e}_2\right) \end{align} -\begin{align} \label{e1ausklammern} - \mathbf{w} = |w|e_1\left[\cos(\theta_w)+ \sin(\theta_w) e_{12}\right] +eines Vektors mit $\mathbf{e}_1^2 = 1$ 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), \end{align} -Durch die Reihenentwicklung ist es uns jetzt möglich den Term in eckigen Klammern mit der e-Funktion zu schreiben. +um dann $\mathbf{e}_1$ \begin{align} - \mathbf{w} = |w|\mathbf{e_1} e^{\theta_w \mathbf{e_{12}}} + \mathbf{w} = |\mathbf{w}|\mathbf{e}_1\left(\cos(\theta_w)+ \sin(\theta_w) \mathbf{e}_{12}\right) \label{ExponentialGA} \end{align} -Man kann es so interpretieren, dass der Einheitsvektor $e_1$ um die Länge w gestreckt und um $theta_w$ gedreht wird. -Nun werden wir den Effekt von zwei aneinandergereihten Vektoren $(wu)$ betrachten. +ausklammern zu können. Die Ähnlichkeit des Klammerausdrucks zu der Eulerschen Formel bei den Komplexen Zahlen ist nun schon gut erkennbar. Versuchen wir nun mithilfe der Reihenentwicklungen \begin{align} - \mathbf{wu} = |w|\mathbf{e_1} e^{\theta_w \mathbf{e_{12}}}||u||\mathbf{e_1} e^{\theta_u \mathbf{e_{12}}} -\end{align} -Um die beiden $\mathbf{e_1}$ zu kürzen, können wir die Reihenfolge des exponential Terms mit $\mathbf{e_1}$ wechseln, indem man bei der Gleichung (\ref{e1ausklammern}), anstatt mit $\mathbf{e_1e_1e_2}$ mit $\mathbf{e_2e_1e_1}$ erweitert. -\begin{align} - \mathbf{w} = |w|\left[\cos(\theta_w)+ \sin(\theta_w) \mathbf{e_2e_1}\right]\mathbf{e_1} + \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} -Da $\mathbf{e_2e_1 = -e_{12}}$ können wir einfach den Winkel negieren. -Jetzt können wir wieder $e_1e_1 = 1$ kürzen. Die Längen können als Skalare beliebig verschoben werden und die exponential Terme zusammengefasst werden. +den Zusammenhang auch hier herzustellen. Verwenden wir jetzt noch die Eigenschaft, dass $\mathbf{e}_{12}^2=-1, \enspace\mathbf{e}_{12}^3=-\mathbf{e}_{12}, \dots$, bei dem Klammerausdruck in Formel \eqref{ExponentialGA} \begin{align} - \mathbf{wu} = |w||u|e^{-\theta_w \mathbf{e_{12}}}\mathbf{e_1}\mathbf{e_1} e^{\theta_u \mathbf{e_{12}}} + \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\\ + &= 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 + \label{ExponentialGA2} \end{align} +dann sieht man die Übereinstimmung mit der Reihenentwicklung der Exponentialfunktion \begin{align} - \mathbf{wu} = |w||u|e^{(\theta_u-\theta_w) \mathbf{e_{12}}} + &e^{\theta_w\mathbf{e}_{12}}=\sum _{n=0}^{\infty }{\frac {(\theta_w\mathbf{e}_{12})^{n}}{n!}}={\frac {(\theta_w\mathbf{e}_{12})^{0}}{0!}}+{\frac {(\theta_w\mathbf{e}_{12})^{1}}{1!}}+{\frac {(\theta_w\mathbf{e}_{12})^{2}}{2!}}+{\frac {(\theta_w\mathbf{e}_{12})^{3}}{3!}}+\cdots\\ + &\Rightarrow \mathbf{w} = |w|\mathbf{e}_1 e^{\theta_w \mathbf{e}_{12}} = |w|\mathbf{e}_1\left(\cos(\theta_w)+ \sin(\theta_w) \mathbf{e}_{12}\right). \end{align} -der Term $\mathbf{u^{-1}w^{-1}}$ kann durch die selbe Methode zusammengefasst werden. +Man 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. +Bei den komplexen Zahlen würden man vom Punkt 1 anstatt $\mathbf{e}_1$ ausgehen. +\subsubsection{Vektormultiplikation} +Nun werden wir das Produkt von zwei Vektoren $\mathbf{wu}$ \begin{align} - \mathbf{u^{-1}w^{-1}} = \dfrac{1}{|w||u|}e^{(\theta_w-\theta_u) \mathbf{e_{12}}} + \mathbf{wu} = |\mathbf{w}|\mathbf{e}_1 e^{\theta_w \mathbf{e}_{12}}|\mathbf{u}|\mathbf{e}_1 e^{\theta_u \mathbf{e}_{12}} \end{align} -Dabei definieren wir den Winkel zwischen den Vektoren $\mathbf{w}$ und $\mathbf{u}$ als $\theta = \theta_w - \theta_u$. Setzten wir nun unsere neuen Erkenntnisse in die Gleichung (\ref{rotGA}) ein. -\begin{align} - \mathbf{v''} = |w||u|e^{-\theta \mathbf{e_{12}}} v \dfrac{1}{|w||u|}e^{\theta \mathbf{e_{12}}} +so umformen, dass wir eine bessere Darstellung erhalten. 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}, anstatt mit $\mathbf{e}_1\mathbf{e}_1\mathbf{e}_2$ mit $\mathbf{e}_2\mathbf{e}_1\mathbf{e}_1$ erweitern +\begin{align} + \mathbf{w} &= |\mathbf{w}|\left(\cos(\theta_w)+ \sin(\theta_w) \mathbf{e}_2\mathbf{e}_1\right)\mathbf{e}_1\\ + &= |\mathbf{w}|e^{\theta_w \mathbf{e}_{21}}\mathbf{e}_1\\ + &= |\mathbf{w}|e^{-\theta_w \mathbf{e}_{12}}\mathbf{e}_1 \end{align} -HIER DEFINITION/IST WICHTIGE FORMEL +und umstrukturiert wieder in die Vektorproduktformel einsetzen \begin{align} - \mathbf{v''} = e^{-\theta \mathbf{e_{12}}} v e^{\theta \mathbf{e_{12}}} -\end{align} -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. -\begin{align} \label{RotAufPerpPar} - \mathbf{v''} = e^{-\theta \mathbf{e_{12}}} (\mathbf{v_\perp + v_\parallel}) e^{\theta \mathbf{e_{12}}} + \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{wu} = |\mathbf{w}||\mathbf{u}|e^{(\theta_u-\theta_w) \mathbf{e}_{12}}. \end{align} +Der Term $\mathbf{u}^{-1}\mathbf{w}^{-1}$ \begin{align} - \mathbf{v''} = 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}}} + \mathbf{u}^{-1}\mathbf{w}^{-1} = \dfrac{1}{|\mathbf{w}||\mathbf{u}|}e^{(\theta_w-\theta_u) \mathbf{e}_{12}} \end{align} -Auf eine allgemeine Herleitung wird hier zwar verzichtet, aber man kann zeigen, dass die Reihenfolge so vertauscht werden kann. Der Winkel wird dabei beim parallelen Term negiert. -\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}}} +kann durch die selbe Methode zusammengefasst werden. +Wenn wir den Winkel zwischen den Vektoren $\mathbf{w}$ und $\mathbf{u}$ als $\theta = \theta_w - \theta_u$ definieren erhalten wir +\begin{align}\label{wuExpo} + \mathbf{wu} = |\mathbf{w}||\mathbf{u}|e^{-\theta \mathbf{e}_{12}}\\ + \mathbf{u}^{-1}\mathbf{w}^{-1} = \dfrac{1}{|\mathbf{w}||\mathbf{u}|}e^{\theta \mathbf{e}_{12}} \label{wuExpoInv} \end{align} +die finale Form der Vektorprodukte. +\subsubsection{Umstrukturierte Drehungsgleichung} +Setzten wir nun unsere neuen Erkenntnisse in die Gleichung \eqref{rotGA} ein \begin{align} - \mathbf{v''} = \mathbf{v_\perp} + \mathbf{v_\parallel} e^{2\theta \mathbf{e_{12}}} + \mathbf{v''} = (|\mathbf{w}||\mathbf{u}|e^{-\theta \mathbf{e}_{12}}) \mathbf{v}( \dfrac{1}{|\mathbf{w}||\mathbf{u}|}e^{\theta \mathbf{e}_{12}}), \end{align} -Man kann an dieser Gleichung sehen, dass nur der parallele Anteil des Vektors $\mathbf{v}$ auf der Ebene $\mathbf{e_{12}}$ um $2\theta$ gedreht wird. Der senkrechte Anteil 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. -\\BEISPIEL +erhalten wir durch die Kürzungen der Längen die vereinfachte Drehungsgleichung \begin{align} - \begin{split} - &\mathbf{v} = 1\mathbf{e_1} + 2\mathbf{e_2} + 3\mathbf{e_3}\quad\Rightarrow\quad \mathbf{v_\parallel} = 1\mathbf{e_1} + 2\mathbf{e_2}; \quad \mathbf{v_\perp} = 3\mathbf{e_3}\\ &\mathbf{wu} = 1e^{(-\pi/2) \mathbf{e_{12}}} = 1[\cos(-\pi/2)\mathbf{e_1}+\sin(-\pi/2)\mathbf{e_2}] = -\mathbf{e_2}; \\ &\mathbf{u^{-1}w^{-1}} = 1e^{(\pi/2) \mathbf{e_{12}}} = \mathbf{e_2} - \end{split} + \mathbf{v''} = e^{-\theta \mathbf{e}_{12}} v e^{\theta \mathbf{e}_{12}}. +\end{align} + +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 +\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 die Reihenfolge so umstrukturiert werden kann \begin{align} - \begin{split} - \mathbf{v''} = &\mathbf{(wu)v(u^{-1}w^{-1})} \\ - &-\mathbf{e_2} (1\mathbf{e_1} + 2\mathbf{e_2} + 3\mathbf{e_3}) \mathbf{e_2} \\ - & -1\mathbf{e_2e_1e_2} - 2\mathbf{e_2e_2e_2} - 3\mathbf{e_2e_3e_2} \\ - & 1\mathbf{e_2e_2e_1} - 2\mathbf{e_2} + 3\mathbf{e_2e_2e_3} \\ - & 1\mathbf{e_1} - 2\mathbf{e_2} + 3\mathbf{e_3} - \end{split} -\end{align} -Man sieht, dass sich der Vektor $\mathbf{v_\parallel}$ sich um $2\cdot90^\circ$ gedreht hat und der Vektor $\mathbf{v_\perp}$ unverändert blieb.
\ No newline at end of file + \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}}, +\end{align} +dass der Winkel beim parallelen Anteil negiert wird. An der Zusammengefassten Gleichung +\begin{align}\label{RotParPerp} + \mathbf{v}'' = \mathbf{v_\perp} + \mathbf{v_\parallel} e^{2\theta \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 +\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 $\mathbf{wu}$ + \begin{align} + \mathbf{wu} = (2\mathbf{e}_2)(\mathbf{e}_1) = -2\mathbf{e}_{12} + \end{align} + und das Produkt der Inversen $\mathbf{u}^{-1}\mathbf{w}^{-1}$ + \begin{align} + \mathbf{u}^{-1}\mathbf{w}^{-1} = (\dfrac{\mathbf{e}_1}{1^2})(\dfrac{2\mathbf{e}_2}{2^2}) = \dfrac{1}{2}\mathbf{e}_{12}. + \end{align} + Der rotierte Vektor $\mathbf{v}''$ können wir nun durch das einsetzten und auflösen der Produkte in die Gleichung \eqref{rotGA} + \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)(\dfrac{1}{2}\mathbf{e}_{12})\\ + &= (2\mathbf{e}_2-2\mathbf{e}_1-2\mathbf{e}_{123})(\dfrac{1}{2}\mathbf{e}_{12})\\ + &= -1\mathbf{e}_1 - 1\mathbf{e}_2 + 1\mathbf{e}_3 + \end{align} + finden. 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 + \begin{align} + &\mathbf{wu} = -2\mathbf{e}_{12} = 2(0-1\mathbf{e}_{12})=2(\cos(\dfrac{-\pi}{2} + \sin(\dfrac{-\pi}{2})\mathbf{e}_{12})) = 2e^{(-\pi/2)\mathbf{e}_{12}} + \end{align} + durch einen Vergleich mir der Formel \eqref{wuExpo} + \begin{align} + \theta = -(\dfrac{-\pi}{2}) = \dfrac{\pi}{2} + \end{align} + ausgelesen werden. + \end{itemize} +\end{beispiel}
\ No newline at end of file diff --git a/buch/papers/clifford/9_KomplexeZahlen.tex b/buch/papers/clifford/9_KomplexeZahlen.tex index 4dbab2c..70107da 100644 --- a/buch/papers/clifford/9_KomplexeZahlen.tex +++ b/buch/papers/clifford/9_KomplexeZahlen.tex @@ -3,26 +3,26 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{komplexe Zahlen} -\rhead{komplexe Zahlen} -Die komplexen Zahlen finden eine Vielzahl von Anwendungsgebiete in den Ingenieurwissenschaften. Das liegt daran, weil die komplexen Zahlen Rotationen und Schwingungen gut beschreiben können. Nachdem vorherigen Kapitel überrascht es wahrscheinlich nicht viele, dass es möglich ist Komplexe Zahlen in der geometrischen Algebra darzustellen. Sie können durch die geraden Grade der 2 Dimensionalen geometrischen Algebra vollständig beschrieben werden: $\mathbb{G}_2^+ \cong \mathbb{C}$. Das bedeutet eine komplexe Zahl kann durch ein Skalar (Grade 0) und einem Bivektor (Grade 2) dargestellt werden. Als Abkürzung nehme ich die Bezeichnung $g_n \in \mathbb{G}_2^+$. +\section{Komplexe Zahlen} +\rhead{Komplexe Zahlen} + +Die komplexen Zahlen finden eine Vielzahl von Anwendungsgebiete in den Ingenieurwissenschaften. Das liegt daran, weil die komplexen Zahlen Rotationen und Schwingungen gut beschreiben können. Nach dem vorherigen Kapitel überrascht es wahrscheinlich nicht viele, dass es möglich ist komplexe Zahlen in der geometrischen Algebra darzustellen. Sie können durch die geraden Grade der 2 Dimensionalen geometrischen Algebra vollständig beschrieben werden: $\mathbf{g}_n \in G_2^+(\mathbb{R}) \cong \mathbb{C}$. Das bedeutet eine komplexe Zahl kann durch ein Skalar (Grad 0) und einem Bivektor (Grad 2) dargestellt werden \begin{align} - a_0 + a_1 j \cong a_0 + a_1 e_{12} = g_n;\quad a_0, a_1 \in \mathbb{R} + 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} -oder in Polarform. +weil $j$ und $\mathbf{e}_{12}$ beide die Eigenschaft besitzen quadriert $-1$ zu ergeben \begin{align} - |r|e^{\theta j} \cong |r|e^{\theta e_{12}} = g_n; \quad r, \theta \in \mathbb{R} + j^2 = -1\quad \mathbf{e}_{12}^2 = -1 \end{align} -Man beachte, dass wenn wir, wie bei den komplexen Zahlen, Elemente von $\mathbb{G}_2^+$ miteinander Multiplizieren, ist es nicht, wie im Kapitel Rotation bei der Formel (\ref{rotGA})beschrieben, eine Multiplikation von zwei $g_n$ mit einem Vektor. Im 2 dimensionalen bewirken beide Multiplikationen grundsätzlich das Gleiche (eine Drehstreckung), aber die Multiplikation von mehreren $g_n$ ist kommutativ, wie wir es von den komplexen zahlen kennen. +Man beachte, dass wenn wir, wie bei den komplexen Zahlen, Elemente von $G_2^+(\mathbb{R})$ miteinander Multiplizieren, ist es nicht, wie im Kapitel Rotation bei der Formel (\ref{rotGA})beschrieben, eine Multiplikation von zwei $g_n$ mit einem Vektor. Im zweidimensionalen bewirken beide Multiplikationen grundsätzlich das Gleiche (eine Drehstreckung), aber die Multiplikation von mehreren $g_n$ ist kommutativ, wie wir es von den komplexen Zahlen kennen. \begin{align} - \begin{split} - &(a + b \mathbf{e_{12}})(c + d \mathbf{e_{12}}) = (c + d \mathbf{e_{12}})(a + b \mathbf{e_{12}})\\ - &(a + b \mathbf{e_{12}})(x\mathbf{e_1}+y\mathbf{e_2})(c + d \mathbf{e_{12}}) \not= (a + b \mathbf{e_{12}})(c + d \mathbf{e_{12}})(x\mathbf{e_1}+y\mathbf{e_2}) - \end{split} + \mathbf{g}_1\mathbf{g}_2 = \mathbf{g}_2\mathbf{g}_1 \quad&\Leftrightarrow\quad (a + b \mathbf{e}_{12})(f + g \mathbf{e}_{12}) = (f + g \mathbf{e}_{12})(a + b \mathbf{e}_{12})\\ + \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} Um später die Auswirkung der Quaternionen besser zu verstehen, möchte ich kurz darauf eingehen, was ein $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=c+dj$ multipliziert wird, dann kann man diese so aufteilen. +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 diese so aufteilen. \begin{align} - c = (a + bj)(c + dj) = c\cdot(a+bj) + dj\cdot(a+bj) + c = c_1\cdot c_2 = (a + bj)(d + ej) = f\cdot(a+bj) + gj\cdot(a+bj) \end{align} -Wobei $c\cdot(a+bj)$ die jetzige komplexe Zahl $c_1$ um den Faktor $c$ steckt und $dj\cdot(a+bj)$ die um 90° im gegenuhrzeigersinn gedrehte Zahl $c_1$ um den Faktor $d$ streckt. Diese Anteile addiert ergeben, dann den um $c_2$ drehgestreckten Vektor $c_1$. Die wirklichen Vorteile der geometrischen Algebra werden sich aber erst bei den Quaternionen zeigen. +Dabei ist $f\cdot(a+bj)$ die jetzige komplexe Zahl $c_1$ um den Faktor $f$ steckt und $gj\cdot(a+bj)$ die um 90° im Gegenuhrzeigersinn gedrehte Zahl $c_2$ um den Faktor $g$ streckt. Diese Anteile addiert ergeben, dann den um $c_2$ dreh-gestreckten Vektor $c_1$. Die wirklichen Vorteile der geometrischen Algebra werden sich aber erst bei den Quaternionen zeigen.
\ No newline at end of file diff --git a/buch/papers/clifford/Bilder/GimbalLock.png b/buch/papers/clifford/Bilder/GimbalLock.png Binary files differnew file mode 100644 index 0000000..733c535 --- /dev/null +++ b/buch/papers/clifford/Bilder/GimbalLock.png diff --git a/buch/papers/clifford/Bilder/Links.txt b/buch/papers/clifford/Bilder/Links.txt new file mode 100644 index 0000000..8e8edfe --- /dev/null +++ b/buch/papers/clifford/Bilder/Links.txt @@ -0,0 +1,3 @@ +MatrizenGruppen: Vorlesung 10 Drehmatrizen Müller +GimbalLock: https://www.thetechgame.com/News/sid=2444/fifa-12-demo-glitches-causing-youtube-stir/start=10.html +RotSpieg: http://www.math.uni-bremen.de/didaktik/ma/ralbers/Veranstaltungen/MaDenken1313/Material/Kap2KonAbb.pdf
\ No newline at end of file diff --git a/buch/papers/clifford/Bilder/MatrizenGruppen.png b/buch/papers/clifford/Bilder/MatrizenGruppen.png Binary files differnew file mode 100644 index 0000000..398de5a --- /dev/null +++ b/buch/papers/clifford/Bilder/MatrizenGruppen.png diff --git a/buch/papers/clifford/Bilder/RotSpieg.pdf b/buch/papers/clifford/Bilder/RotSpieg.pdf Binary files differnew file mode 100644 index 0000000..c4c107d --- /dev/null +++ b/buch/papers/clifford/Bilder/RotSpieg.pdf diff --git a/buch/papers/clifford/Bilder/RotSpieg.png b/buch/papers/clifford/Bilder/RotSpieg.png Binary files differnew file mode 100644 index 0000000..27a5eb2 --- /dev/null +++ b/buch/papers/clifford/Bilder/RotSpieg.png diff --git a/buch/papers/clifford/Bilder/test.png b/buch/papers/clifford/Bilder/test.png Binary files differnew file mode 100644 index 0000000..1633a2e --- /dev/null +++ b/buch/papers/clifford/Bilder/test.png diff --git a/buch/papers/clifford/Makefile.inc b/buch/papers/clifford/Makefile.inc index 8cdd02e..e168ae8 100644 --- a/buch/papers/clifford/Makefile.inc +++ b/buch/papers/clifford/Makefile.inc @@ -13,7 +13,7 @@ dependencies-clifford = \ papers/clifford/3_MultiplikationVektoren.tex \ papers/clifford/4_GeometrischesProdukt.tex \ papers/clifford/5_PolareDarstellung.tex \ - papers/clifford/6_Dirac-Matrizen.tex \ + papers/clifford/6_PauliMatrizen.tex \ papers/clifford/7_Reflektion.tex \ papers/clifford/8_Rotation.tex \ papers/clifford/9_KomplexeZahlen.tex \ diff --git a/buch/papers/clifford/main.tex b/buch/papers/clifford/main.tex index 46d04bd..ec44963 100644 --- a/buch/papers/clifford/main.tex +++ b/buch/papers/clifford/main.tex @@ -15,7 +15,7 @@ \input{papers/clifford/3_MultiplikationVektoren.tex} \input{papers/clifford/4_GeometrischesProdukt.tex} \input{papers/clifford/5_PolareDarstellung.tex} -\input{papers/clifford/6_Dirac-Matrizen.tex} +\input{papers/clifford/6_PauliMatrizen.tex} \input{papers/clifford/7_Reflektion.tex} \input{papers/clifford/8_Rotation.tex} \input{papers/clifford/9_KomplexeZahlen.tex} diff --git a/buch/papers/clifford/packages.tex b/buch/papers/clifford/packages.tex index 8fb4bd9..0d354db 100644 --- a/buch/papers/clifford/packages.tex +++ b/buch/papers/clifford/packages.tex @@ -7,3 +7,5 @@ % if your paper needs special packages, add package commands as in the % following example %\usepackage{packagename} + +\usetikzlibrary{calc,angles,quotes,babel}
\ No newline at end of file diff --git a/buch/papers/ifs/images/farn-eps-converted-to.pdf b/buch/papers/ifs/images/farn-eps-converted-to.pdf Binary files differnew file mode 100644 index 0000000..e2c6ddc --- /dev/null +++ b/buch/papers/ifs/images/farn-eps-converted-to.pdf diff --git a/buch/papers/ifs/images/farncolor-eps-converted-to.pdf b/buch/papers/ifs/images/farncolor-eps-converted-to.pdf Binary files differnew file mode 100644 index 0000000..fd81802 --- /dev/null +++ b/buch/papers/ifs/images/farncolor-eps-converted-to.pdf diff --git a/buch/papers/ifs/images/farncolor2-eps-converted-to.pdf b/buch/papers/ifs/images/farncolor2-eps-converted-to.pdf Binary files differnew file mode 100644 index 0000000..b50843a --- /dev/null +++ b/buch/papers/ifs/images/farncolor2-eps-converted-to.pdf diff --git a/buch/papers/ifs/images/farnnotweight-eps-converted-to.pdf b/buch/papers/ifs/images/farnnotweight-eps-converted-to.pdf Binary files differnew file mode 100644 index 0000000..35bff32 --- /dev/null +++ b/buch/papers/ifs/images/farnnotweight-eps-converted-to.pdf diff --git a/buch/papers/ifs/images/farnrightwight-eps-converted-to.pdf b/buch/papers/ifs/images/farnrightwight-eps-converted-to.pdf Binary files differnew file mode 100644 index 0000000..3652e8f --- /dev/null +++ b/buch/papers/ifs/images/farnrightwight-eps-converted-to.pdf diff --git a/buch/papers/ifs/images/koch0-eps-converted-to.pdf b/buch/papers/ifs/images/koch0-eps-converted-to.pdf Binary files differindex 078c399..ea028b9 100644 --- a/buch/papers/ifs/images/koch0-eps-converted-to.pdf +++ b/buch/papers/ifs/images/koch0-eps-converted-to.pdf diff --git a/buch/papers/ifs/images/koch1-eps-converted-to.pdf b/buch/papers/ifs/images/koch1-eps-converted-to.pdf Binary files differindex 81dcf18..c6a7f50 100644 --- a/buch/papers/ifs/images/koch1-eps-converted-to.pdf +++ b/buch/papers/ifs/images/koch1-eps-converted-to.pdf diff --git a/buch/papers/ifs/images/koch2-eps-converted-to.pdf b/buch/papers/ifs/images/koch2-eps-converted-to.pdf Binary files differindex b7c7de7..f24673c 100644 --- a/buch/papers/ifs/images/koch2-eps-converted-to.pdf +++ b/buch/papers/ifs/images/koch2-eps-converted-to.pdf diff --git a/buch/papers/ifs/images/koch8-eps-converted-to.pdf b/buch/papers/ifs/images/koch8-eps-converted-to.pdf Binary files differindex 0bafd03..f8c17c8 100644 --- a/buch/papers/ifs/images/koch8-eps-converted-to.pdf +++ b/buch/papers/ifs/images/koch8-eps-converted-to.pdf diff --git a/buch/papers/punktgruppen/.gitignore b/buch/papers/punktgruppen/.gitignore new file mode 100644 index 0000000..6827d9f --- /dev/null +++ b/buch/papers/punktgruppen/.gitignore @@ -0,0 +1 @@ +standalone diff --git a/buch/papers/punktgruppen/Makefile b/buch/papers/punktgruppen/Makefile index 0274594..f92dc95 100644 --- a/buch/papers/punktgruppen/Makefile +++ b/buch/papers/punktgruppen/Makefile @@ -3,7 +3,39 @@ # # (c) 2020 Prof Dr Andreas Mueller # +SOURCES := \ + crystals.tex \ + intro.tex \ + main.tex \ + piezo.tex \ + symmetry.tex -images: - @echo "no images to be created in punktgruppen" +TIKZFIGURES := \ + tikz/combine-symmetries.tex \ + tikz/lattice.tex \ + tikz/piezo-atoms.tex \ + tikz/piezo.tex \ + tikz/projections.tex \ + tikz/symmetric-shapes.tex +FIGURES := $(patsubst tikz/%.tex, figures/%.pdf, $(TIKZFIGURES)) + +.PHONY: images +images: $(FIGURES) + +figures/%.pdf: tikz/%.tex + mkdir -p figures + pdflatex --output-directory=figures $< + +.PHONY: standalone +standalone: standalone.tex $(SOURCES) + mkdir -p standalone + cd ../..; \ + pdflatex \ + --halt-on-error \ + --shell-escape \ + --output-directory=papers/punktgruppen/standalone \ + papers/punktgruppen/standalone.tex; + cd standalone; \ + bibtex standalone; \ + makeindex standalone; diff --git a/buch/papers/punktgruppen/Makefile.inc b/buch/papers/punktgruppen/Makefile.inc index b6a76c1..8cde9d7 100644 --- a/buch/papers/punktgruppen/Makefile.inc +++ b/buch/papers/punktgruppen/Makefile.inc @@ -10,5 +10,9 @@ dependencies-punktgruppen = \ papers/punktgruppen/symmetry.tex \ papers/punktgruppen/crystals.tex \ papers/punktgruppen/piezo.tex \ - papers/punktgruppen/references.bib - + papers/punktgruppen/references.bib \ + papers/punktgruppen/tikz/combine-symmetries.tex \ + papers/punktgruppen/tikz/lattice.tex \ + papers/punktgruppen/tikz/piezo-atoms.tex \ + papers/punktgruppen/tikz/piezo.tex \ + papers/punktgruppen/tikz/projections.tex diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index 6de2bca..1aec16f 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -1,4 +1,5 @@ \section{Kristalle} +%einleitung sollte noch an das ende von der Symmetrie angepasst werden Unter dem Begriff Kristall sollte sich jeder ein Bild machen können. Wir werden uns aber nicht auf sein Äusseres fokussieren, sondern was ihn im Inneren ausmacht. Die Innereien eines Kristalles sind glücklicherweise relativ einfach definiert. @@ -6,11 +7,122 @@ Die Innereien eines Kristalles sind glücklicherweise relativ einfach definiert. Ein Kristall besteht aus Atomen, welche sich in einem Muster arrangieren, welches sich in drei Dimensionen periodisch wiederholt. \end{definition} +\begin{figure} + \centering + \includegraphics[]{papers/punktgruppen/figures/lattice} + \caption{ + Zweidimensionales Kristallgitter. + \texttt{TODO: make wider and shorter} + \label{fig:punktgruppen:lattice} + } +\end{figure} +\subsection{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 gewählt und betrachten dies nur in Zwei Dimensionen. +Die eingezeichneten Vektoren $\vec{a}$ und $\vec{b}$ sind die kleinstmöglichen Schritte im Raum bis sich das Kristallgitter wiederholt. +Wird ein beliebiger grauer Gitterpunkt in \ref{fig:punktgruppen:lattice} gewählt +und um eine ganzzahlige Linearkombination von $\vec{a}$ und $\vec{b}$ verschoben, +endet er zwangsweise auf einem Gitterpunkt, wenn nicht wieder am selben Ort. +Im Dreidimensionalen-Raum können alle Gitterpunkte mit derselben Idee und einem zusätzlichen Vektor $\vec{c}$ also +\[ + \vec{r} = n_1 \vec{a} + n_2 \vec{b} + n_3 \vec{c} +\] +erreicht werden sofern $\{n_1,n_2,n_3\} \in \mathbb{Z}$ sind. +Sind die Vektoren $\vec{a}$ , $\vec{b}$ , $\vec{c}$ gegeben , +ist ein Kristallgitter eindeutig beschrieben, weswegen sie auch als Grundvektoren bekannt sind. + +\subsection{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 +\[ + Q_i(G) = G + \vec{a_i} +\] wobei der Vektor $a_i$ ein Grundvektor sein muss. +Da die Translationssymmetrie beliebig oft mit allen Grundvektoren angewendet werden kann, +können wir auch sagen, dass alle Verschiebungen um eine Linearkombination +der Vektoren $\vec{a}$ , $\vec{b}$ und $\vec{c}$ erlaubt sind oder kurz, um $\vec{r}$. +Verschiebungen um $\vec{r}$ bewirken demnach keine Veränderungen, +solange wir ein unendlich grosses Kristallgitter verschieben. + +\subsection{Limitierte Kristallsymmetrien} + Die Translationssymmetrie ist wohl keine grosse Überraschung, wenn man die Abbildung \ref{fig:punktgruppen:lattice} betrachtet. + Was nicht direkt ersichtlich ist, ist das auch wenn die Grundvektoren frei gewählt werden können, + können nur Rotationssymmetrische Kristalle bestimmter Rotationswinkel erzeugt werden. + +\begin{figure} + \centering + \includegraphics[]{papers/punktgruppen/figures/combine-symmetries} + \caption{ + Translations und Rotationssymmetrisches Kristallgitter + \texttt{TODO: make wider and change color (yellow)} + } + \label{fig:punktgruppen:rot-geometry} +\end{figure} + + \subsubsection{Translationssymmetrie $Q$ in Kombination mit Rotationssymmetrie $C_\alpha$} % Müssen uns auf eine schreibweise für Symmetrie Operationen einigen oder sicher am Ende überprüfen + In Abbildung \ref{fig:punktgruppen:rot-geometry} Sehen wir Gitterpunkte und deren Zusammenhänge. + + \begin{itemize} + \item $A$ ist unser erster Gitterpunkt. + + \item $A'$ ist gegeben, weil wir $A$ mit der Translation $Q$ um einen Grundvektor verschieben und wir wissen, + dass nach einer Translation wieder ein Gitterpunkt an der Verschobenen Stelle sein muss. + \item $B$ entsteht, weil wir die Rotationssymmetrie $C_\alpha$ auf den Punkt $A$ anwenden. + Dadurch dreht sich das ganze Gitter um den Winkel $\alpha$. + Für uns bedeutet dies lediglich, dass unser zweiter Punkt $A'$ abgedreht wird. + An der neuen Position von $A'$ muss also auch ein Punkt sein, um die Rotationssymmetrie zu erfüllen. + \item $B$ ist unser Name für diesen neuen Punkt. + Da auch die Eigenschaften des Kristallgittes periodisch mit dem Gitter sein müssen, dürfen wir $C_\alpha$ auch auf $A'$ anwenden. + Also wenden wir $C_\alpha$ invertiert + \footnote{Eine Rotationssymmetrie muss auch in die inverse Richtung funktionieren. + Genauere Überlegungen hierzu werden dem Leser überlassen, da sich die Autoren nicht explizit mit dieser Frage Auseinander gesetzt haben.} + auch auf $A'$ an. + Dies dreht $A$ auf einen neuen Punkt. + \item $B'$ ist kein zufälliger Name für diesen neuen Punkt, denn wir wissen, dass zwischen allen Punkten eine Translationssymmetrie bestehen muss. + Die Translationssymmetrie zwischen $B$ und $B'$ ist hier als $Q'$ bezeichnet. + \end{itemize} + Mit den gegebenen Punkten lassen sich geometrische Folgerungen ziehen. + Wir beginnen, indem wir die Länge der Translation $Q$ mit jener von $Q'$ vergleichen. + Aus Abbildung \ref{fig:punktgruppen:rot-geometry} ist ersichtlich, dass $|Q| = |Q'|+ 2x$. + Ist $Q$ ein Grundvektor so muss $|Q'|$ ein ganzes vielfaches von $|Q|$ sein. Also + \[ + |Q'| = n|Q| = |Q| + 2x + \] + Die Strecke $x$ lässt sich auch mit hilfe der Trigonometrie und dem angenommenen Rotationswinkel $\alpha$ ausdrücken: + \[ + n|Q| = |Q| + 2|Q|\sin(\alpha - \pi/2) + \] + Wir können mit $|Q|$ dividieren um unabhängig von der Läge des Grundvektors zu werden, + was auch Sinn macht, da eine Skalierung eines Kristalles seine Symmetrieeigenschaften nicht tangieren soll. + Zusätzlich können wir den Sinusterm vereinfachen. + \[ + n = 1 - 2\cos\alpha + \alpha = \cos^{-1}\left(\frac{1-n}{2}\right) + \] + Dies schränkt die möglichen Rotationssymmetrien auf + \[ + \alpha \in \left\{ 0^\circ, 60^\circ, 90^\circ, 120^\circ, 180^\circ\right\} + \] +ein. + +\begin{figure} + \centering + \includegraphics[]{papers/punktgruppen/figures/projections} + \caption{Kristallklassen mit zugehöriger Schönfliesnotation} + \label{fig:punktgruppen:Kristallkassen} +\end{figure} + +\subsection{Kristallklassen} +Vorgehend wurde gezeigt, dass in einem zweidimensionalen Kristallgitter nicht alle Symmetrien möglich sind. +Mit weiteren ähnlichen überlegungen gezeigt werden kann, dass Kristalle im dreidimensionalen Raum +\footnote{Alle $17$ möglichen zweidimensionalen Symmetrien sind als Wandmustergruppen bekannt} +nur auf genau $32$ Arten punktsymmetrisch sein können. +Diese $32$ möglichen Punktsymmetrien scheinen durchaus relevant zu sein, denn sie werden unter anderem als Kristallklassen bezeichnet. +Eine mögliche Art, die Klassen zu benennen ist nacht dem Mathematiker Arthur Moritz Schönflies, +welcher sich mit der Klasifizierung dieser Symmetrien auseinandergesetzt hat. +Auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} sind die möglichen Punktsymmetrien mit deren Schönfliesnotation aufgelistet. +Als Darstellungsmethode wurde die stereographische Projektion gewählt, wobei $5$ Klassen aus Gründen der Überschaubarkeit nicht gezeichnet wurden. + + -Ein Zweidimensionales Beispiel eines solchen Muster ist Abbildung \ref{fig:punktgruppen:lattce-grid}. -Für die Überschaubarkeit haben wir ein simples Muster eines einzelnen XgrauenX Punktes gewählt in nur Zwei Dimensionen. -Die eingezeichneten Vektoren a und b sind die kleinstmöglichen Schritte im Raum bis sich das Kristallgitter wiederholt. -Dadurch können von einem einzelnen XGrauenX Gitterpunkt in \ref{fig:punktgruppen:lattce-grid} können mit einer ganzzahligen Linearkombination von a und b alle anderen Gitterpunkte des Kristalles erreicht werden. -Ein Kristallgitter kann eindeutig mit a und b und deren winkeln beschrieben werden weswegen a und b auch Gitterparameter genannt werden. -Im Dreidimensionalen-Raum können alle Gitterpunkte mit derselben Idee und einem zusätzlichen Vektor also FRMEL FÜR TRANSLATIONSVEKTOR erreicht werden. -Da sich das Ganze Kristallgitter wiederholt, wiederholen sich auch die Eigenschaften eines Gitterpunktes Periodisch mit eiem diff --git a/buch/papers/punktgruppen/figures/combine-symmetries.pdf b/buch/papers/punktgruppen/figures/combine-symmetries.pdf Binary files differnew file mode 100644 index 0000000..13f7330 --- /dev/null +++ b/buch/papers/punktgruppen/figures/combine-symmetries.pdf diff --git a/buch/papers/punktgruppen/figures/lattice.pdf b/buch/papers/punktgruppen/figures/lattice.pdf Binary files differnew file mode 100644 index 0000000..6565be5 --- /dev/null +++ b/buch/papers/punktgruppen/figures/lattice.pdf diff --git a/buch/papers/punktgruppen/figures/piezo-atoms.pdf b/buch/papers/punktgruppen/figures/piezo-atoms.pdf Binary files differnew file mode 100644 index 0000000..63da7a9 --- /dev/null +++ b/buch/papers/punktgruppen/figures/piezo-atoms.pdf diff --git a/buch/papers/punktgruppen/figures/piezo.pdf b/buch/papers/punktgruppen/figures/piezo.pdf Binary files differnew file mode 100644 index 0000000..ca6192b --- /dev/null +++ b/buch/papers/punktgruppen/figures/piezo.pdf diff --git a/buch/papers/punktgruppen/figures/projections.pdf b/buch/papers/punktgruppen/figures/projections.pdf Binary files differnew file mode 100644 index 0000000..c9369b2 --- /dev/null +++ b/buch/papers/punktgruppen/figures/projections.pdf diff --git a/buch/papers/punktgruppen/figures/symmetric-shapes.pdf b/buch/papers/punktgruppen/figures/symmetric-shapes.pdf Binary files differnew file mode 100644 index 0000000..0b3ba54 --- /dev/null +++ b/buch/papers/punktgruppen/figures/symmetric-shapes.pdf diff --git a/buch/papers/punktgruppen/intro.tex b/buch/papers/punktgruppen/intro.tex index 10dea79..24212e7 100644 --- a/buch/papers/punktgruppen/intro.tex +++ b/buch/papers/punktgruppen/intro.tex @@ -1,10 +1,14 @@ \section{Einleitung} -Es gibt viele möglichkeiten sich in Kristallen zu verlieren. -Auch wen man nur die Mathematischen möglichkeiten in betracht zieht, hat man noch viel zu viele Möglichkeiten sich mit kristallen zu beschäftigen. -In diesem Articel ist daher der Fokus "nur" auf die Symmetrie gelegt. -Im Abschitt über Symmetrien werden wir sehen, wie eine Symmetrie eines Objektes weit -2.ter versuch: -Die Kristallographie ist ein grosses Thema, Symmetrien auch. -Für beide bestehen schon bewährte Mathematische Modelle und Definitionen. -Die +Es gibt viele Möglichkeiten sich in Kristallen zu verlieren. +Auch wen man nur die mathematischen Betrachtunngsweisen berüksichtigt, hat man noch viel zu viele Optionen sich mit Kristallen zu beschäftigen. +In diesem Kapitel ist 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. +Mit etwas kiffligen geometrischen Überlegungen kann man zeigen wass in der Welt der Kristallographie alles möglich ist oder nicht. +Die Einschränkungen sind durchaus wilkommen, dank ihnen halten sich die möglichen Kristallgitter in Grenzen und Lassen sich Kategorisieren. +Kategorien sind nicht nur für einen besseren Überblich nützlich, sondern kann man aus ihnen auch auf Physikalische Eigenschaften schliessen, als spannendes Beispiel: Die Piezoelektrizität. +Die Piezoelektrizität ist vielleicht noch nicht jedem bekannt, sie versteckt sich aber in diversen Altagsgegenständen zum Beispiel sorgen sie in den meisten Feuerzeugen für die Zündung. +Ein Funken Interesse ist hoffentlich geweckt um sich mit dem scheinbar trivialen thema der Symmetrie auseinander zu setzten. + + diff --git a/buch/papers/punktgruppen/main.tex b/buch/papers/punktgruppen/main.tex index d88e221..a6e246c 100644 --- a/buch/papers/punktgruppen/main.tex +++ b/buch/papers/punktgruppen/main.tex @@ -3,10 +3,12 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Crystal M\rotatebox[origin=c]{180}{a}th\label{chapter:punktgruppen}} -\lhead{Crystal M\rotatebox[origin=c]{180}{a}th} +\newcommand{\flippedA}{\raisebox{\fontcharht\font`a}{\scalebox{-1}[-1]{a}}} + +\chapter[Crystal Math]{Crystal M\flippedA{}th\label{chapter:punktgruppen}} +\lhead{Crystal M\flippedA{}th} \begin{refsection} -\chapterauthor{Tim T\"onz, Naoki Pross} +\chapterauthor{Naoki Pross, Tim T\"onz} \input{papers/punktgruppen/intro} \input{papers/punktgruppen/symmetry} diff --git a/buch/papers/punktgruppen/piezo.tex b/buch/papers/punktgruppen/piezo.tex index 7ee4174..e6b595a 100644 --- a/buch/papers/punktgruppen/piezo.tex +++ b/buch/papers/punktgruppen/piezo.tex @@ -1 +1,74 @@ -\section{Piezoelektrizit\"at} +\section{Piezoelektrizität} +Die Piezoelektrizität ist per Definition spannend. +Sie beschreibt die Eigenschaft, dass gewisse Kristalle eine elektrische Spannung erzeugen, wenn machanischer Druck auf sie ausgeübt wird. + +\begin{figure} + \centering + \includegraphics[]{papers/punktgruppen/figures/piezo} %das Efeld mit Naoki disskutieren, müssen sicher gehen, dass es mit jenen in Abbildung Piezo aufbau übereinstimmt + \caption{Piezoelektrisches Material in Ruhe und unter Druck} + \label{fig:punktgruppen:basicPiezo} +\end{figure} + +\subsection{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 positiv Ione näher an die Oberfläche gelangen, +wärend auf der gegenüberliegenden Oberfläche sich mehr negative Ionen Sammeln. +Das sich die atomare Struktur eines Kristalles unter Druck genau so verformt ist nicht bei jedem Kristall gegeben. +Der Aufbau und somit auch die Symmetrie des Kristalles sind daher relevant für die Entstehung dieses Effektes. + +\begin{figure} + \centering + \includegraphics[]{papers/punktgruppen/figures/piezo-atoms} + \caption{ + Kristallstrukturen mit und ohne piezoelektrischer Eigenschaft. + \texttt{TODO: adapt figure for paper with subfigure markers.} + } + \label{fig:punktgruppen:atomPiezo} +\end{figure} + +\subsection{Atomarer Aufbau} +Die Polarisation resultiert über eine gesamte Oberfläche eines Kristalles, entscheidend ist aber der atomare Aufbau. +Wir wollen dazu die verschiedenen Kristallstrukturen auf Abbildung \ref{fig:punktgruppen:atomPiezo} diskutieren. +In Abbildung \ref{fig:punktgruppen:atomPiezo} gilt für alle Strukturen, dass rote Kreise Positive Ionen und blaue negative Ionen repräsentieren. +%liste oder anderes format?.. +Struktur$(a)$ zeigt ein piezoelektrisches Material in Ruhe. Struktur $(b)$ ist dasselbe Kristallgitter, jedoch wird es senkrecht belastet. +Eingezeichnet ist auch das elektrische Feld, welches entsteht, weil mitlleren Ladungsträger weiter auseinander gerdrückt werden. +Als hilfe zur Vorstellung kann man $(b)$ 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. +$(d)$ ist nicht piezoelektrisch. +Dies wird ersichtlich, wenn man $(d)$ unterdruck setzt und sich die Struktur zu $(e)$ verformt. +Setzt man $(e)$ gedanklich auch zwischen zwei leitende Platten scheint es als würden rechts mehr Positive Ionen in die Platte gedrückt werden +und links umgekehrt. +Dies ist aber nicht mehr der Fall, wenn der Kristall nach oben und periodisch wiederholt. +Struktur $(c)$ zeigt $(a)$ in unter horizontaler Belastung. +Was in zwischen $(b)$ und $(c)$ zu beobachten ist, ist dass das entstandene Ladungsdifferenz orthogonal zu der angelegten Kraft entsteht, +im Gegensatz zu $(b)$. +Daraus kann man schlissen, dass $(a)$ keine Rotationssymmetrie von $90^\circ$ besitzen kann, weil die Eigenschaften ändern bei einer $90^\circ$ Drehung. +Das Fehlen dieser Rotationssymmetrie kann mit betrachten von $(a)$ bestätigt werden. + +\subsection{Punktsymmetrie}\footnote{In der Literatur wird ein Punktsymmetrisches Kristallgitter oft als Kristallgitter mit Inversionszentrum bezeichnet.} +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 $(a)$ ein nicht Punktsymmetrischer Kristall mit einem Punktsymmetrischen $(d)$ verglichen worden. +Als vereinfachte Erklärung kann mann sich wieder das Bild vor augen führen, eines Kristalles, +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. + +\subsection{Vom Kristall zum Feuer} +Piezoelektrizität hat durchaus nutzen im Alltag. +Feuerzeuge welche nicht auf dem Prinzip beruhen einen Zündstein abzuschleifen, +sonder ohne Verschleiss auf Knopfdruck einen Zündfunken erzeugen, basieren auf dem Prinzip der Piezoelektrizität. +Drückt der Nutzende auf den Zündknopf spannt sich eine Feder bis zu einer Konfigurierten Spannung. +Wird vom Nutzenden weiter gedrückt 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 elekrische Spannung. +Die Spannung reicht aus, um eine Funkenstrecke zu überwinden und so eine entflammbares Gas zu entzünden. +Sollten Sie also eines Tages in die Situation geraten, in welcher Sie zwei verschiedene Kristalle vor sich haben +und ein piezoelektrisches Feuerzeug bauen müssen, +wobei Sie aber wissen, dass einer eine Punktsymmetrie aufweist, +versuche sie es mit dem anderen. +Ich muss aber anmerken, dass aus den $21$ möglichen Kristallsymmetrien ohne Punktsymmetrie einer nicht piezoelektrisch ist. +ein wenig glück brauchen Sie also immer noch. diff --git a/buch/papers/punktgruppen/standalone.tex b/buch/papers/punktgruppen/standalone.tex new file mode 100644 index 0000000..3317318 --- /dev/null +++ b/buch/papers/punktgruppen/standalone.tex @@ -0,0 +1,30 @@ +\documentclass{book} + +\input{common/packages.tex} + +% additional packages used by the individual papers, add a line for +% each paper +\input{papers/common/addpackages.tex} + +% workaround for biblatex bug +\makeatletter +\def\blx@maxline{77} +\makeatother +\addbibresource{chapters/references.bib} + +% Bibresources for each article +\input{papers/common/addbibresources.tex} + +% make sure the last index starts on an odd page +\AtEndDocument{\clearpage\ifodd\value{page}\else\null\clearpage\fi} +\makeindex + +%\pgfplotsset{compat=1.12} +\setlength{\headheight}{15pt} % fix headheight warning +\DeclareGraphicsRule{*}{mps}{*}{} + +\begin{document} + \input{common/macros.tex} + \def\chapterauthor#1{{\large #1}\bigskip\bigskip} + \input{papers/punktgruppen/main.tex} +\end{document} diff --git a/buch/papers/punktgruppen/symmetry.tex b/buch/papers/punktgruppen/symmetry.tex index db05ff5..1dc6f98 100644 --- a/buch/papers/punktgruppen/symmetry.tex +++ b/buch/papers/punktgruppen/symmetry.tex @@ -1,8 +1,8 @@ \section{Symmetrie} Das Wort Symmetrie ist sehr alt und hat sich seltsamerweise von seinem ursprünglichen griechischen Wort -\(\mathrm{\sigma\nu\mu\mu\varepsilon\tau\rho\iota\alpha}\) -\footnote{\emph{Simmetr\'ia}: ein gemeinsames Mass habend, gleichmässig, +\(\mathrm{\Sigma\nu\mu\mu\varepsilon\tau\rho\iota\alpha}\) +\footnote{\emph{Symmetr\'ia}: ein gemeinsames Mass habend, gleichmässig, verhältnismässig} fast nicht verändert. In der Alltagssprache mag es ein locker definierter Begriff sein, aber in der Mathematik hat Symmetrie eine sehr präzise Bedeutung. @@ -10,99 +10,85 @@ präzise Bedeutung. Ein mathematisches Objekt wird als symmetrisch bezeichnet, wenn es unter einer bestimmten Operation invariant ist. \end{definition} +Die intuitivsten Beispiele kommen aus der Geometrie, daher werden wir mit +einigen geometrischen Beispielen beginnen. Wie wir jedoch später sehen werden, +ist das Konzept der Symmetrie eigentlich viel allgemeiner. -Wenn der Leser noch nicht mit der Gruppentheorie in Berührung gekommen ist, ist -vielleicht nicht ganz klar, was eine Operation ist, aber die Definition sollte -trotzdem Sinn machen. Die Formalisierung dieser Idee wird bald kommen, aber -zunächst wollen wir eine Intuition aufbauen. - -\begin{figure}[h] +\begin{figure} \centering - \begin{tikzpicture}[ - node distance = 2cm, - shapetheme/.style = { - very thick, draw = black, fill = magenta!20!white, - minimum size = 2cm, - }, - line/.style = {thick, draw = darkgray}, - axis/.style = {line, dashed}, - dot/.style = { - circle, draw = darkgray, fill = darkgray, - minimum size = 1mm, inner sep = 0, outer sep = 0, - }, - ] - - \node[ - shapetheme, - rectangle - ] (R) {}; - \node[dot] at (R) {}; - \draw[axis] (R) ++(-1.5, 0) to ++(3, 0) node[right] {\(\sigma\)}; - - \node[ - shapetheme, - regular polygon, - regular polygon sides = 5, - right = of R, - ] (Ps) {}; - \node[dot] (P) at (Ps) {}; - \draw[line, dotted] (P) to ++(18:1.5); - \draw[line, dotted] (P) to ++(90:1.5); - \draw[line, ->] (P) ++(18:1.2) - arc (18:90:1.2) node[midway, above right] {\(r, 72^\circ\)}; - - \node[ - shapetheme, - circle, right = of P - ] (Cs) {}; - \node[dot] (C) at (Cs) {}; - \draw[line, dotted] (C) to ++(1.5,0); - \draw[line, dotted] (C) to ++(60:1.5); - \draw[line, ->] (C) ++(1.2,0) - arc (0:60:1.2) node[midway, above right] {\(r, \alpha\)}; - - \end{tikzpicture} + \includegraphics{papers/punktgruppen/figures/symmetric-shapes} \caption{ Beispiele für geometrisch symmetrische Formen. \label{fig:punktgruppen:geometry-example} } \end{figure} -Die intuitivsten Beispiele kommen aus der Geometrie, daher werden wir mit -einigen geometrischen Beispielen beginnen. Wie wir jedoch später sehen werden, -ist das Konzept der Symmetrie eigentlich viel allgemeiner. In Abbildung -\ref{fig:punktgruppen:geometry-example} haben wir einige Formen, die -offensichtlich symmetrisch sind. Zum Beispiel hat ein Quadrat viele Achsen, um -die es gedreht werden kann, ohne sein Aussehen zu verändern. Regelmässige -Polygone mit \(n\) Seiten sind gute Beispiele, um eine diskrete +\subsection{Geometrische Symmetrien} + +In Abbildung \ref{fig:punktgruppen:geometry-example} haben wir einige Formen, +die offensichtlich symmetrisch sind. Zum Beispiel hat das Quadrat eine Gerade, an +deren 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\) sie unverändert lässt. -Das letzte Beispiel auf der rechten Seite ist eine unendliche +einen Punkt um einen bestimmten Winkel \(360^\circ/n\) die Figur unverändert +lässt. Das letzte Beispiel auf der rechten Seite ist eine unendliche Rotationssymmetrie. Sie wird so genannt, weil es unendlich viele Werte für \(\alpha \in \mathbb{R}\) gibt, die die Form unverändert lassen. Dies ist hoffentlich ausreichend, um die Bedeutung hinter der Notation zu verstehen, die nun eingeführt wird. +% Vieleicht eine kurze Einführung in für die Definition, ich habe das gefühl, dass in der Definition die Symmetrie-Operation und die Gruppe auf einmal erklährt wird +\subsubsection{Symetriegruppe} +\texttt{TODO: review this paragraph, explain what is \(\mathds{1}\).} +Ein Objekt kann mehr als nur eine Symmetrie aufweisen. +Als 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. +Fässt man die möglichen Symmetrien zusammen, entsteht eine Symmetriegruppe. + \begin{definition}[Symmetriegruppe] Sei \(g\) eine Operation, die ein mathematisches Objekt unverändert lässt. Bei einer anderen Operation \(h\) definieren wir die Komposition \(h\circ g\) als die Anwendung der Operationen nacheinander. Alle Operationen bilden unter Komposition eine Gruppe, die Symmetriegruppe genannt wird. +\end{definition} % ich lese diese Definition ein wenig holprig, vieleicht können wir sie zusammen anschauen + +% Nach meinem Geschmack könne es hier auch eine einleitung wie mein Beispiel geben dammit man den Text flüssiger lesen kann +\begin{definition}[Zyklische Untergruppe, Erzeuger] + Sei \(g\) ein Element einer Symmetriegruppe \(G\). Alle möglichen + Kompositionen von \(g\) und \(g^{-1}\) bilden eine sogenannte zyklische + Untergruppe von \(G\), und \(g\) wird ihr Erzeuger genannt. Die erzeugte + Untergruppe \(\langle g \rangle\) wird mit spitzen Klammern um den Erzeuger + bezeichnet. \end{definition} -Mit dem oben Gesagten können wir das \(n\)-Gon Beispiel formalisieren. Wenn wir -\(r\) eine Drehung von \(2\pi/n\) sein lassen, gibt es eine wohlbekannte Symmetriegruppe +Mit dem oben Gesagten können wir das \(n\)-Gon Beispiel formalisieren. +Bezeichnen wir 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 = \left\{\mathds{1}, r, r^2, \ldots, r^{n-1}\right\} - = \mathbb{Z}/n\mathbb{Z}, \] -die Zyklische Gruppe heisst. Hier die Potenzen von \(r\) sind als wiederholte -Komposition gemeint, d.h. \(r^n = r\circ r \circ \cdots r\circ r\). Die -Schreibweise mit den spitzen Klammern wird als Erzeugendensystem bezeichnet. -Das liegt daran, dass alle Elemente der Symmetriegruppe aus Kombinationen einer -Teilmenge erzeugt werden, die als erzeugende Elemente bezeichnet werden. Die -Reflexionssymmetriegruppe ist nicht so interessant, da sie nur +der Drehungen eines \(n\)-Gons zu definieren. Das liegt daran, +dass wir durch die mehrfache Verwendung von \(r\) jeden Winkel erzeugen, der +die Rotationssymmetrie bewahrt. Hier die Potenzen von \(r\) sind als +wiederholte Komposition gemeint, dass heisst \(r^n = r\circ r \circ \cdots +r\circ r\). Wenn wir diese Idee nun erweitern, können wir mit einem +Erzeugendensystemen komplexere Strukturen aufbauen. + +\begin{definition}[Erzeugendensysteme] + % please fix this unreadable mess + Jede Gruppe kann durch eines oder mehrere ihrer Elemente generiert werden. + Wir lassen \(g_1, g_2, \ldots, g_n\) erzeugenden Elemente einer + Symmetriegruppe sein. Da es mehrere Erzeuger gibt, müssen auch die + sogenannte Definitionsgleichungen gegeben werden, die die + Multiplikationstabelle vollständig definieren. Die Gleichungen sind ebenfalls + in den Klammern angegeben. Die erzeugende Elementen zusammen mit der + Definitionsgleichungen bauen ein Erzeugendensysteme. +\end{definition} + +\texttt{TODO: should put examples for generators?} \\ + +Die Reflexionssymmetriegruppe ist nicht so interessant, da sie nur \(\left\{\mathds{1}, \sigma\right\}\) enthält. Kombiniert man sie jedoch mit der Rotation, erhält man die so genannte Diedergruppe \[ @@ -111,22 +97,48 @@ der Rotation, erhält man die so genannte Diedergruppe \mathds{1}, r, \ldots, r^{n-1}, \sigma, \sigma r, \ldots, \sigma r^{n-1} \right\}. \] -Diesmal muss die Generator-Notation die Beziehungen zwischen den beiden -Operationen beinhalten. Die ersten beiden sind leicht zu erkennen, für die -letzte empfehlen wir, sie an einem 2D-Quadrat auszuprobieren. +Die Symmetrieoperationen, die wir bis jetzt besprochen haben, haben immer +mindestens einen Punkt gehabt, der wieder auf sich selbst abgebildet wird. Im +Fall der Rotation war es der Drehpunkt, bei der Spiegelung die Punkte der +Spiegelachse. Dies ist jedoch keine Voraussetzung für eine Symmetrie, da es +Symmetrien gibt, die jeden Punkt zu einem anderen Punkt verschieben können. +Diesen Spezialfall, bei dem mindestens ein Punkt unverändert bleibt, nennt man +Punktsymmetrie. +\begin{definition}[Punktgruppe] + Wenn jede Operation in einer Symmetriegruppe die Eigenschaft hat, mindestens + einen Punkt unverändert zu lassen, sagt man, dass die Symmetriegruppe eine + Punktgruppe ist. +\end{definition} + +\subsection{Algebraische Symmetrien} Wir haben nun unseren Operationen Symbole gegeben, mit denen es tatsächlich -möglich ist, eine nicht kommutative Algebra zu erstellen. Die naheliegende -Frage ist dann, könnte es sein, dass wir bereits etwas haben, das dasselbe tut? -Natürlich, ja. Dafür führen wir den Begriff der Darstellung ein. -\begin{definition}[Darstellung einer Gruppe, Gruppenhomomorphismus] +möglich ist, Gleichungen zu schreiben. Die naheliegende Frage ist dann, könnte +es sein, dass wir bereits etwas haben, das dasselbe tut? Natürlich, ja. +Um es formaler zu beschreiben, werden wir einige Begriffe einführen. +\begin{definition}[Gruppenhomomorphismus] Seien \(G\) und \(H\) Gruppe mit unterschiedlicher Operation \(\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)\). Man sagt, dass der Homomorphismus - \(f\) \(G\) in \(H\) transformiert, oder dass \(H\) eine Darstellung von - \(G\) ist. + \(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 perfekt dem + komplexen Einheitskreis. Der Homomorphismus \(\phi: C_\infty \to \mathbb{C}\) + ist durch die Eulersche Formel \(\phi(r) = e^{i\alpha}\) gegeben. +\end{beispiel} + +\begin{definition}[Darstellung einer Gruppe] + Die Darstellung einer Gruppe ist ein Homomorphismus, der eine Symmetriegruppe + auf eine Menge von Matrizen abbildet. + \[ + \Phi: G \to \operatorname{GL}_n(\mathbb{R}). + \] + Äquivalent kann man sagen, dass ein Element aus der Symmetriegruppe auf einen + Vektorraum \(V\) wirkt, indem man definiert \(\Phi : G \times V \to V\). \end{definition} \begin{beispiel} Die Elemente \(r^k \in C_n\), wobei \(0 < k < n\), stellen abstrakt eine @@ -142,40 +154,21 @@ Natürlich, ja. Dafür führen wir den Begriff der Darstellung ein. die zweite die Matrixmultiplikation. Man kann überprüfen, dass \(\Phi(r^2 \circ r) = \Phi(r^2)\Phi(r)\). \end{beispiel} -\begin{beispiel} - Die Rotationssymmetrie des Kreises \(C_\infty\), mit einem unendlichen - Kontinuum von Werten \(\alpha \in \mathbb{R}\), entspricht perfekt dem - komplexen Einheitskreis. Der Homomorphismus \(\phi: C_\infty \to \mathbb{C}\) - ist durch die Eulersche Formel \(\phi(r) = e^{i\alpha}\) gegeben. -\end{beispiel} -Die Symmetrien, die wir bis jetzt besprochen haben, haben immer mindestens -einen Punkt unbesetzt gelassen. Im Fall der Rotation war es der Drehpunkt, bei -der Spiegelung die Achse. Dies ist jedoch keine Voraussetzung für eine -Symmetrie, da es Symmetrien gibt, die jeden Punkt zu einem anderen Punkt -verschieben können. Ein aufmerksamer Leser wird bemerken, dass die -unveränderten Punkte zum Eigenraum\footnote{Zur Erinnerung \(E_\lambda = -\mathrm{null}(\Phi - \lambda I)\), \(\vec{v}\in E_\lambda \implies \Phi \vec{v} -= \lambda\vec{v}\)} der Matrixdarstellung der Symmetrieoperation gehören. -Diesen Spezialfall, bei dem mindestens ein Punkt unverändert bleibt, nennt man -Punktsymmetrie. -\begin{definition}[Punktgruppe] - Wenn jede Operation in einer Symmetriegruppe die Eigenschaft hat, mindestens - einen Punkt unverändert zu lassen, sagt man, dass die Symmetriegruppe eine - Punktgruppe ist. -\end{definition} -Um das Konzept zu illustrieren, werden wir den umgekehrten Fall diskutieren: -eine Symmetrie, die keine Punktsymmetrie ist, die aber in der Physik sehr -nützlich ist, nämlich die Translationssymmetrie. Von einem mathematischen -Objekt \(U\) wird gesagt, dass es eine Translationssymmetrie \(Q(x) = x + a\) -hat, wenn es die Gleichung -\[ - U(x) = U(Q(x)) = U(x + a), -\] -für ein gewisses \(a\), erfüllt. Zum Beispiel besagt das erste Newtonsche -Gesetz, dass ein Objekt, auf das keine Kraft einwirkt, eine -zeitranslationsinvariante Geschwindigkeit hat, d.h. wenn \(\vec{F} = \vec{0}\) -dann \(\vec{v}(t) = \vec{v}(t + \tau)\). +\texttt{TODO: rewrite section on translational symmetry.} +%% TODO: title / fix continuity +% Um das Konzept zu illustrieren, werden wir den umgekehrten Fall diskutieren: +% eine Symmetrie, die keine Punktsymmetrie ist, die aber in der Physik sehr +% nützlich ist, nämlich die Translationssymmetrie. Von einem mathematischen +% Objekt \(U\) wird gesagt, dass es eine Translationssymmetrie \(Q(x) = x + a\) +% hat, wenn es die Gleichung +% \[ +% U(x) = U(Q(x)) = U(x + a), +% \] +% für ein gewisses \(a\), erfüllt. Zum Beispiel besagt das erste Newtonsche +% Gesetz, dass ein Objekt, auf das keine Kraft einwirkt, eine +% zeitranslationsinvariante Geschwindigkeit hat, d.h. wenn \(\vec{F} = \vec{0}\) +% dann \(\vec{v}(t) = \vec{v}(t + \tau)\). % \subsection{Sch\"onflies notation} diff --git a/buch/papers/punktgruppen/tikz/combine-symmetries.tex b/buch/papers/punktgruppen/tikz/combine-symmetries.tex new file mode 100644 index 0000000..84e0a76 --- /dev/null +++ b/buch/papers/punktgruppen/tikz/combine-symmetries.tex @@ -0,0 +1,56 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} +\begin{tikzpicture}[ + dot/.style = { + draw, circle, thick, black, fill = gray!40!white, + minimum size = 2mm, + inner sep = 0pt, + outer sep = 1mm, + }, + ] + + \node[dot] (A1) at (0,0) {}; + \node[below left] at (A1) {\(A\)}; + + \node[dot] (A2) at (2.5,0) {}; + \node[below right] at (A2) {\(A'\)}; + + \draw[red!80!black, thick, ->] + (A1) to node[midway, below] {\(\vec{Q}\)} (A2); + + \node[dot] (B1) at (120:2.5) {}; + \node[above left] at (B1) {\(B\)}; + + \draw[green!70!black, thick, ->] + (A1) ++(.5,0) arc (0:120:.5) + node[midway, above, xshift=1mm] {\(C_n\)}; + \draw[red!80!black, dashed, thick, ->] (A1) to (B1); + + \node[dot] (B2) at ($(A2)+(60:2.5)$) {}; + \node[above right] at (B2) {\(B'\)}; + + \draw[green!70!black, thick, dashed, ->] + (A2) ++(-.5,0) arc (180:60:.5); + \draw[red!80!black, dashed, thick, ->] (A2) to (B2); + + \draw[yellow!50!orange, thick, ->] + (B1) to node[above, midway] {\(\vec{Q}'\)} (B2); + + \draw[gray, dashed, thick] (A1) to (A1 |- B1) node (Xl) {}; + \draw[gray, dashed, thick] (A2) to (A2 |- B2) node (Xr) {}; + \node[above left, xshift=-2mm] at (Xl) {\(x\)}; + \node[above right, xshift= 2mm] at (Xr) {\(x\)}; +\end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/lattice.tex b/buch/papers/punktgruppen/tikz/lattice.tex new file mode 100644 index 0000000..9c05af3 --- /dev/null +++ b/buch/papers/punktgruppen/tikz/lattice.tex @@ -0,0 +1,39 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} +\begin{tikzpicture}[ + dot/.style = { + draw, circle, thick, black, fill = gray!40!white, + minimum size = 2mm, + inner sep = 0pt, + outer sep = 1mm, + }, + ] + + \begin{scope} + \clip (-2,-2) rectangle (3,4); + \foreach \y in {-7,-6,...,7} { + \foreach \x in {-7,-6,...,7} { + \node[dot, xshift=3mm*\y] (N\x\y) at (\x, \y) {}; + } + } + \end{scope} + \draw[black, thick] (-2, -2) rectangle (3,4); + + \draw[red!80!black, thick, ->] + (N00) to node[midway, below] {\(\vec{a}_1\)} (N10); + \draw[cyan!80!black, thick, ->] + (N00) to node[midway, left] {\(\vec{a}_2\)} (N01); +\end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/piezo-atoms.tex b/buch/papers/punktgruppen/tikz/piezo-atoms.tex new file mode 100644 index 0000000..82a2710 --- /dev/null +++ b/buch/papers/punktgruppen/tikz/piezo-atoms.tex @@ -0,0 +1,121 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} + \begin{tikzpicture}[ + node distance = 2mm, + charge/.style = { + circle, draw = black, thick, + minimum size = 5mm + }, + positive/.style = { fill = red!50 }, + negative/.style = { fill = blue!50 }, + ] + + \node[font = {\large\bfseries}, align = center] (title) at (5.5,0) {Mit und Ohne\\ Symmetriezentrum}; + + \begin{scope} + \matrix[nodes = { charge }, row sep = 8mm, column sep = 8mm] { + \node[positive] {}; & \node[negative] (N) {}; & \node [positive] {}; \\ + \node[negative] (W) {}; & \node[positive] {}; & \node [negative] (E) {}; \\ + \node[positive] {}; & \node[negative] (S) {}; & \node [positive] {}; \\ + }; + \draw[gray, dashed] (W) to (N) to (E) to (S) to (W); + \end{scope} + + \begin{scope}[xshift=11cm] + \foreach \x/\t [count=\i] in {60/positive, 120/negative, 180/positive, 240/negative, 300/positive, 360/negative} { + \node[charge, \t] (C\i) at (\x:1.5cm) {}; + } + + \draw[black] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); + \node[circle, draw=gray, fill=gray, outer sep = 0, inner sep = 0, minimum size = 3mm] {}; + % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); + \end{scope} + + %% + \node[below = of title] {Polarisation Feld \(\vec{E}_p\)}; + + %% hex with vertical pressure + \begin{scope}[xshift=11cm, yshift=-4.5cm] + \node[charge, positive, yshift=-2.5mm] (C1) at ( 60:1.5cm) {}; + \node[charge, negative, yshift=-2.5mm] (C2) at (120:1.5cm) {}; + \node[charge, positive, xshift=-2.5mm] (C3) at (180:1.5cm) {}; + \node[charge, negative, yshift= 2.5mm] (C4) at (240:1.5cm) {}; + \node[charge, positive, yshift= 2.5mm] (C5) at (300:1.5cm) {}; + \node[charge, negative, xshift= 2.5mm] (C6) at (360:1.5cm) {}; + + \draw[black] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); + % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); + + \foreach \d in {C1, C2} { + \draw[orange, very thick, <-] (\d) to ++(0,.7); + } + + \foreach \d in {C4, C5} { + \draw[orange, very thick, <-] (\d) to ++(0,-.7); + } + + \node[black] (E) {\(\vec{E}_p\)}; + \begin{scope}[node distance = .5mm] + \node[red!50, right = of E] {\(+\)}; + \node[blue!50, left = of E] {\(-\)}; + \end{scope} + % \draw[gray, thick, dotted] (E) to ++(0,2); + % \draw[gray, thick, dotted] (E) to ++(0,-2); + \end{scope} + + %% square with vertical pressure + \begin{scope}[yshift=-4.5cm] + \matrix[nodes = { charge }, row sep = 5mm, column sep = 1cm] { + \node[positive] (NW) {}; & \node[negative] (N) {}; & \node [positive] (NE) {}; \\ + \node[negative] (W) {}; & \node[positive] {}; & \node [negative] (E) {}; \\ + \node[positive] (SW) {}; & \node[negative] (S) {}; & \node [positive] (SE) {}; \\ + }; + + \foreach \d in {NW, N, NE} { + \draw[orange, very thick, <-] (\d) to ++(0,.7); + } + + \foreach \d in {SW, S, SE} { + \draw[orange, very thick, <-] (\d) to ++(0,-.7); + } + + \draw[gray, dashed] (W) to (N) to (E) to (S) to (W); + \end{scope} + + %% hex with horizontal pressure + \begin{scope}[xshift=5.5cm, yshift=-4.5cm] + \node[charge, positive, yshift= 2.5mm] (C1) at ( 60:1.5cm) {}; + \node[charge, negative, yshift= 2.5mm] (C2) at (120:1.5cm) {}; + \node[charge, positive, xshift= 2.5mm] (C3) at (180:1.5cm) {}; + \node[charge, negative, yshift=-2.5mm] (C4) at (240:1.5cm) {}; + \node[charge, positive, yshift=-2.5mm] (C5) at (300:1.5cm) {}; + \node[charge, negative, xshift=-2.5mm] (C6) at (360:1.5cm) {}; + + \draw[black] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); + % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); + + \draw[orange, very thick, <-] (C6) to ++(.7,0); + \draw[orange, very thick, <-] (C3) to ++(-.7,0); + + \node[black] (E) {\(\vec{E}_p\)}; + \begin{scope}[node distance = .5mm] + \node[blue!50, right = of E] {\(-\)}; + \node[red!50, left = of E] {\(+\)}; + \end{scope} + % \draw[gray, thick, dotted] (E) to ++(0,2); + % \draw[gray, thick, dotted] (E) to ++(0,-2); + \end{scope} + \end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/piezo.tex b/buch/papers/punktgruppen/tikz/piezo.tex new file mode 100644 index 0000000..1d16ab7 --- /dev/null +++ b/buch/papers/punktgruppen/tikz/piezo.tex @@ -0,0 +1,71 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} +\begin{tikzpicture} + \begin{scope}[ + node distance = 0cm + ] + \node[ + rectangle, fill = gray!60!white, + minimum width = 3cm, minimum height = 2cm, + ] (body) {\(\vec{E}_p = \vec{0}\)}; + + \node[ + draw, rectangle, thick, black, fill = red!50, + minimum width = 3cm, minimum height = 1mm, + above = of body + ] (pos) {}; + + \node[ + draw, rectangle, thick, black, fill = blue!50, + minimum width = 3cm, minimum height = 1mm, + below = of body + ] (neg) {}; + + \draw[black, very thick, -Circle] (pos.east) to ++ (1,0) node (p) {}; + \draw[black, very thick, -Circle] (neg.east) to ++ (1,0) node (n) {}; + + \draw[black, thick, ->] (p) to[out = -70, in = 70] node[midway, right] {\(U = 0\)} (n); + \end{scope} + \begin{scope}[ + node distance = 0cm, + xshift = 7cm + ] + \node[ + rectangle, fill = gray!40!white, + minimum width = 3cm, minimum height = 1.5cm, + ] (body) {\(\vec{E}_p = \vec{0}\)}; + + \node[ + draw, rectangle, thick, black, fill = red!50, + minimum width = 3cm, minimum height = 1mm, + above = of body + ] (pos) {}; + + \node[ + draw, rectangle, thick, black, fill = blue!50, + minimum width = 3cm, minimum height = 1mm, + below = of body + ] (neg) {}; + + \draw[orange, very thick, <-] (pos.north) to node[near end, right] {\(\vec{F}\)} ++(0,1); + \draw[orange, very thick, <-] (neg.south) to node[near end, right] {\(\vec{F}\)} ++(0,-1); + + \draw[black, very thick, -Circle] (pos.east) to ++ (1,0) node (p) {}; + \draw[black, very thick, -Circle] (neg.east) to ++ (1,0) node (n) {}; + + \draw[black, thick, ->] (p) to[out = -70, in = 70] node[midway, right] {\(U > 0\)} (n); + \end{scope} +\end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/projections.tex b/buch/papers/punktgruppen/tikz/projections.tex new file mode 100644 index 0000000..a763e77 --- /dev/null +++ b/buch/papers/punktgruppen/tikz/projections.tex @@ -0,0 +1,257 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} +\begin{tikzpicture}[ + classcirc/.style = { + draw = gray, thick, circle, + minimum size = 12mm, + inner sep = 0pt, outer sep = 0pt, + }, + classlabel/.style = { + below right = 5mm + }, + round/.style = { + draw = orange, thick, circle, + minimum size = 1mm, + inner sep = 0pt, outer sep = 0pt, + }, + cross/.style = { + cross out, draw = magenta, thick, + minimum size = 1mm, + inner sep = 0pt, outer sep = 0pt + }, + ] + \matrix [row sep = 3mm, column sep = 0mm] { + \node[classcirc] (C1) {} node[classlabel] {\(C_{1}\)}; & + \node[classcirc] (C2) {} node[classlabel] {\(C_{2}\)}; & + \node[classcirc] (C3) {} node[classlabel] {\(C_{3}\)}; & + \node[classcirc] (Ci) {} node[classlabel] {\(C_{i}\)}; & + + \node[classcirc] (Cs) {} node[classlabel] {\(C_{s}\)}; & + \node[classcirc] (C3i) {} node[classlabel] {\(C_{3i}\)}; & + \node[classcirc] (C2h) {} node[classlabel] {\(C_{2h}\)}; & + \node[classcirc] (D2) {} node[classlabel] {\(D_{2}\)}; \\ + + \node[classcirc] (D3d) {} node[classlabel] {\(D_{3d}\)}; & + \node[classcirc] (C2v) {} node[classlabel] {\(C_{2v}\)}; & + \node[classcirc] (D2h) {} node[classlabel] {\(D_{2h}\)}; & + \node[classcirc] (D3) {} node[classlabel] {\(D_{3}\)}; & + + \node[classcirc] (C4) {} node[classlabel] {\(C_{4}\)}; & + \node[classcirc] (C6) {} node[classlabel] {\(C_{6}\)}; & + \node[classcirc] (D3dP) {} node[classlabel] {\(D_{3d}\)}; & + \node[classcirc] (S4) {} node[classlabel] {\(S_{4}\)}; \\ + + \node[classcirc] (S3) {} node[classlabel] {\(S_{3}\)}; & + \node[classcirc, dashed] (T) {} node[classlabel] {\(T_{}\)}; & + \node[classcirc] (C4h) {} node[classlabel] {\(C_{4h}\)}; & + \node[classcirc] (C6h) {} node[classlabel] {\(C_{6h}\)}; & + + \node[classcirc, dashed] (Th) {} node[classlabel] {\(T_{h}\)}; & + \node[classcirc] (C4v) {} node[classlabel] {\(C_{4v}\)}; & + \node[classcirc] (C6v) {} node[classlabel] {\(C_{6v}\)}; & + \node[classcirc, dashed] (Td) {} node[classlabel] {\(T_{d}\)}; \\ + + \node[classcirc] (D2d) {} node[classlabel] {\(D_{2d}\)}; & + \node[classcirc] (D3h) {} node[classlabel] {\(D_{3h}\)}; & + \node[classcirc, dashed] (O) {} node[classlabel] {\(O_{}\)}; & + \node[classcirc] (D4) {} node[classlabel] {\(D_{4}\)}; & + + \node[classcirc] (D6) {} node[classlabel] {\(D_{6}\)}; & + \node[classcirc, dashed] (Oh) {} node[classlabel] {\(O_{h}\)}; & + \node[classcirc] (D4h) {} node[classlabel] {\(D_{4h}\)}; & + \node[classcirc] (D6h) {} node[classlabel] {\(D_{6h}\)}; \\ + }; + + + \node[cross] at ($(C1)+(4mm,0)$) {}; + + + \node[cross] at ($(C2)+(4mm,0)$) {}; + \node[cross] at ($(C2)-(4mm,0)$) {}; + + + \node[cross] at ($(C3)+( 0:4mm)$) {}; + \node[cross] at ($(C3)+(120:4mm)$) {}; + \node[cross] at ($(C3)+(240:4mm)$) {}; + + + \node[cross] at ($(Ci)+(4mm,0)$) {}; + \node[round] at ($(Ci)-(4mm,0)$) {}; + + + \node[cross] at ($(Cs)+(4mm,0)$) {}; + \node[round] at ($(Cs)+(4mm,0)$) {}; + + + \node[cross] at ($(C3i)+( 0:4mm)$) {}; + \node[cross] at ($(C3i)+(120:4mm)$) {}; + \node[cross] at ($(C3i)+(240:4mm)$) {}; + \node[round] at ($(C3i)+( 60:4mm)$) {}; + \node[round] at ($(C3i)+(180:4mm)$) {}; + \node[round] at ($(C3i)+(300:4mm)$) {}; + + + \node[cross] at ($(C2h)+(4mm,0)$) {}; + \node[cross] at ($(C2h)-(4mm,0)$) {}; + \node[round] at ($(C2h)+(4mm,0)$) {}; + \node[round] at ($(C2h)-(4mm,0)$) {}; + + + \node[cross] at ($(D2)+( 20:4mm)$) {}; + \node[cross] at ($(D2)+(200:4mm)$) {}; + \node[round] at ($(D2)+(160:4mm)$) {}; + \node[round] at ($(D2)+(340:4mm)$) {}; + + + \foreach \x in {0, 120, 240} { + \node[cross] at ($(D3d)+({\x+15}:4mm)$) {}; + \node[cross] at ($(D3d)+({\x-15}:4mm)$) {}; + } + + + \foreach \x in {0, 180} { + \node[cross] at ($(C2v)+({\x+15}:4mm)$) {}; + \node[cross] at ($(C2v)+({\x-15}:4mm)$) {}; + } + + + \foreach \x in {0, 180} { + \node[cross] at ($(D2h)+({\x+15}:4mm)$) {}; + \node[cross] at ($(D2h)+({\x-15}:4mm)$) {}; + \node[round] at ($(D2h)+({\x+15}:4mm)$) {}; + \node[round] at ($(D2h)+({\x-15}:4mm)$) {}; + } + + + \foreach \x in {0, 120, 240} { + \node[cross] at ($(D3)+({\x+15}:4mm)$) {}; + \node[round] at ($(D3)+({\x-15}:4mm)$) {}; + } + + + \foreach \x in {0, 90, 180, 270} { + \node[cross] at ($(C4)+(\x:4mm)$) {}; + } + + + \foreach \x in {0, 60, 120, 180, 240, 300} { + \node[cross] at ($(C6)+(\x:4mm)$) {}; + } + + + \foreach \x in {0, 120, 240} { + \node[cross] at ($(D3dP)+({\x+15}:4mm)$) {}; + \node[cross] at ($(D3dP)+({\x-15}:4mm)$) {}; + \node[round] at ($(D3dP)+({\x+15+60}:4mm)$) {}; + \node[round] at ($(D3dP)+({\x-15+60}:4mm)$) {}; + } + + + \node[cross] at ($(S4)+(4mm,0)$) {}; + \node[cross] at ($(S4)-(4mm,0)$) {}; + \node[round] at ($(S4)+(0,4mm)$) {}; + \node[round] at ($(S4)-(0,4mm)$) {}; + + + \foreach \x in {0, 120, 240} { + \node[cross] at ($(S3)+(\x:4mm)$) {}; + \node[round] at ($(S3)+(\x:4mm)$) {}; + } + + + %% TODO: T + + + \foreach \x in {0, 90, 180, 270} { + \node[cross] at ($(C4h)+(\x:4mm)$) {}; + \node[round] at ($(C4h)+(\x:4mm)$) {}; + } + + + \foreach \x in {0, 60, 120, 180, 240, 300} { + \node[cross] at ($(C6h)+(\x:4mm)$) {}; + \node[round] at ($(C6h)+(\x:4mm)$) {}; + } + + + %% TODO: Th + + + \foreach \x in {0, 90, 180, 270} { + \node[cross] at ($(C4v)+(\x+15:4mm)$) {}; + \node[cross] at ($(C4v)+(\x-15:4mm)$) {}; + } + + + + \foreach \x in {0, 60, 120, 180, 240, 300} { + \node[cross] at ($(C6v)+(\x+10:4mm)$) {}; + \node[cross] at ($(C6v)+(\x-10:4mm)$) {}; + } + + + %% TODO: Td + + + \foreach \x in {0, 180} { + \node[cross] at ($(D2d)+({\x+15}:4mm)$) {}; + \node[round] at ($(D2d)+({\x-15}:4mm)$) {}; + + \node[round] at ($(D2d)+({\x+15+90}:4mm)$) {}; + \node[cross] at ($(D2d)+({\x-15+90}:4mm)$) {}; + } + + + \foreach \x in {0, 120, 240} { + \node[cross] at ($(D3h)+({\x+15}:4mm)$) {}; + \node[cross] at ($(D3h)+({\x-15}:4mm)$) {}; + \node[round] at ($(D3h)+({\x+15}:4mm)$) {}; + \node[round] at ($(D3h)+({\x-15}:4mm)$) {}; + } + + + %% TODO: O + + + \foreach \x in {0, 90, 180, 270} { + \node[cross] at ($(D4)+({\x+15}:4mm)$) {}; + \node[round] at ($(D4)+({\x-15}:4mm)$) {}; + } + + \foreach \x in {0, 60, 120, 180, 240, 300} { + \node[cross] at ($(D6)+({\x+10}:4mm)$) {}; + \node[round] at ($(D6)+({\x-10}:4mm)$) {}; + } + + + % TODO Oh + + + \foreach \x in {0, 90, 180, 270} { + \node[cross] at ($(D4h)+(\x+15:4mm)$) {}; + \node[cross] at ($(D4h)+(\x-15:4mm)$) {}; + \node[round] at ($(D4h)+(\x+15:4mm)$) {}; + \node[round] at ($(D4h)+(\x-15:4mm)$) {}; + } + + + \foreach \x in {0, 60, 120, 180, 240, 300} { + \node[cross] at ($(D6h)+({\x+10}:4mm)$) {}; + \node[cross] at ($(D6h)+({\x-10}:4mm)$) {}; + \node[round] at ($(D6h)+({\x+10}:4mm)$) {}; + \node[round] at ($(D6h)+({\x-10}:4mm)$) {}; + } +\end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/symmetric-shapes.tex b/buch/papers/punktgruppen/tikz/symmetric-shapes.tex new file mode 100644 index 0000000..b2c051f --- /dev/null +++ b/buch/papers/punktgruppen/tikz/symmetric-shapes.tex @@ -0,0 +1,59 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{shapes.geometric} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} + \begin{tikzpicture}[ + node distance = 2cm, + shapetheme/.style = { + very thick, draw = black, fill = magenta!20!white, + minimum size = 2cm, + }, + line/.style = {thick, draw = darkgray}, + axis/.style = {line, dashed}, + dot/.style = { + circle, draw = darkgray, fill = darkgray, + minimum size = 1mm, inner sep = 0, outer sep = 0, + }, + ] + + \node[ + shapetheme, rectangle + ] (R) {}; + \node[dot] at (R) {}; + \draw[axis] (R) ++(-1.5, 0) to ++(3, 0) node[right] {\(\sigma\)}; + + \node[ + shapetheme, + regular polygon, + regular polygon sides = 5, + right = of R, + ] (Ps) {}; + \node[dot] (P) at (Ps) {}; + \draw[line, dotted] (P) to ++(18:1.5); + \draw[line, dotted] (P) to ++(90:1.5); + \draw[line, ->] (P) ++(18:1.2) + arc (18:90:1.2) node[midway, above right] {\(r, 72^\circ\)}; + + \node[ + shapetheme, + circle, right = of P + ] (Cs) {}; + \node[dot] (C) at (Cs) {}; + \draw[line, dotted] (C) to ++(1.5,0); + \draw[line, dotted] (C) to ++(60:1.5); + \draw[line, ->] (C) ++(1.2,0) + arc (0:60:1.2) node[midway, above right] {\(r, \alpha\)}; + + \end{tikzpicture} +\end{document} diff --git a/buch/papers/reedsolomon/anwendungen.tex b/buch/papers/reedsolomon/anwendungen.tex new file mode 100644 index 0000000..83e0f94 --- /dev/null +++ b/buch/papers/reedsolomon/anwendungen.tex @@ -0,0 +1,93 @@ +% +% anwendungen.tex -- Anwendungen des Reed-Solomon-Codes +% +% (c) 2021 Michael Steiner, Hochschule Rapperswil +% +\section{Anwendungen des Reed-Solomon-Codes + \label{reedsolomon:section:anwendung}} +\rhead{Anwendungen} +\textcolor{red}{Platzierung der Bilder? Quellenangabe der Bilder?} + +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. +Obwohl alle diese Codes nach dem gleichen Prinzip arbeiten gibt es starke Unterschiede in deren Funktionsweise. +Dies kommt vor allem daher, da die Codes nur Ressourcen zur Verfügung haben, die von der Hardware bereitstellt wird, auf denen die Codes implementiert wurden. +Diese Codes bedienen sich daher verschiedener Tricks und Optimierungen um möglichst effizient zu arbeiten. +% +%Dies kommt vor allem daher, da diese Codes an ihre Hardware gebunden sind, auf denen sie implementiert worden sind. +%Deshalb wurden diese Codes stark optimiert damit sie möglichst Effizient arbeiten können. +% +%Um diese Hardware möglichst effizient zu nutzen wurden gewisse mathematische tricks angewendet um den Code möglichst effizient zu nutzen. +% +% um mit maximaler Effizienz zu arbeiten. +%Es überrascht daher nicht, dass vor allem ältere Codes im binären Körper $\mathbb{F}_{2}$ arbeiten. +% +% um den Code mit maximaler Effizienz zu nutzen. +% +%Alle diese Anwendungen verfügen über eigene spezifizierten Eigenschaften. +% +%, wobei bei allen dieser Anwendungen jeweils eine unterschiedliche Version des Codes implementiert wurden. +% +%Dies kommt vor allem daher, da diese Codes immer an ihre dementsprechende Hardware gebunden sind, auf denen sie implementiert wurden um den Code mit maximaler Effizienz zu nutzen. +% +% eigene Version des Codes implementiert haben. +% +%Bei einer Technischen Umsetzung eines solchen Codes werden wir auf eine reihe neuer Probleme stossen wie Ressourceneffizienz, Laufzeitoptimierung, usw. +% +%Hinzu kommt, dass für verschiedene Anwendungen verschiedene Versionen des Reed-Solomon-Codes zur Anwendung kommen. +% +%Nachfolgend werden wir ein paar dieser Anwendungen Vorstellen, da sich herausstellt, dass Reed-Solomon-Code sehr +% +%Als letzte Frage stellt sich jetzt nur noch, wo diese Codes eingesetzt werden. +% +%Bisher haben wir +% +%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 + +\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 werden mit einem RS(255,233)-Code \textcolor{red}{benötigt das weitere erklärungen, wie z.b. 255: grösse nachrichtenblock, 233: anzahl der nutzbaren daten ?} zusammen mit einem konventionellen Faltungscode übertragen. + +% +% Die zwei im Jahre 1977 gestarteten Sonden senden Daten mit der Hilfe eines RS(255,233)-Code für die digitalen Bilder sowie einem konventionellen Faltungscode. +% +% +%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{Voyager Raumsonde} + \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. +Diese Vorgehensweise erzielt eine hohe Robustheit gegenüber Produktionsfehler oder Verschmutzung auf der Disc. Bei CD's 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. + +%Beide lesen +% wobei beide Codes auch Fehler aus dem jeweiligen anderen Block korrigieren + +\begin{figure} + \centering + \includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/Compact_Disc} + \caption{Compact Disc} + \label{fig:cd} +\end{figure} + +\subsection{QR-Codes} +Quick Response Codes 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[]{ + \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/qrcode_l} + } + \caption{(a) High Level Code, (b) Low Level Code} + \label{fig:qr} +\end{figure} diff --git a/buch/papers/reedsolomon/codebsp.tex b/buch/papers/reedsolomon/codebsp.tex index 0339d9c..8430ebd 100644 --- a/buch/papers/reedsolomon/codebsp.tex +++ b/buch/papers/reedsolomon/codebsp.tex @@ -1,17 +1,16 @@ % -% teil3.tex -- Beispiel-File für Teil 3 +% codebsp.tex -- Codierung eines Beispiels % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % \section{Codierung eines Beispiels \label{reedsolomon:section:codebsp}} \rhead{Codierung eines Beispiels} -Um die Funktionsweise eines Reed-Solomon-Codes besser zu verstehen werden wir die einzelnen Probleme und ihre Lösungen anhand eines Beispiels betrachten. -Da wir in endlichen Körpern rechnen, werden wir zuerst solch einen Körper festlegen. Dabei müssen wir die \textcolor{red}{Definition 4.6 (verweis auf eine Definition im Buch ohne label)} berücksichtigen, die besagt, dass nur Primzahlen für endliche Körper in Frage kommen. +Um die Funktionsweise eines Reed-Solomon-Codes besser zu verstehen, werden wir die einzelnen Probleme und ihre Lösungen anhand eines Beispiels betrachten. +Da wir in endlichen Körpern rechnen, werden wir zuerst solch einen Körper festlegen. Dabei müssen wir die Definition \ref{buch:endlichekoerper:def:galois-koerper} berücksichtigen, die besagt, dass nur Primzahlen für endliche Körper in Frage kommen. Wir legen für unser Beispiel den endlichen Körper $\mathbb{F}_{q}$ mit $q = 11$ fest. -Zur Hilfestellung können dazu die beiden Tabellen \ref{reedsolomon:subsection:adtab} und -\ref{reedsolomon:subsection:mptab} hinzugezogen werden. Diese Tabellen enthalten die Resultate der arithmetischen Operationen im Körper $\mathbb{F}_{11}$, die durchgeführt werden können. +Zur Hilfestellung zum Rechnen in $\mathbb{F}_{11}$ können die beiden Tabellen \ref{reedsolomon:subsection:adtab} und \ref{reedsolomon:subsection:mptab} hinzugezogen werden. Diese Tabellen enthalten die Resultate der arithmetischen Operationen im Körper $\mathbb{F}_{11}$, die durchgeführt werden können. Aus der Definition der endlichen Körper (ersichtlich auch in den Tabellen) folgt, dass uns nur die Zahlen \[\mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\}\] zur Verfügung stehen und somit $11 = 0$ gelten muss. % OLD TEXT @@ -78,15 +77,16 @@ dar. \label{reedsolomon:subsection:diskFT}} In einem vorherigen Abschnitt \textcolor{red}{(???)} 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. -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, um +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 \[ \mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\} \] -in +in die von $a$ abhängige Schreibweise \[ \mathbb{Z}_{11}\setminus\{0\} = \{a^0, a^1, a^2, a^3, a^4, a^5, a^6, a^7, a^8, a^9\}. \] -umzuschreiben. +%Jetzt brauchen wir nur noch eine geeignete Zahl für $a$ zu finden. % Old Text %Wir suchen also eine Zahl $a$, die in endlichen Körpern existiert und den gesamten Zahlenbereich von $\mathbb{F}_{11}$ abdecken kann. %Dazu schreiben wir @@ -116,7 +116,7 @@ umzuschreiben. \subsubsection{Die primitiven Einheitswurzeln \label{reedsolomon:subsection:primsqrt}} -Wenn wir jetzt sämtliche Zahlen von $\mathbb{F}_{11}$ in $a$ einsetzen +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} $a = 1$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 1, 1, 1, 1, 1, 1, 1, 1, 1\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$ \\ @@ -128,7 +128,7 @@ $a = 6$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 6, 3, 7, 9, 1 $a = 7$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 7, 5, 2, 3, 10, 4, 6, 9, 8\}$ & $ = $ & $\mathbb{F}_{11}\setminus\{0\}$ \\ $a = 8$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 8, 9, 6, 4, 10, 3, 2, 5, 7\}$ & $ = $ & $\mathbb{F}_{11}\setminus\{0\}$ \\ $a = 9$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 9, 4, 3, 5, 1, 9, 4, 3, 5\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$ \\ -$a = 10$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 10, 1, 10, 1, 10, 1, 10, 1, 10\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$ \\ +$a = 10$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 10, 1, 10, 1, 10, 1, 10, 1, 10\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$. \\ \end{tabular} \end{center} %\begin{center} @@ -146,13 +146,15 @@ $a = 10$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 10, 1, 10, 1 %$a = 10 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 10, 1, 10, 1, 10, 1, 10, 1, 10\}$ %\end{tabular} %\end{center} -so fällt uns auf, dass für $a$ die Zahlen $2,6,7,8$ erhalten, die tatsächlich den gesamten Zahlenraum von $\mathbb{F}_{11}$ abbilden. Solche Zahlen werden \em primitive Einheitswurzel \em genannt. +Es fällt auf, dass wir für $a$ die Zahlen $2,6,7,8$ Mengen erhalten, die tatsächlich den gesamten Zahlenraum von $\mathbb{F}_{11}$ abbilden. Solche Zahlen werden \em primitive Einheitswurzel \em genannt. Wenden wir diese Vorgehensweise auch für andere endliche Körper an, so werden wir sehen, dass wir immer mindestens zwei solcher Einheitswurzel finden werden. Somit ist es uns überlassen, eine dieser Einheitswurzel auszuwählen, mit der wir weiter rechnen wollen. Für das Beispiel wählen wir die Zahl $a = 8$. \subsubsection{Bildung einer Transformationsmatrix \label{reedsolomon:subsection:transMat}} -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 müssen wir alle $a^i$ in das Polynom $m(X)$ einsetzen. Da wir $a^i = 8^i$ gewählt haben, ergibt sich daraus +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 +%Für die Codierung müssen wir alle $a^i$ in das Polynom $m(X)$ einsetzen. Da wir $a^i = 8^i$ gewählt haben, ergibt sich daraus % %Damit wir unsere Nachricht codieren können, müssen wir $8^i$ in $m(X)$ einsetzen. % @@ -168,7 +170,7 @@ als unser Übertragungsvektor. \subsection{Allgemeine Codierung \label{reedsolomon:subsection:algCod}} -Um das Ganze noch ein wenig übersichtlicher zu gestalten können wir die Polynome zu einer Matrix zusammenfassen, die unsere Transformationsmatrix $A$ bildet. +Um das Ganze noch ein wenig übersichtlicher zu gestalten, können wir die Polynome zu einer Matrix zusammenfassen, die unsere Transformationsmatrix $A$ bildet. Für die allgemeine Codierung benötigen wir die Nachricht $m$, die codiert werden soll, sowie die Transformationsmatrix $A$. Daraus erhalten wir den Übertragungsvektor $v$. Setzen wir die Zahlen aus dem Beispiel ein erhalten wir folgende Darstellung: \[ diff --git a/buch/papers/reedsolomon/decmitfehler.tex b/buch/papers/reedsolomon/decmitfehler.tex index a46d7da..598cf68 100644 --- a/buch/papers/reedsolomon/decmitfehler.tex +++ b/buch/papers/reedsolomon/decmitfehler.tex @@ -1,7 +1,7 @@ % -% teil3.tex -- Beispiel-File für Teil 3 +% decmitfehler.tex -- Decodierung mit Fehler % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % \section{Decodierung: Ansatz mit Fehlerkorrektur \label{reedsolomon:section:decmitfehler}} @@ -16,7 +16,7 @@ Der Übertragungskanal im Beispiel weisst jetzt den Fehlervektor u = [0, 0, 0, 3, 0, 0, 0, 0, 2, 0] \] auf. -Senden wir jetzt unser Übertragungsvektor $v$ durch diesen Kanal addiert sich der Fehlervektor $u$ auf unsere Übertragung und wir erhalten +Senden wir jetzt unser Übertragungsvektor $v$ durch diesen Kanal, addiert sich der Fehlervektor $u$ auf unsere Übertragung und wir erhalten \begin{center} \begin{tabular}{c | c r } @@ -127,7 +127,7 @@ 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, 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 drei und acht 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. @@ -140,7 +140,7 @@ f(X) = X^{q-1} -1 = 0 \] gilt für jedes $X$. Setzen wir das $q$ von unserem Beispiel ein \[ -f(X) = X^{10}-1 = 0 \qquad \text{für } X = \{1,2,3,4,5,6,7,8,9,10\} +f(X) = X^{10}-1 = 0 \qquad \text{für } X \in \{1,2,3,4,5,6,7,8,9,10\} \] und stellen dies als Faktorisierung dar. So ergibt sich die Darstellung \[ @@ -173,7 +173,7 @@ Das kgV hat nämlich die Eigenschaft sämtliche Nullstellen zu finden, also nich ersichtlich ist. Aus dem vorherigen Abschnitt wissen wir auch, dass $d(X)$ alle korrekten Nullstellen beinhaltet. Teilen wir das kgV jetzt auf in \[ -\operatorname{kgV}(f(X),d(X)) = d(X) \cdot l(X) +\operatorname{kgV}(f(X),d(X)) = d(X) \cdot l(X), \] sollten wir für $l(X)$ eine Liste mit allen fehlerhaften Nullstellen erhalten. Somit ist @@ -192,14 +192,16 @@ In Abschnitt \ref{reedsolomon:section:decmitfehler} haben wir d(X) = r(X) - m(X) \] in Abhängigkeit von $m(X)$ berechnet. -Jedoch haben wir ausser acht gelassen, dass $m(X)$ auf der Empfängerseite nicht existiert und somit gänzlich unbekannt ist. +Jedoch haben wir ausser acht gelassen, dass $m(X)$ auf der Empfängerseite nicht verfügbar und somit gänzlich unbekannt ist. Es scheint so als würde dieser Lösungsansatz, den wir bisher verfolgt haben, nicht funktioniert. -Wir könnten uns höchstens noch fragen, ob wir tatsächlich nichts über den Nachrichtenvektor im Beispiel wissen. Wenn wir noch einmal den Vektor betrachten als +Wir könnten uns höchstens noch fragen, ob wir tatsächlich nichts über den Nachrichtenvektor im Beispiel wissen. + +Wenn wir noch einmal den Vektor betrachten als \[ m = [0,0,0,0,4,7,2,5,8,1] \] -fällt uns aber auf, dass wir doch etwas über diesen Vektor wissen, nämlich den Wert der ersten $2t$ (im Beispiel vier) stellen. -Im Normalfall sollen diese nämlich den Wert null betragen und somit sind nur die letzten $k$ stellen (im Beispiel sechs) für uns unbekannt, dargestellt als +fällt uns aber auf, dass wir doch etwas über diesen Vektor wissen, nämlich den Wert der ersten $2t$ (im Beispiel vier) Stellen. +Im Normalfall sollen diese nämlich den Wert $0$ haben und somit sind nur die letzten $k$ Stellen (im Beispiel sechs) für uns unbekannt, dargestellt als \[ m = [0,0,0,0,?,?,?,?,?,?]. \] diff --git a/buch/papers/reedsolomon/decohnefehler.tex b/buch/papers/reedsolomon/decohnefehler.tex index 0470db0..50bd8d6 100644 --- a/buch/papers/reedsolomon/decohnefehler.tex +++ b/buch/papers/reedsolomon/decohnefehler.tex @@ -1,7 +1,7 @@ % -% teil3.tex -- Beispiel-File für Teil 3 +% decohnefehler.tex -- Decodierung ohne Fehler % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % \section{Decodierung: Ansatz ohne Fehler \label{reedsolomon:section:decohnefehler}} @@ -33,11 +33,12 @@ 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. \] -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$. +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 +%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} +8^1 \qquad \rightarrow \qquad 8^{-1}. \] -Mit einem solchen Problem haben wir uns bereits in Abschnitt \ref{buch:section:euklid} befasst und so den euklidischen Algorithmus kennengelernt, den wir auf unseren Fall anwenden können. +Mit einem solchen Problem haben wir uns bereits in Abschnitt \ref{buch:section:euklid} befasst und so den euklidischen Algorithmus kennengelernt, den wir auf diesen Fall anwenden können. % Old Text %Im Abschnitt \textcolor{red}{4.1} haben wir den euklidischen Algorithmus kennengelernt, den wir auf unseren Fall anwenden können. @@ -76,7 +77,9 @@ Daraus erhalten wir \end{tabular} \end{center} -als Inverse der primitiven Einheitswurzel. Die inverse Transformationsmatrix $A^{-1}$ bilden wir, indem wir jetzt die inverse primitive Einheitswurzel anstelle der primitiven Einheitswurzel in die Matrix einsetzen: +als Inverse der primitiven Einheitswurzel. +Alternativ können wir das Resultat auch aus der Tabelle \ref{reedsolomon:subsection:mptab} ablesen. +Die inverse Transformationsmatrix $A^{-1}$ bilden wir, indem wir jetzt die inverse primitive Einheitswurzel anstelle der primitiven Einheitswurzel in die Matrix einsetzen: \[ \begin{pmatrix} 8^0 & 8^0 & 8^0 & 8^0 & \dots & 8^0 \\ @@ -102,9 +105,9 @@ als Inverse der primitiven Einheitswurzel. Die inverse Transformationsmatrix $A^ \subsection{Der Faktor $s$ \label{reedsolomon:subsection:sfaktor}} Die diskrete Fouriertransformation benötigt für die Inverse einen Vorfaktor von $\frac{1}{2\pi}$. -Primitiv nehmen wir an, dass wir für die Inverse Transformationsmatrix ebenfalls einen benötigen. +Wir müssen also damit rechnen, dass wir für die Inverse Transformationsmatrix ebenfalls einen solchen Vorfaktor benötigen. Nur stellt sich jetzt die Frage, wie wir diesen Vorfaktor in unserem Fall ermitteln können. -Dafür betrachten wir eine Regel aus der Linearen Algebra, nämlich dass +Dafür betrachten wir eine Regel aus der linearen Algebra, nämlich dass \[ A \cdot A^{-1} = E @@ -148,7 +151,7 @@ Aus der letzten Matrix folgt, dass wir \[ s = \dfrac{1}{10} \] -als unseren Vorfaktor setzen müssen um die Gleichung \ref{reedsolomon:equation:sfaktor} zu erfüllen. Da wir in $\mathbb{F}_{11}$ nur mit ganzen Zahlen arbeiten schreiben wir $\frac{1}{10}$ in $10^{-1}$ um und bestimmen diese Inverse erneut mit dem euklidischen Algorithmus und erhalten für $10^{-1} = 10$ als unseren Vorfaktor in $\mathbb{F}_{11}$. +als unseren Vorfaktor setzen müssen um, die Gleichung \ref{reedsolomon:equation:sfaktor} zu erfüllen. Da wir in $\mathbb{F}_{11}$ nur mit ganzen Zahlen arbeiten, schreiben wir $\frac{1}{10}$ in $10^{-1}$ um und bestimmen diese Inverse erneut mit dem euklidischen Algorithmus. So erhalten wir $10^{-1} = 10$ als Vorfaktor in $\mathbb{F}_{11}$. % %erfüllt wird. Wir schreiben den Bruch um in $\frac{1}{10} = 10^{-1}$ und wenden darauf erneut den euklidischen Algorithmus an und erhalten somit den Vorfaktor $10^{-1} = 10 = s$ in $\mathbb{F}_{11}$. % diff --git a/buch/papers/reedsolomon/dtf.tex b/buch/papers/reedsolomon/dtf.tex new file mode 100644 index 0000000..025be3a --- /dev/null +++ b/buch/papers/reedsolomon/dtf.tex @@ -0,0 +1,30 @@ +% +% teil3.tex -- Beispiel-File für Teil 3 +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Diskrete Fourien Transformation +\label{reedsolomon:section:dtf}} +\rhead{Umwandlung mit DTF} +Um die Polynominterpolation zu umgehen, gehen wir nun über in die Fourientransformation. +Dies wird weder eine erklärung der Forientransorfmation noch ein genauer gebrauch +für den Reed-Solomon-Code. Dieser Abschnitt zeigt nur wie die Fourientransformation auf Fehler reagiert. +wobei sie dann bei späteren Berchnungen ganz nütlich ist. + +\subsection{Übertragungsabfolge +\label{reedsolomon:subsection:Übertragungsabfolge}} +Das Signal.... sind die Daten, Zahlen welche übertragen werden sollen. +Das speziell ist das wir 100 Punkte übertragen und von 64 bis 100, +werden nur Null Punkte übertragen, dies weiss auch unser Empfänger. +Nun wird das Signal in Abbildung... codiert... +Somit wird die Information jedes Punktes auf das ganze spektrum von 0 bis 100 übertragen. +Kommen nuun drei Fehler... hinzu zu diesem codierten Signal sind diese nicht zu erkennen. +Nach dem Empfangen... und decodieren ... erkennt man die fehlerhafte information in den Punkten 64 bis 100. +Filtert man nur diese Punkte heraus und Transformiert sie mit Fourier erhält man die stellen an denen die Fehler sich eingeschlichen haben. + +\subsection{Diskrete Fourientransformation Zusamenhang +\label{reedsolomon:subsection:dtfzusamenhang}} +Die Diskrete Fourientransformation ist definiert als +.... + + diff --git a/buch/papers/reedsolomon/einleitung.tex b/buch/papers/reedsolomon/einleitung.tex new file mode 100644 index 0000000..3d40db1 --- /dev/null +++ b/buch/papers/reedsolomon/einleitung.tex @@ -0,0 +1,19 @@ +% +% einleitung.tex -- Beispiel-File für die Einleitung +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Einleitung +\label{reedsolomon:section:einleitung}} +\rhead{Einleitung} +Der Reed-Solomon-Code ist entstaden im ... vom .. um, +das Problem der Daten Übertragung zu lösen. +In deiesem Abschnitt wird möglichst verständlich die mathematische Abfolge, Funktion oder Algorithmus erklärt. +Es wird jedoch nicht auf die technische Umsetzung oder Implementierung eingegangen. +Um beim Daten Übertragen fehler zu erkennen könnte man die Daten jeweils doppelt senden, +und so jeweilige Fehler zu erkennen. +Doch dies braucht schnell unmengen an Daten, wenn man nach vielen Fehler absichern möchte. +Der Reed-Solomon-Code macht dies auf eine andere, clevere Weise. + + + diff --git a/buch/papers/reedsolomon/endlichekoerper.tex b/buch/papers/reedsolomon/endlichekoerper.tex index 19e5dd4..1d196fd 100644 --- a/buch/papers/reedsolomon/endlichekoerper.tex +++ b/buch/papers/reedsolomon/endlichekoerper.tex @@ -1,7 +1,7 @@ % -% teil1.tex -- Beispiel-File für das Paper +% endlichekoerper.tex -- endliche Körper % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % \section{Reed-Solomon in Endlichen Körpern \label{reedsolomon:section:endlichekoerper}} diff --git a/buch/papers/reedsolomon/hilfstabellen.tex b/buch/papers/reedsolomon/hilfstabellen.tex index b006f21..24fabdf 100644 --- a/buch/papers/reedsolomon/hilfstabellen.tex +++ b/buch/papers/reedsolomon/hilfstabellen.tex @@ -1,8 +1,7 @@ % -% hilfstabellen.tex -% Autor: Michael Steiner +% hilfstabellen.tex -- Hilfstabellen % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % \section{Hilfstabellen für $\mathbb{F}_{11}$ \label{reedsolomon:section:hilfstabellen}} diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex new file mode 100644 index 0000000..4a7716a --- /dev/null +++ b/buch/papers/reedsolomon/idee.tex @@ -0,0 +1,58 @@ +% +% teil1.tex -- Beispiel-File für das Paper +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Idee +\label{reedsolomon:section:idee}} +\rhead{Problemstellung} +Das Problem liegt darin Informationen, Zahlen, +zu Übertragen und Fehler zu erkennen. +Beim Reed-Solomon-Code kann man nicht nur Fehler erkenen, +man kann sogar einige Fehler korrigieren. + +\rhead{Polynom-Ansatz} +Eine Idee ist die Daten, +ein Polynom zu bilden und dieses dann mit bestimmten Punkten überträgt. +Nehmen wir als beisbiel die Zahlen \textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5}, +welche uns dann das Polynom +\begin{equation} +p(x) += +2x^2 + 1x + 5 +\label{reedsolomon:equation1} +\end{equation} +ergeben. +Übertragen werden nun die stellen 1, 2, 3\dots 7 dieses Polynomes. +Grafisch sieht man dies dann im Abbild //TODO +Wenn ein Fehler sich in die Übertragung eingeschlichen hatt, muss der Leser/Empfänger erkennen, welches das Richtige Polynom ist. +Der Leser/Empfänger weiss, mit welchem Grad das Polynom entwickelt wurde. +\subsection{Beispiel} +Für das Beispeil aus der Gleichung \ref{reedsolomon:equation1}, +ist ein Polynome zweiten Grades durch drei Punkte eindeutig bestimmbar. +Hat es Fehler in der Übertragunge gegeben, kann man diese erkennen, +da alle Punkte, die korrekt sind, auf dem Polynom liegen müssen. +Ab wie vielen Fehler ist das Polynom nicht mehr erkennbar beim Übertragen von 7 Punkten? +Bei 2 Fehlern kann man noch eindeutig bestimmen, dass das Polynom mit 4 Punkten, +gegenüber dem mit 5 Punkten falsch liegt. +Werden es mehr Fehler kann nur erkennt werden das das Polynom nicht stimmt. +Das Orginale Polynom kann aber nicht mehr gefunden werden. +Dabei sollten mehr Übertragungspunkte gegeben werden. + +\section{Fehlerbestimmung +\label{reedsolomon:section:Fehlerbestimmmung}} +So wird ein Muster indentifiziert, welches genau vorherbestimmen kann, +wie gross das Polynom sein muss und wie viele Übertragungspunkte gegeben werden müssen. +Durch ein klein wenig Überlegung ist klar das die anzahl Zahlen (Daten, ab hier verwenden wir das Wort Nutzlast), +die dan Entschlüsselt werden sollen den Grad des Polynoms minus 1 ergeben. +Für die Anzahl an Übertragungspunkte, muss bestimmt werden wieviel Fehler erkennt und korrigiert werden sollen. +Mit Hilfe der Tabelle.... sieht man das es bei $$t$$ Fehlern und $$k$$ Nutzlast, +für das Übertragen $$k+2t$$ Punkte gegben werden müssen. + +Ein toller Nebeneffekt ist das dadurch auch $$2t$$ Fehler erkannt werden. +um zurück auf unser Beispiel zu kommen, +können von den 7 Übertragungspunkten bis zu $$2t = 2*2 = 4 $$ Punkten falsch liegen +und es wird kein eindeutiges Polynom 2ten Grades erkannt, und somit die Nutzlast Daten als fehlerhaft deklariert. + +Ein Polynom durch Punkt mit Polynom Interpolation zu rekonstruieren ist schwierig und Fehleranfällig. + diff --git a/buch/papers/reedsolomon/images/Compact_Disc.png b/buch/papers/reedsolomon/images/Compact_Disc.png Binary files differnew file mode 100644 index 0000000..7e3f870 --- /dev/null +++ b/buch/papers/reedsolomon/images/Compact_Disc.png diff --git a/buch/papers/reedsolomon/images/Voyager_Sonde.png b/buch/papers/reedsolomon/images/Voyager_Sonde.png Binary files differnew file mode 100644 index 0000000..e4dc400 --- /dev/null +++ b/buch/papers/reedsolomon/images/Voyager_Sonde.png diff --git a/buch/papers/reedsolomon/images/qrcode_h.png b/buch/papers/reedsolomon/images/qrcode_h.png Binary files differnew file mode 100644 index 0000000..4dc5779 --- /dev/null +++ b/buch/papers/reedsolomon/images/qrcode_h.png diff --git a/buch/papers/reedsolomon/images/qrcode_l.png b/buch/papers/reedsolomon/images/qrcode_l.png Binary files differnew file mode 100644 index 0000000..69f807f --- /dev/null +++ b/buch/papers/reedsolomon/images/qrcode_l.png diff --git a/buch/papers/reedsolomon/main.tex b/buch/papers/reedsolomon/main.tex index 4e2fd60..6bd04f2 100644 --- a/buch/papers/reedsolomon/main.tex +++ b/buch/papers/reedsolomon/main.tex @@ -28,10 +28,10 @@ Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren \end{itemize} % Joshua -\input{papers/reedsolomon/teil0.tex} -\input{papers/reedsolomon/teil1.tex} +\input{papers/reedsolomon/einleitung.tex} +\input{papers/reedsolomon/idee.tex} \input{papers/reedsolomon/teil2.tex} -\input{papers/reedsolomon/teil3.tex} +\input{papers/reedsolomon/dtf.tex} % Michael \input{papers/reedsolomon/endlichekoerper} @@ -40,7 +40,7 @@ Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren \input{papers/reedsolomon/decmitfehler} \input{papers/reedsolomon/rekonstruktion} \input{papers/reedsolomon/zusammenfassung} -%\input{papers/reedsolomon/anwendungen} -> geplant +\input{papers/reedsolomon/anwendungen} \input{papers/reedsolomon/hilfstabellen} \nocite{reedsolomon:weitz} diff --git a/buch/papers/reedsolomon/rekonstruktion.tex b/buch/papers/reedsolomon/rekonstruktion.tex index 04e748c..b099e68 100644 --- a/buch/papers/reedsolomon/rekonstruktion.tex +++ b/buch/papers/reedsolomon/rekonstruktion.tex @@ -1,10 +1,9 @@ % -% rekonstruktion.tex -% Autor: Michael Steiner +% rekonstruktion.tex -- Rekonstruktion % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % -\section{Nachricht Rekonstruieren +\section{Nachricht rekonstruieren \label{reedsolomon:section:rekonstruktion}} \rhead{Rekonstruktion der Nachricht} Im letzten Abschnitt haben wir eine Möglichkeit gefunden, wie wir die fehlerhaften Stellen lokalisieren können. @@ -49,7 +48,7 @@ Wir stellen also die Matrix auf und markieren gleichzeitig die Fehlerstellen: \end{pmatrix} . \] -Die rot markierten Stellen im Übertragungsvektor enthalten Fehler und bringt uns daher keinen weiterer Nutzen. +Die rot markierten Stellen im Übertragungsvektor enthalten Fehler und bringt uns daher keinen weiteren Nutzen. Aus diesem Grund werden diese Stellen aus dem Vektor entfernt, was wir hier ohne Probleme machen können, da dieser Code ja über Fehlerkorrekturstellen verfügt, deren Aufgabe es ist, eine bestimmte Anzahl an Fehler kompensieren zu können. Die dazugehörigen Zeilen in der Matrix werden ebenfalls entfernt, da die Matrix gleich viele Zeilen wie im Übertragungsvektor aufweisen muss, damit man ihn decodieren kann. @@ -78,6 +77,7 @@ Daraus resultiert Die Matrix ist jedoch nicht mehr quadratisch, was eine Rekonstruktion durch Inversion ausschliesst. Um die quadratische Form wieder herzustellen müssen wir zwei Spalten aus der Matrix entfernen. Wir kennen aber das Resultat aus den letzten vier Spalten, da wir wissen, das die Nachricht aus Nutzdatenteil und Fehlerkorrekturteil besteht, wobei der letzteres bekanntlich aus lauter Nullstellen besteht. +Wir nehmen die markierten Spalten in \[ \begin{pmatrix} 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ 7 \\ 4 \\ @@ -98,7 +98,7 @@ Wir kennen aber das Resultat aus den letzten vier Spalten, da wir wissen, das di m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ \textcolor{darkgreen}{m_6} \\ \textcolor{darkgreen}{m_7} \\ \textcolor{darkgreen}{m_8} \\ \textcolor{darkgreen}{m_9} \\ \end{pmatrix} \] -Wir nehmen die entsprechenden Spalten aus der Matrix heraus und erhalten so das Überbestimmte Gleichungssystem +aus der Matrix heraus und erhalten so das Überbestimmte Gleichungssystem \[ \begin{pmatrix} 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ \textcolor{red}{7} \\ \textcolor{red}{4} \\ diff --git a/buch/papers/reedsolomon/restetabelle1.tex b/buch/papers/reedsolomon/restetabelle1.tex index 3969ef2..b9a0e59 100644 --- a/buch/papers/reedsolomon/restetabelle1.tex +++ b/buch/papers/reedsolomon/restetabelle1.tex @@ -1,6 +1,8 @@ -% created by Michael Steiner % -% Restetabelle von F_11: Addition +% restetabelle1.tex -- Restetabelle von F_11: Addition +% +% (c) 2021 Michael Steiner, Hochschule Rapperswil +% % alternatives design %\begin{figure} diff --git a/buch/papers/reedsolomon/restetabelle2.tex b/buch/papers/reedsolomon/restetabelle2.tex index 1a9815c..3b13ea2 100644 --- a/buch/papers/reedsolomon/restetabelle2.tex +++ b/buch/papers/reedsolomon/restetabelle2.tex @@ -1,6 +1,8 @@ -% created by Michael Steiner % -% Restetabelle von F_11: Multiplikation +% restetabelle2.tex -- Restetabelle von F_11: Multiplikation +% +% (c) 2021 Michael Steiner, Hochschule Rapperswil +% % alternatives design %\begin{figure} diff --git a/buch/papers/reedsolomon/teil0.tex b/buch/papers/reedsolomon/teil0.tex deleted file mode 100644 index b7ae971..0000000 --- a/buch/papers/reedsolomon/teil0.tex +++ /dev/null @@ -1,22 +0,0 @@ -% -% einleitung.tex -- Beispiel-File für die Einleitung -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 0\label{reedsolomon:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{reedsolomon:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. - -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. - - diff --git a/buch/papers/reedsolomon/teil1.tex b/buch/papers/reedsolomon/teil1.tex deleted file mode 100644 index 0aa9b41..0000000 --- a/buch/papers/reedsolomon/teil1.tex +++ /dev/null @@ -1,55 +0,0 @@ -% -% teil1.tex -- Beispiel-File für das Paper -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 1 -\label{reedsolomon:section:teil1}} -\rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt -\begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{reedsolomon:equation1} -\end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. - -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? - -\subsection{De finibus bonorum et malorum -\label{reedsolomon:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. - -Et harum quidem rerum facilis est et expedita distinctio -\ref{reedsolomon:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{reedsolomon:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. - - diff --git a/buch/papers/reedsolomon/teil3.tex b/buch/papers/reedsolomon/teil3.tex deleted file mode 100644 index 91a8d4e..0000000 --- a/buch/papers/reedsolomon/teil3.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil3.tex -- Beispiel-File für Teil 3 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 3 -\label{reedsolomon:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{reedsolomon:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/reedsolomon/zusammenfassung.tex b/buch/papers/reedsolomon/zusammenfassung.tex index 568356f..c24fcf3 100644 --- a/buch/papers/reedsolomon/zusammenfassung.tex +++ b/buch/papers/reedsolomon/zusammenfassung.tex @@ -1,15 +1,66 @@ -\section{Zusammenfassung - \label{reedsolomon:section:zf}} +% +% zusammenfassung.tex -- Zusammenfassung +% +% (c) 2021 Michael Steiner, Hochschule Rapperswil +% +\section{Zusammenfassung +\label{reedsolomon:section:zf}} \rhead{Zusammenfassung} Dieser Abschnitt beinhaltet eine Übersicht über die Funktionsweise eines Reed-Solomon-Codes für beliebige endliche Körper. -TODO: - \subsubsection{Schritt 1: primitives Element} +Zu Beginn soll entschieden werden, in welchem endlichen Körper $\mathbb{F}_{q}$ gerechnet werden soll. +Ausserdem muss im gewählten Körper eine primitive Einheitswurzel gefunden, bzw. bestimmt werden. \subsubsection{Schritt 2: Codierung} +Für die Codierung wird die Nachricht als Koeffizienten des Polynoms $m(X)$ geschrieben, anschliessend wird $a^i$ in $m(X)$ eingesetzt. +Daraus ergibt sich die Codierungsmatrix +\[ +A(a) = +\begin{pmatrix} +a^0 & a^0 & a^0 & \dots \\ +a^0 & a^1 & a^2 & \dots \\ +a^0 & a^2 & a^4 & \dots \\ +\vdots&\vdots&\vdots&\ddots +\end{pmatrix} +. +\] +Mit dieser Matrix können wir den Nachrichtenblock zum Übertragungsvektor codieren. \subsubsection{Schritt 3: Decodierung ohne Fehler} +Im ersten Schritt zur Decodierung muss geprüft werden, ob der Übertragungsvektor Fehler beinhaltet. +Ist dies nicht der Fall, so kann die Matrix $A(a)$ invertiert werden mit +\[ +A(a)^{-1} = \frac{1}{q-1} \cdot A(a^{-1}). +\] +Die Codierungsmatrix ändert sich somit zur Decodierungsmatrix +\[ +\begin{pmatrix} + a^0 & a^0 & a^0 & \dots \\ + a^0 & a^1 & a^2 & \dots \\ + a^0 & a^2 & a^4 & \dots \\ + \vdots&\vdots&\vdots &\ddots +\end{pmatrix} += +\frac{1}{q-1} +\cdot +\begin{pmatrix} + a^0 & a^0 & a^0 & \dots \\ + a^0 & a^{-1} & a^{-2} & \dots \\ + a^0 & a^{-2} & a^{-4} & \dots \\ + \vdots&\vdots&\vdots&\ddots +\end{pmatrix} +. +\] +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. +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. +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. +%Dazu nehmen wir das Polynom $f(X)$, welches wir durch den Satz von Fermat erhalten, und berechnen so das $\operatorname{kgV}(f(X),d(X))$ und kommen so auf das Lokatorpolynom $l(X)$. Durch das bestimmen von den Exponenten erhalten wir die Fehlerstellen, welche wir aus dem Gleichungssystem entfernen müssen. Übrig bleibt das berechnen dieses Gleichungssystems. |