I Einleitung In der vorliegenden Arbeit geht es hauptsächlich um die im Jahr 1843 von Sir William Roward Hamilton eingeführten Quaternionen. Die Einführung der Quaternionen kann jedoch erst über die wichtigen komplexen Zahlen, welche ein Erweiterung der reellen Zahlen darstellen, erfolgen. Deswegen unterteilt sich diese Arbeit wesentlich in drei Teile. Im ersten Teil werden die komplexen Zahlen zunächst als Erweiterung der reellen Zahlen eingeführt. Schließlich werden die komplexen Zahlen als zweidimensionaler algebraischer Körper verstanden, um einen Übergang zum zweiten Teil dieser Arbeit zu finden, in dem nun die Quaternionen eingeführt werden. Hamilton versuchte nämlich lange eine ähnliche Struktur der komplexen Zahlen im dreidimensionalen Raum zu finden. Im letzten Teil soll schließlich noch gezeigt werden, dass die Quaternionen heute kein reines mathematisches Gebiet mehr darstellen, sondern durchaus bereits ihre Anwendung haben, wobei in dieser Arbeit Bezug zur Beschreibung von Rotationen durch Quaternionen im Raum genommen wird. Diese Arbeit kann dabei allerdings nur einen groben Überblick über die Bedeutung der Quaternionen verschaffen. Natürlich wird man ohne Mathematik in solch einem Thema nicht auskommen. Es wurde aber stets darauf geachtet die Mathematik möglichst einfach und knapp zu halten. Kenntnisse in der linearen Algebra und der analytischen Geometrie sind jedoch zu einem besseren Verständnis dieser Arbeit von Vorteil. Hier ist noch zu vermerken, dass Vektoren in dieser Arbeit auf Grund der einfacheren Schreibweise fettgedruckt und dafür ohne Vektorpfeil versehen sind. Das Thema der Quaternionen ist ein sehr interessantes und weitreichendes Thema. Im 19. Jahrhundert brach zu den Quaternionen eine ganze Euphorie aus, da man den Quaternionen eine sehr hohe Bedeutung zu sprach. Heute weiß man allerdings, dass sie zwar weniger von Bedeutung, als die komplexen Zahlen, aber trotzdem nicht unwesentlich sind. Besonders wurden ihre Vorzüge in der Softwareentwicklung erkannt, womit sie in unserer technischen Umwelt einen hohen Stellenwert haben. Dies ist den meisten Menschen wohl eher unbekannt, da mathematische Revolutionen üblicherweise immer schleichend im Hintergrund der Gesellschaft statt finden. Unsere heutige Lebensqualität verdanken wir im Wesentlichen der Mathematik, weshalb es wichtig ist sich mit ihr auseinanderzusetzen. In dieser Arbeit soll deswegen auch verdeutlicht werden, wie man durch Definitionen neue Begriffe in der Mathematik einführt und diese schließlich unerwartet eine Anwendung finden können. Ähnliches gilt für die heute wichtige Kryptologie, welche aus der Zahlentheorie entstand, die vorher nur als mathematische Spielerei galt. 1 II Komplexe Zahlen 2.1 Einführung der komplexen Zahlen Die anfänglichen Probleme der Mathematik bestanden darin, dass häufig einfache Rechenoperationen in den bekannten Zahlenbereichen nicht zu einer Lösung führten. Als zum Beispiel nur die natürlichen Zahlen bekannt waren konnte man problemlos mit ihnen addieren und multiplizieren, ohne den Zahlenbereich der natürlichen Zahlen verlassen zu müssen. Führt man jedoch die Subtraktion und Division als Umkehrung der Addition und Multiplikation ein, so ergeben sich neue Fragen, die im Bereich der natürlichen Zahlen nicht beantwortet werden können. Es wurde deshalb notwendig den Bereich der natürlichen Zahlen zu erweitern. Führt man negative Zahlen ein, so findet man z.B mit 2-5 = -3 die Lösung eines Problems, welches eine Lösung erst im negativen Zahlenbereich besitzt. Führt man schließlich noch den Bereich der rationalen Zahlen ein, so hat auch jede Divisionsaufgabe ihre Lösung (Ausnahme ist die Division durch 0), beispielsweise 3/4 = 0,75. Geht man noch eine Rechenebene höher und führt Potenzen, Wurzeln und Logarithmen ein, so werden neben den rationalen Zahlen auch irrationale Zahlen notwendig, um zum Beispiel die Frage nach der Lösung von 2 zu beantworten. Die Menge der rationalen Zahlen wird mit der Menge der irrationalen Zahlen zu der Menge der reellen Zahlen zusammengefasst und ihr Symbol in der Mathematik ist IR. Nun lassen sich aber im Bereich der reellen Zahlen bei weitem nicht alle algebraischen Probleme lösen. Möchte man die Gleichung x² + 1 = 0 lösen, so muss man während des Lösungsweges die Wurzel aus einem negativen Radikanten ziehen. Die Lösung dieser quadratischen Gleichung wäre nämlich x 1 . Es handelt sich also um eine Zahl, die mit sich selbst multipliziert –1 ergibt. Solch eine Zahl gibt es im Bereich der reellen Zahlen nicht, da jede reelle Zahl mit sich selbst multipliziert eine positive Zahl ergibt. Die Menge der reellen Zahlen kann also algebraisch nicht abgeschlossen sein. Kann man dem Ausdruck 1 eine sinnvolle Definition geben, so hätte man gemäß dieser Definition eine Lösung für das Problem gefunden. Dieser Ausdruck wird deswegen nun mit i definiert, wobei i als imaginäre Einheit bezeichnet wird, da die imaginäre Einheit anfangs als nicht real betrachtet, sondern eher als mathematische Spielerei angesehen wurde. Später wird aber ersichtlich, dass die Einführung von i bedeutsamer ist als man annahm. i ist also eine gedachte nicht reelle Zahl deren Quadrat –1 ergibt. 2 Mit der Einführung der imaginären Einheit lassen sich natürlich weit mehr algebraische Problemstellungen lösen, so gilt a a 1 a *i . Allgemein bezeichnet man eine Zahl der Form z = bi mit b IR als imaginäre Zahl. Man kann den Bereich der imaginären Zahlen noch zum Bereich der komplexen Zahlen verallgemeinern, indem man zu der imaginären Zahl eine reelle Zahl addiert. Man erhält damit z = a + bi. Eine komplexe Zahl hat sowohl einen Realteil als auch einen Imaginärteil. Man kann für die komplexen Zahlen noch eine Addition und Multiplikation definieren. Eine Addition zweier komplexer Zahlen z1 = a + bi und z2 = c + di wird komponentenweise wie folgt durchgeführt: z1 + z2 = (a + bi) + (c + di) = (a + c) + (b + d)i Bei einer Multiplikation zweier komplexer Zahlen stellt man sich die imaginäre Einheit vorübergehend als Variable vor und beachtet beim Ausmultiplizieren i²=-1. z1 * z2 = (a + bi)*(c + di)=ac + adi + bci + bdi² = (ac - bd) + (ad + bc)i Nach dieser Definition ist das Produkt zweier komplexer Zahlen also wieder eine komplexe Zahl. Nun kann abschließend der Bereich CIder komplexen Zahlen als Menge aller geordneten Zahlentupel (a; b) reeller Zahlen a und b, in der zwei Rechenoperationen „+“ und „*“ erklärt sind, definiert werden. 2.2 Rechnen mit komplexen Zahlen Für die Addition und Multiplikation komplexer Zahlen gelten das Kommutativ-, Assoziativ- und Distributivgesetz. Subtraktion Analog zur Addition zweier komplexer Zahlen lassen sich zwei komplexe Zahlen z1 = a + bi und z2 = c + di komponentenweise subtrahieren. z1 - z2 = (a + bi) - (c + di) = (a - c) + (b - d)i Division Die konjugiert komplexe Zahl einer komplexen Zahl z = c + di ist z̄ = c - di. Um den Quotient zweier komplexer Zahlen z1 = a + bi und z2 = c + di zu berechnen muss man den Bruch mit der konjugiert komplexen Zahl erweitern. a bi (a bi)(c di) (ac bd ) (ad bc)i c di (c di)(c di) c2 d 2 3 Algebraische Abgeschlossenheit Die Menge der komplexen Zahlen ist algebraisch abgeschlossen, d.h jede algebraische Gleichung ist in CI lösbar. Auf einen Beweis soll hier verzichtet werden, da dies nicht Schwerpunkt dieser Arbeit ist. 2.3 Die gaußsche Zahlenebene Wie man sicher weiß kann man reelle Zahlen auf einer Zahlengeraden darstellen. Betrachtet man diese Zahlengerade als x-Achse und führt die y-Achse als Zahlengerade der imaginären Zahlenmenge ein, so lassen sich die komplexen Zahlen anschaulich auf einer Ebene abbilden. Dabei entspricht der Imaginärteil die y-Koordinate und der Realteil die x-Koordinate. Deswegen bezeichnet man die Schreibweise z = a + bi auch als kartesische Form einer komplexen Zahl. Betrachtet man die nebenstehende Abbildung, so kann man die komplexe Zahl auch mit einem Winkel φ und der Länge r vom Ursprung zur komplexen Zahl ausdrücken. Es ist a = rcos(φ) und b = rsin(φ). Setzt man dies in z = a + bi ein, so erhält man z = r (cos(φ) + sin(φ)i). Es gilt r = a² + b² , was somit die zugeordnete Länge einer komplexen Zahl darstellt. Weiterhin gilt: cos 1 n n 0 sin 1 n n 0 ei n 0 2n 2n ! 2 n1 2n 1! i n n! 2n i n rei 2 n1 n n r z r 1 i 1 2n ! n0 2n 1! n0 n! n 0 Dabei wurden die Taylorreihen von Sinus, Kosinus und der e-Funktion benutzt. Die Darstellung z re i einer komplexen Zahl bezeichnet man als eulersche Form. 4 2.4 Der Begriff des algebraischen Körpers Wie man im letzten Abschnitt gesehen hat lassen sich komplexe Zahlen in einer Ebene darstellen. In der Algebra gibt es auch den Begriff des algebraischen Körpers. Eine Menge K ist ein algebraischer Körper wenn für diese Menge zwei binäre Verknüpfungen „+“ und „*“ definiert und dabei folgende Eigenschaften erfüllt sind: 1.) Gültigkeit des Kommutativ- und des Assoziativgesetzes, sowohl multiplikativ als auch additiv 2.) Existenz eines additiv neutralen Elementes 0 K . 3.) Existenz eines multiplikativ neutralen Elementes 1 K 4.) Existenz eines zu jedem a K additiv inversen Elementes –a 5.) Existenz eines zu jedem a K multiplikativ inversen Elementes 1/a 6.) Gültigkeit des Distributivgesetzes 7.) zwischen zwei Elementen a und b gilt entweder a > b, a = b oder a < b Nach dieser Definition eines algebraischen Körpers stellt die Menge der rationalen Zahlen den kleinsten algebraischen Körper dar. Die Menge der reellen Zahlen ist ein Oberkörper des Körpers der rationalen Zahlen. Für die Menge der komplexen Zahlen gilt aber die letzte Bedingung nicht. Man kann nämlich keine Aussage bzg. 2i > i oder 2i < i treffen. Multipliziert man 2i > i mit i, so erhält man –2>-1, was offensichtlich falsch ist. Subtrahiert man dagegen mit i so erhält man i > 0, was nicht zu einer sinnvollen Aussage führt. Deswegen muss man hier eine Einschränkung vornehmen, wenn man die Menge der komplexen Zahlen als algebraischen Körper definieren möchte. Die Menge der komplexen Zahlen stellt deswegen auch einen ungeordneten Körper dar. Im Folgenden wird dieser ungeordnete Körper abkürzend nur Körper genannt. Dieser Körper ist ein Oberkörper des Körpers der reellen Zahlen. Da man, wie im vorigen Abschnitt gezeigt wurde, die komplexen Zahlen in einer Ebene darstellen kann, handelt es sich hierbei um einen zweidimensionalen Körper. 5 III Quaternionen 3.1 Einführung der Quaternionen Im vorigen Abschnitt wurde die Menge der komplexen Zahlen als zweidimensionaler Körper verstanden. Kann man vielleicht im R³ sinnvoll solch einen Körper als Verallgemeinerung des komplexen Körpers definieren? Es wird also nach einer Verallgemeinerung des komplexen Körpers gefragt, nicht aber nach einer Verallgemeinerung der komplexen Zahlen, denn eine Verallgemeinerung der komplexen Zahlen ist nicht mehr notwendig oder auch gar nicht möglich, da die Menge der komplexen Zahlen algebraisch abgeschlossen ist. Trotzdem kann man aber nach einer ähnlichen Struktur in höherdimensionalen Räumen fragen. Es wird analog zu den komplexen Zahlen vom Ansatz h = a + bi + cj ausgegangen, wobei j eine zweite erst einmal nicht näher bestimmte imaginäre Einheit ist. Ebenfalls naheliegend ist es die Beziehung i²=j²=-1 zu definieren. Daraus folgt aber nicht i = j, denn radizieren ist keine Äquivalenzumformung. Damit man einen algebraischen Körper konstruieren kann, muss man für h = a + bi + cj eine additive und eine multiplikative Verknüpfung definieren. Die Addition kann wieder komponentenweise erfolgen: h1 + h2 = (a + bi + cj) + (d + ei + fj) = (a + d) + (b + e)i + (c + f)j Probleme dagegen bereitet die Multiplikation: h1 * h2 = (a + bi + cj) * (d + ei + fj) = (ad – be - cf) + (ae + bd)i + (af + cd)j + bfij + ceji Man erhält somit eine reine Algebra, aber keinen algebraischen Körper, weil man noch nicht weiß, wie die beiden Ausdrücke ij und ji zu interpretieren sind. Analog zu den komplexen Zahlen soll für das Quadrat des Betrages von h = a + bi + cj |h|² =a² + b ²+ c² gelten. Das Längenquadrat soll mit der Multiplikation konform gehen, so dass |h|² = |h²| gilt. Das Quadrat von h ergibt sich zu h² = a² - b² - c² + 2abi + 2acj + 2bcij. Wäre 2bcij gleich null, so hätte man wieder ein Element der Form h = a + bi + cj gewonnen. Deswegen stellt man sich vorübergehend den Ausdruck 2bcij als null vor, ohne sich dabei über die Bedeutung des Ausdrucks ij im Klaren zu sein. Berechnet man die Länge von h², so erhält man (a² - b² - c²) + (2ab)² + (2ac)² = (a² + b² + c²)². Es stimmt also mit der Beziehung |h|²=|h²| überein, sofern man 2bcij null setzt. 6 Jetzt soll aber gerade dieser Ausdruck genauer untersucht werden. Beim Quadrieren von h taucht zeitweilig nicht der Ausdruck 2bcij, sondern bcij + bcji auf. Dies wurde geradezu selbstverständlich gemäß des Kommutativgesetzes zu 2bcij zusammengefasst. Vielleicht ist aber ij ≠ ji. Es ist also sinnvoll auf das Kommutativgesetz zu verzichten und ij := -ji zu definieren. Nach dieser Definition gilt nämlich bcij + bcji = bcij – bcij = 0, womit man eine Menge gewonnen hat. Nach dieser definierten nicht kommutativen Multiplikation erhält man: (a + bi + cj) * (d + ei + fj) = (ad - be - cf) + (ae + bd)i + (af + cd)j + (bf - ce)ij Hier befindet sich trotzdem noch der Ausdruck ij im Term. Ersetzt man ij durch k und betrachtet k als dritte imaginäre Einheit, so erhält man: (a + bi + cj)*(d + ei + fj) = (ad – be - cf) + (ae + bd)i + (af + cd)j + (bf - ce)k Naheliegend ist natürlich wieder k²=-1. Aus dem Produkt zweier Elemente einer dreidimensionalen Menge hat man nun eine vierdimensionale Menge konstruiert. Es wird nun noch einen Schritt weitergegangen und auf eine dreidimensionale Menge gänzlich verzichtet. Im Folgenden werden nur Elemente der Form h = a + bi + cj + dk betrachtet. Demnach war bei der vorigen Multiplikation einfach d = 0. Dabei bezeichnet man h = a + bi + cj + dk als Quaternion. Man kann nun zeigen, dass das Produkt zweier Quaternionen wieder ein Quaternion ergibt. Die Multiplikation der imaginären Einheiten erfolgt dabei gemäß folgender Multiplikationstabelle, die sich aus der Definition ij := k und ji := -k ableiten lässt. * 1 i j k 1 1 i j k i i -1 -k j j j k -1 -i k k -j i -1 Auf dieses sogenannte quaternionische Produkt wird in Abschnitt 3.3 genauer eingegangen. Somit wurde ein nicht kommutativer Körper im R4 konstruiert. Solch einen nicht kommutativen Körper bezeichnet man auch als Schiefkörper. Allgemein gefasst ist also die Menge der Quaternionen ein Schiefkörper im R4, der aus der Menge aller Zahlenquadrupel (a, b, c, d) reeller Zahlen a, b, c und d, in der zwei Rechenoperationen „+“ und „*“ definiert werden, gebildet wird. Ihr Formelzeichen ist IHI in Anlehnung ihres Entdeckers Hamilton. 3.2 Darstellungsformen der Quaternionen Zahlenquadrupel kann man mit beliebigen reellen Zahlen addieren bzw. multiplizieren. Es sei a eine reelle Zahl, so gilt: 7 a +(a0, a1, a2, a3) = (a + a0, a1, a2, a3) (a, 0, 0, 0) + (a0, a1, a2, a3) = (a + a0, a1, a2, a3) a(a0, a1, a2, a3)=(a * a0, a1, a2, a3) (a, 0, 0, 0)(a0, a1, a2, a3)= (a * a0, a1, a2, a3) Demnach kann man ein Quaternion wie folgt zerlegen: (a0, a1, a2, a3) = (a0, 0, 0, 0) + (0, a1, 0, 0) + (0, 0, a2, 0) + (0, 0, 0, a3) = a0 (1, 0, 0, 0) + a1(0, 1, 0, 0) + a2(0, 0, 1, 0) + a3(0, 0, 0, 1) Das Quadrupel (1, 0, 0, 0) wird als die reelle Zahl 1 identifiziert. Die restlichen drei Quadrupel (0, 1, 0, 0), (0, 0, 1, 0) und (0, 0, 0, 1) stehen stellvertretend für die drei imaginären Einheiten i, j und k. Es besteht also ein Isomorphismus zwischen den imaginären Einheiten und den Zahlenquadrupeln, womit man eine weitere Darstellung der Quaternionen geschaffen hat. Man kann bei einem Quaternion h = a0 + a1i + a2j + a3k, wegen vollkommener Symmetrie zwischen den imaginären Einheiten die drei reellen Zahlen a1, a2 und a3 auch als die Komponenten eines Vektors im R³ auffassen. a0 wird dabei als Skalarteil und a1 a : a 2 a 3 als Vektorteil bezeichnet. Das Quaternion lässt sich somit in der Form a1 h a0 a 2 a 3 darstellen. Analog zu den komplexen Zahlen ist auch eine konjugierte Quaternion mit h a 0 a1 a2 a 3 definiert. 3.3 Das quaternionische Produkt Nun soll noch mal genauer das Produkt zwischen zwei Quaternionen (a0, a1, a2, a3) und (b0, b1, b2, b3) betrachtet werden. Es ist h1 * h2 = (a0, a1, a2, a3) * (b0, b1, b2, b3) = (a0 + a1i + a2j + a3k) * (b0 + b1i + b2j + b3k) = (a0b0 - a1b1 - a2b2 - a3b3) + (a0b1 + a1b0 + a2b3 - a3b2)i + (a0b2 + a2b0 + a3b1 - a1b3)j + (a0b3 + a1b2 + a3b0 - a2b1)k = (a0b0 - (a1b1 + a2b2 + a3b3)) + (a0b1 + a1b0 + a2b3 - a3b2)i + (a0b2 + a2b0 + a3b1 - a1b3)j + (a0b3 + a1b2 + a3b0 - a2b1)k Nun lässt sich das neue Quaternion, welches sich aus dem Produkt zweier Quaternionen ergeben hat natürlich auch in der Vektorform darstellen und wie folgt umformen. a0 b1 a1b0 a2b3 a3b2 b1 a1 a2b3 a3b2 h1 h2 (a0 b0 (a1b1 a2b2 a3b3 )) a0 b2 a2 b0 a3b1 a1b3 (a0 b0 (a1b1 a2b2 a3b3 )) a0 b2 b0 a2 a3b1 a1b3 a b a b a b a b b a a b a b 0 3 1 2 3 0 2 1 3 3 1 2 2 1 a1 b1 b1 a1 a1 b1 (a0 b0 a2 * b2 a0 b2 b0 a2 a2 b2 ) (a0 b0 a * b a0 b b0 a a b) a b b a a b 3 3 3 3 3 3 8 Dabei wurden im vorletzten Umformungsschritt das Skalar- und das Vektorprodukt verwendet und „o“ ist im Übrigen die Verknüpfung des quaternionischen Produktes. Letztere Darstellung des quaternionischen Produktes ist später sehr wichtig für ein weiteres Vorgehen. Deshalb sei sie hier noch einmal festgehalten. h1 h2 a0b0 a * b a0b b0a a b IV Drehungen im R3 4.1 Drehung, allgemein Im Folgenden soll eine lineare Abbildung gefunden werden mit der Drehungen im Raum geeignet beschrieben werden können. Man stellt sich dazu im Raum einen Vektor x vor. Dieser Vektor soll um eine Drehachse mit dem Winkel φ gedreht werden, so dass man einen Vektor y erzeugt, wobei die Lage der Drehachse im Raum durch einen Einheitsvektor p charakterisiert werden kann. Es ist also eine lineare Abbildung zwischen einem Vektor x und einem Vektor y, den man durch Drehung des Vektors x erhält, gesucht. Eine Möglichkeit solch einer linearen Abbildung ist y = Cx. Dabei sei C eine Matrix, die man auch als Darstellungsmatrix bezeichnet. An dieser linearen Abbildung sind zwei Bedingungen zu stellen. Zum einen muss diese lineare Abbildung längenerhaltend sein, da die Länge eines Vektors unverändert aus einer Drehung hervorgeht und zum anderen muss ein Vektortripel (x1, x2, x3) dieser Abbildung nach einer Drehung die relative Orientierung der drei Vektoren zueinander beibehalten, d.h ein Rechtsystem wird wieder in einem Rechtssystem abgebildet und ein Linkssystem ebenfalls in einem Linkssystem. Jetzt müssen mathematische Bedingungen an die Darstellungsmatrix gestellt werden, die sowohl die Längenerhaltung als auch die Orientierungserhaltung garantieren. Wegen der Längenerhaltung muss |y| = |Cx| = |x| gelten. Außerdem ergibt sich das Längenquadrat auch über das Skalarprodukt aus dem Quadrat eines Vektors zu y * y = |y|². Man kann sich nun den Vektor y als eine 3X1 Matrix vorstellen. Damit ergibt sich gemäß der Matrixmultiplikation das Längenquadrat zu yTy = (Cx)T(Cx) = xTx. yT meint dabei die transponierte Matrix der Matrix y. Nun kann man noch ein paar Umformungen tätigen, um eine notwendige Bedingung für die Längenerhaltung zu gewinnen. 9 (Cx)T(Cx) = xTx xT(CTC)x = xTx xT(E-CTC)x = 0 E ist dabei die Einheitsmatrix. Diese Gleichung ist erfüllt wenn E - CTC = 0 und damit CTC = E gilt. Eine Matrix, welche die Bedingung CTC = E erfüllt heißt orthogonal. Für eine solche orthogonale Matrix gilt außerdem det(C) = ±1. Dies lässt sich aus dem Determinantenproduktsatz det(AB) = det(A)det(B) und der Beziehung det(CT)=det(C) herleiten. det(CTC) = det(CT)det(C) = det2(C) = det(E) = 1 det(C ) = ±1 Nun sind zwei Vektortripel genau dann gleich orientiert zueinander, wenn jeweils ihre Spatprodukte das gleiche Vorzeichen besitzen. Damit also die lineare Abbildung y = Cx orientierungserhaltend ist, müssen die Spatprodukte |x1, x2, x3| und |y1, y2, y3| = |Cx1, Cx2, Cx3| für jedes beliebige Tripel (x1, x2, x3) das gleiche Vorzeichen haben. Das Spatprodukt kann gemäß |a, b, c| = det(a, b, c) berechnet werden. Daraus folgt für ein beliebiges Vektortripel der linearen Abbildung. (y1, y2, y3) = (Cx1, Cx2, Cx3) det(y1, y2, y3) = det(Cx1, Cx2, Cx3) = det(C)det(x1, x2, x3) |y1, y2, y3| = det(C) * |x1, x2, x3| Aus letzterer Gleichung folgt, dass das Vorzeichen der beiden Spatprodukte identisch ist, wenn det(C) > 0 gilt. Rückblickend auf die Bedingung det(C) = ±1 für die Längenerhaltung kann schließlich nur det(C) = 1 für die Darstellungsmatrix gelten. Jede lineare Abbildung y = Cx für die det(C) = 1 gilt heißt Drehung. 4.2 Beschreibung von Drehungen durch Quaternionen Nach diesen Vorüberlegungen soll nun eine Möglichkeit gefunden werden eine Drehung im Raum mittels Quaternionen zu beschreiben. Im Abschnitt 3.2 wurde das Quaternion bereits in der Vektordarstellung kennen gelernt. In der linearen Abbildung y = Cx kann man den Vektor x mit einem Quaternion in der Vektordarstellung ohne Skalarteil charakterisieren. Für die Darstellungsmatrix dagegen benutzt man ein Quaternion h = a + a mit Skalarteil. Für die lineare Abbildung bedeutet dies y = h o x = (a + a) o x. Hierbei ist zu beachten, dass zwischen h = a + a und x das in Abschnitt 3.3 behandelte quaternionische Produkt auszuführen ist. Man hat also statt des Matrixproduktes ein Quaternion mit dem Vektor x über dem quaternionischen Produkt miteinander verknüpft. Deswegen muss später gezeigt werden, ob es sich bei dieser Abbildung tatsächlich auch um eine Drehung handeln kann. Zu bestimmen sind jetzt noch a und a in Abhängigkeit des Drehwinkels φ, so dass es sich um eine Drehung handelt. Nach dem quaternionischen Produkt gilt: 10 y = (a+a) o x = -a * x + ax + a x x. y muss dabei ein reiner Vektor sein, jedoch ist der Ausdruck –a * x ein Skalar. Damit also y ein reiner Vektor ist, muss die Bedingung –a * x = 0 gefordert werden. Die Vektoren a und x müssen also senkrecht zueinander stehen. Es bleibt schließlich y = ax + a x x. Multipliziert man diese Abbildung vektoriell von links mit dem Vektor x , so erhält man x x y = x x (ax + a x x) = a(x x x) + x x ( a x x) = x x (a x x). Nach der Vektoridentität gilt a x (b x c) = b * (a * c) – c * ( a * b). Daraus folgt: x x y = x x (a x x) = a * (x * x) – x * (x * a) = a * |x|2 Außerdem gilt x x y = |x| * |y| * sin(φ) * p Dabei ist p derjenige Vektor vom Betrage 1, welcher die Richtung der Drehachse angibt. Dieser Vektor steht senkrecht zu der von den Vektoren x und y aufgespannten Ebene, weshalb das Vektorprodukt x x y dieselbe Richtung des Vektors p hat . Hier wurde bereits eine Einschränkung der betrachteten Drehungen gemacht, da demnach nur Drehungen senkrecht zur Drehachse betrachtet werden können. Wegen der Längenerhaltung gilt |x| = |y|, woraus x x y = |x|² * sin(φ) folgt. Durch Gleichsetzen beider Beziehungen des Vektorproduktes x x y erhält man a * |x|2 = |x|² * sin(φ) * p a = p * sin(φ), womit der gesuchte Ausdruck für a gefunden wäre. Gleichzeitig wurde sogar die geforderte Längenerhaltung garantiert. Schließlich muss noch ein geeigneter Ausdruck für den Skalarteil a gefunden werden. Hier verfährt man ähnlich und zwar ist x * y = x * (ax + a x x) = a * x * x + x * (a x x) = a * |x|2. Der Vektor a x x steht senkrecht zum Vektor x, weshalb das Spatprodukt verschwindet. Weiterhin gilt x * y = |x| * |y| * cos(φ) und wegen der Längenerhaltung folgt daraus wieder x * y = |x|2cos(φ). Gleichsetzen ergibt wiederum a * |x|2 = |x|2cos(φ) a = cos(φ). Nun hat man einen Ausdruck für a in Abhängigkeit des Drehwinkels φ gefunden. Setzt man dies in die Abbildung y = (a + a) o x ein, so erhält man y = (cos(φ) + psin(φ)) o x. 11 Nun ist aber noch zu prüfen, ob es sich bei dieser Abbildung tatsächlich um eine Drehung handelt. Dazu ist die Abbildung auf Linearität, Orientierungserhaltung und Längenerhaltung zu überprüfen, wobei letzteres in der Herleitung bereits mit einfloss. Die Linearität der Abbildung ist geradezu offensichtlich. Genauer geprüft werden muss jedoch die Orientierungserhaltung der Abbildung. Ein Kriterium dafür wurde bereits im Abschnitt 4.1 ausgemacht, nämlich die Spatprodukte zweier Vektortripel (x1, x2, x3) und (y1, y2, y3) müssen das gleiche Vorzeichen besitzen. Jedoch ist die Abbildung nur eingeschränkt gültig, so dass nur Drehungen senkrecht zur Drehachse erlaubt sind. Dies bedeutet, dass alle zu drehenden Vektoren nach der Drehung wieder in derselben Ebene liegen müssen, um die Orientierungserhaltung in einer Ebene also zu gewährleisten, genügt es nur zwei Vektortupel (x1, x2) und (y1, y2) zu betrachten. Damit zwei Vektortupel in einer Ebene orientierungserhaltend sind, müssen die jeweiligen Vektorprodukte vorzeichengleich sein. Dies zeigt sich durch eine etwas längere Rechung unter Beachtung von p┴(x1, x2) wie folgt: y1 x y2 = [( cos(φ) + psin(φ)) o x1] x [(cos(φ) + psin(φ)) o x2] = [cos(φ)x1 + sin(φ) * (p x x1)] x [cos(φ) x2 + sin(φ) * (p x x2)] =cos2(φ)(x1 x x2) + sin(φ)cos(φ)(x1 x (p x x2)) + sin(φ)cos(φ)((p x x1) x x2) + sin2(φ) (p x x1) x (p x x2) = cos2(φ)(x1 x x2) + sin(φ)cos(φ)p * (x1 * x2) - sin(φ)cos(φ)x2 * (x1 * p) - sin(φ)cos(φ)p * (x2 * x1) + sin(φ)cos(φ)x1 * (x2 * p) + sin2(φ)p * ((p x x1) * x2) - sin2(φ) x2 * ((p x x1) * p = cos2(φ)(x1 x x2) + sin2(φ)p * (( x1 x x2) * p) = cos2(φ) μp + sin2(φ)p * μp * p = μp(cos2(φ) + sin2(φ)p * p) = μp = x1 x x2 Hierbei wurden verschiedene Vektoridentitäten und sonstige Rechenregeln zu Vektoren angewandt, welche grundlegend für die lineare Algebra sind. Die Vektorprodukte haben damit nicht nur das gleiche Vorzeichen, sondern sind sogar identisch, womit eine Orientierungserhaltung eindeutig garantiert ist. Die Längenerhaltung kann man zur Sicherheit auch noch überprüfen. Sie fordert y * y = x * x und damit folgt: y * y = [cos(φ) x + sin(φ) * (p x x)] * [cos(φ) x + sin(φ) * (p x x)] = cos(φ)2 * (x * x) + 2sin(φ)cos(φ) * x * (p x x) + sin(φ)cos(φ) + sin2(φ) * (p x x) * (p x x) = cos2(φ)(x * x) + sin2(φ) (x * x) * (p * p) 12 -sin2(φ)(x * p) * (x * p) = cos2(φ)(x * x) + sin2(φ) (x * x) = (x * x)(cos2(φ) + sin2(φ)) = x * x Damit erfüllt die Abbildung auch die Längenerhaltung, was schließlich nicht anders zu erwarten war, da die Herleitung der Abbildung die Längenerhaltung bereits erzwang. Nach dieser ausgiebigen Überprüfung der Abbildung anhand der Kriterien einer Drehung steht endgültig fest, dass es sich um eine Drehung handelt, wenn auch nur für Drehungen senkrecht zur Drehachse. Diese wichtige Abbildung sei hier abschließend noch einmal festgehalten. y = (cos(φ) + psin(φ)) o x Nun soll noch eine Möglichkeit gefunden werden beliebige Drehungen im R³ durch Quaternionen zu beschreiben. Als Grundlage dafür dient die Abbildung y = (cos(φ) + psin(φ)) o x, welche in dieser Form nur für Drehungen innerhalb der Normalenebene der Drehachse gilt. Man stellt sich einen beliebigen Vektor x im Raum vor. Dieser Vektor wird nun auf die Normalenebene des Vektors p projiziert. Die Projektion des Vektors x wird im Folgenden mit x´ bezeichnet. Demnach gilt x = x´ + μp. Gleiches gilt für das Bild von x: y = y´ + μp Die beiden Vektoren x´ und y´ schließen dabei den Drehwinkel φ ein. Der Winkel zwischen einem Vektor a und einer Ebene mit dem Normalenvektor n berechnet sich gemäß n * a = |n| * |a| * sin(α). Damit lässt sich nun der Winkel zwischen dem Vektor x und der Normalenebene der Drehachse, welche den Normalenvektor p hat, berechnen. Damit ist p * x = |p| * |x| * sin(α)= |x| * sin(α). Weiterhin kann man die Länge des Vektors μp zu |μp|=|x| * sin(α) berechnen. Die letzten beiden Gleichungen kann man somit Gleichsetzen und man erhält p * x = μ|p| = μ. In die Gleichung x = x´ + μp eingesetzt, ergibt dies x = x´ + (p * x) p. Unter der Beachtung, dass der Vektor μp unverändert aus einer Drehung hervorgeht, gilt analog für das Bild des Vektors x natürlich y = y´ + (p * x) p. Die beiden Vektoren x und y in der Abbildung y = (cos(φ) + psin(φ)) o x stehen gemäß der Einschränkung repräsentativ für die Projektionen x´ und y´ . Daraus schlussfolgert man y´ = y - (p * x) p = (cos(φ) + psin(φ)) o x´ = (cos(φ) + psin(φ)) o (x – (p * x) p) y = (cos(φ) + psin(φ)) o (x – (p * x) p) + (p * x) p = cos(φ)x + sin(φ) (p x x) + (p * x) p (1- cos(φ)) = (cos²(φ/2) - sin²(φ/2)) x + 2*sin(φ/2)* cos(φ/2) (p x x) + 2*sin²(φ/2)(p * x) p 13 Außerdem gilt für das folgende doppelte quaternionische Produkt: h o x o h‾ = (a + a) o x o (a - a) = (a²- a²)x+2(a * x)a+2a (a x x) Daraus folgt für die Darstellung der allgemeinen Drehung im R³ durch Quaternionen: y = h o x o h‾ = (cos(φ/2) + psin(φ/2)) o x o (cos(φ/2) - psin(φ/2)) Vergleicht man die einzelnen Vektorkomponenten dieser allgemeingültigen Abbildung mit der linearen Abbildung y = Cx, so findet man mit folgender Darstellungsmatrix C eine gleichwertige Abbildung. cos( ) p12 (1 cos( )) C p1 p2 (1 cos( )) p3 sin( ) p1 p3 (1 cos( )) p2 sin( )) p1 p2 (1 cos( )) p3 sin( ) 2 cos( ) p2 (1 cos( )) p2 p3 (1 cos( )) p1 sin( ) p1 p3 (1 cos( )) p2 sin( ) p2 p3 (1 cos( )) p1 sin( ) 2 cos( ) p3 (1 cos( )) Es lässt sich durch eine etwas aufwendigere Rechnung zeigen, dass diese Matrix in der Tat die Bedingung det(C) = 1 erfüllt. 4.3 Vergleich zwischen der Drehmatrix und Quaternionen Die im vorigen Abschnitt zuletzt erwähnte Darstellungsmatrix bezeichnet man auch als Drehmatrix, da sie Drehungen im Raum über die Abbildung y = Cx beschreibt, wobei hier die Darstellungsmatrix C mit dem Vektor x über dem Matrixprodukt verknüpft ist. Somit hat man zwei verschiedene Formulierungen einer Drehung im R³ vorliegen, wobei die Formulierung über die Drehmatrix die bekanntere und gängigere von beiden ist. Jedoch stellt die Formulierung über das quaternionische Produkt die elegantere Formulierung einer Drehung dar, da sie einen geringeren Rechenaufwand zur Folge hat. Deshalb finden Quaternionen immer häufiger in der Softwareentwicklung Anwendung, insbesondere bei der räumlichen Orientierung von Industrierobotern, bei aufwendig programmierten Computerspielen oder auch bei Konstruktionsprogrammen. Die Quaternionen bieten nämlich durch eine Herabsetzung der erforderten Rechenleistung mehr Möglichkeiten auf einer bestimmten Hardware. So können sich z.B. Ladezeiten verkürzen, der Speicher kann minimiert werden oder aber auch komplexere Programme sind möglich, als es noch mit Drehmatrizen der Fall war. Um nun von dieser reinen Gedankenökonomie zur Anwendung der ganzen Theorie zu kommen, wird nun der Vorteil der quaternionischen Formulierung einer Drehung gegenüber der Formulierung über die Drehmatrix anhand des Beispiels einer verketteten Drehung demonstriert. Dazu stellt man sich in einem rechtsorientierten dreidimensionalen Koordinatensystem einen Punkt P0(0|1|0) vor. Dieser Punkt soll zuerst mit einem Winkel von φ = 30° um die x-Achse gedreht werden. Anschließend 1 u 2 3 14 wird der neu erhaltende Punkt P1(x1, y1, z1) um die Drehachse mit dem Richtungsvektor um einen Winkel von 45° gedreht. Gesucht ist nun der resultierende Punkt P2(x2, y2, z3). Die x-Achse lässt sich durch den Einheitsvektor 1 p1 0 0 Den Ortsvektor des Punktes P0(0|1|0) stellt der Vektor charakterisieren. 0 x1 1 0 dar. Damit berechnet sich die Drehung aus der quaternionischen Form wie folgt: y cos p sin x cos p sin cos x sin p x ( p * x ) * p * 1 cos 2 2 2 2 0 0 1 0 1 0 1 0 0 1 1 1 cos30 1 sin 30 0 1 ( 0 * 1 ) * 0 * 1 cos30 3 1 0 3 2 2 2 0 0 0 0 0 0 1 0 1 2 1 14 14 1 1 1 p * u * 2 14 1 14 p 14 7 14 3 3 14 14 1 14 0 14 0 1 1 1 y cos p sin x cos p sin cos45 3 sin 45 14 3 7 2 2 2 2 2 2 3 1 1 14 2 14 2 1 1 1 3 3 3 1 1 14 21 7 6 3 2 14 0 28 14 28 14 56 28 14 14 1 1 1 1 5 1 3 3 ( 14 * 3 )* 14 * 1 cos45 7 6 3 2 7 2 7 28 28 7 28 14 3 1 3 1 3 3 5 9 14 14 21 6 3 2 2 14 14 28 28 14 56 28 Abschließend wird dasselbe noch einmal über die Drehmatrix wie folgt berechnet: 15 cos( ) p1 2 (1 cos( )) p1 p 2 (1 cos( )) p3 sin( ) p1 p3 (1 cos( )) p 2 sin( ) x1 2 y Cx p1 p 2 (1 cos( )) p3 sin( ) cos( ) p 2 (1 cos( )) p 2 p3 (1 cos( )) p1 sin( ) x2 2 cos( ) p3 (1 cos( )) x3 p1 p3 (1 cos( )) p 2 sin( )) p 2 p3 (1 cos( )) p1 sin( ) 0 0 0 0 0 0 1 0 1 1 1 1 0 cos(30) sin( 30) 1 0 3 1 3 2 2 2 0 sin( 30) cos(30) 0 1 1 0 1 0 2 2 2 2 13 1 1 1 3 3 3 1 3 21 1 7 1 6 1 3 3 2 3 2 2 7 2 7 28 14 7 14 14 14 28 7 14 28 14 56 28 0 28 1 1 3 5 2 3 3 1 1 1 5 1 3 3 y 2 7 2 2 7 3 7 6 3 2 7 14 2 14 14 7 7 14 14 28 28 7 28 14 3 1 3 1 3 3 1 5 9 1 3 3 5 9 2 7 2 7 2 21 6 3 2 7 7 14 14 28 14 28 28 14 56 28 14 28 2 Vergleicht man beide Rechnungen im Detail, so wird man feststellen, dass die quaternionische Rechnung insgesamt mit weniger Rechenaufwand verbunden ist, als es bei der Berechnung mit der Drehmatrix der Fall ist. Das wichtigste Resultat dieser Arbeit wird abschließend noch einmal festgehalten: y = h o x o h‾ = (cos(φ/2) + psin(φ/2)) o x o (cos(φ/2) - psin(φ/2)) V Schluss In dieser Arbeit wurde gezeigt, wie man aus einer rein formalen mathematischen Definition, nämlich den Quaternionen eine Anwendung finden kann. Dazu wurden die Quaternionen als Körpererweiterung des komplexen Körpers eingeführt, wozu erst einmal die dafür nötigen Grundkenntnisse zu den komplexen Zahlen geschaffen werden mussten. Nach der Einführung der Quaternionen ist es schließlich gelungen damit allgemeine Drehungen im R³ zu beschreiben. Selbstverständlich können auf Grund des begrenzten Umfangs viele interessante Aspekte nicht angeführt werden, so hat hier die Beschreibung von Drehungen durch Quaternionen längst nicht ihr Ende gefunden. Einerseits könnte man diese Beschreibung noch auf die Eulerwinkel beziehen und damit dann auch das Problem der „Gimbal Lock“ lösen. Andererseits lassen sich Drehungen mit Quaternionen sogar im R4 beschreiben. Auch im physikalischen Bereich finden Quaternionen ihre Anwendung, so lässt sich z.B. eine Vereinigung der Zeit- und Ortsgleichungen der SRT mit Quaternionen vereinbaren. Die Quaternionen sind nur ein Beispiel unter vielen, wie formale mathematische Strukturen irgendwann ihre Anwendung finden können. Gegenüber der Mathematik gibt es nämlich viele Vorurteile, so sei z.B. die Mathematik in vielerlei Hinsicht realitätsfern. Allein die Tatsache, dass in dieser Arbeit zunächst eine vierdimensionale Struktur geschaffen wurde, was sich den menschlichen Vorstellungen völlig entzieht, 16 müsste dieses Thema schon realitätsfern sein, so findet es aber dennoch seinen Platz in allerlei Software, die im Wesenstlichen unsere technische Welt mitbestimmt. Erst durch solche „realitätsfernen“ Dinge kann man „realitätsnahe“ Dinge schaffen. Dies zu demonstrieren ist ein Anliegen dieser Arbeit gewesen. 17