13.07.2015 Aufrufe

Mathematische Grundlagen zur 3D Berechnung - Mensch und ...

Mathematische Grundlagen zur 3D Berechnung - Mensch und ...

Mathematische Grundlagen zur 3D Berechnung - Mensch und ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

2 <strong>Mathematische</strong>r Teil2.1 Vektoren <strong>und</strong> Matrizen2.1.1 Der VektorEin Vektor ist im mathematischen Sinne eine Ansammlung von Werten, diein Zeilen­ oder Spaltenform dargestellt werden können. Meistens werdenVektoren im Zusammenhang mit Koordinatenangaben benutzt. FolgendesBeispiel verdeutlicht den Zusammenhang:Gegeben sei ein Punkt im zweidimensionalen kartesischenKoordinatensystem mit den Koordinaten X=2 <strong>und</strong> Y=4 ,den wir mit Hilfeder Vektorschreibweise, so darstellen können:V = x Vy = V 2 4VDer Vektor V ist also ein Pfeil, der vom Nullpunkt ausgehend auf einenbestimmten Punkt zeigt, daher auch der kleine Pfeil über dem V.Dieser spezielle Vektor wird auch „O rtsvektor“ ge nannt, weil er den Orteines Punktes, in Abhängigkeit vom Nullpunkt des Koordinatensystems,angibt.Desweiteren existieren sogenannte „F reie Vektoren“, d ie sich dadurchauszeichnen, dass sie keinen speziellen Anfangspunkt besitzen. Sie sind imKoordinatensystem frei verschiebbar, jedoch ist ihre Richtung sowie ihreLänge(Betrag) konstant. Freie Vektoren dienen dazu, um zum Beispiel eineKraft zu kennzeichnen. Sie geben nur die Richtung <strong>und</strong> die Größe der Kraftan. Um jedoch einen Ansatzpunkt zu definieren, aus dem wir schließenkönnen, wo die Kraft genau ansetzt, bedarf es eines weiteren Vektors, dem


Ortsvektor.Man errechnet den Betrag eines Vektors mit Hilfe des Pythagoras :∣V2 D∣= x 2 y 2 ;∣V3 D∣= x 2 y 2 z 22.1.1.1 Das Kartesische KoordinatensystemFür das Thema dieses Buches wollen wir eine Festlegung bezüglich derKoordinatenachsen treffen. Das kartesische Koordinatensystem soll fürunsere Zwecke (<strong>und</strong> auch für die meisten anderen) ein sogenanntes„R echtssystem“ se in. Das bedeutet, dass die Koordinatenachsen, welche allesenkrecht zueinander stehen, nach der „ Schrauben­Regel“ angeordnetwerden.Diese Regel bedeutet sinngemäß: Wenn man eine Schraube rechtsherum inein Gewinde dreht, so ist die Resultierende Bewegungsrichtung derSchraube genau 90° <strong>zur</strong> Drehrichtung.Anders könnte man auch sagen:Man stelle sich zwei Achsen vor, X <strong>und</strong> Y auf ein Blatt Papier gezeichnet.Wenn wir jetzt an der X­Achse anfassen könnten <strong>und</strong> diese in Richtung derY­Achse drehen, <strong>und</strong> uns dabei vorstellen, wir hätten den Schraubenkopf andie X­Achse geschweißt, erhalten wir o.g. Effekt. Die Schraube würdeförmlich aus dem Blatt herauskommen. Und genau in dieser Richtung mussdann die Z­Achse liegen. Das alles ist auch unter dem Begriff „ Rechte­Hand­Regel“ bekannt, die besagt, dass man den Daumen seiner rechtenHand ausstrecken soll, dazu den Zeigefinger senkrecht ausstrecken. Diesebeiden Finger symbolisieren die X­ <strong>und</strong> Y­Achse. Nun den Mittelfinger einwenig in die dritte Dimension bewegen, so erhalten wir mit ihm dieRichtung der Z­Achse. Wem das alles gar nichts sagt, der möge sich diesesBild genau einprägen:


ZXYEin Punkt P in einem solchen dreidimensionalen Koordinatensystem wirdin Vektorschreibweise allgemein so dargestellt:=x VV y Vz V2.1.1.2 Das PolarkoordinatensystemEs ist bekannt, dass Koordinatenangaben mit Hilfe der Komponenten x <strong>und</strong>y gemacht werden können.Eine weitere Möglichkeit <strong>zur</strong> Eindeutigen Darstellung ist die Schreibweiseals Polarkoordinaten. Ein Punkt P wird beschrieben durch den Abstand zumNullpunkt <strong>und</strong> dem Winkel dieser Abstandsgeraden mit der x­Achse.yrPxAus dieser Beziehung <strong>und</strong> den Winkelfunktionen lassen sich beide Systemeineinander umrechnen.Zur <strong>Berechnung</strong> der Kartesischen Koordinaten aus Polarkoordinaten nutztman folgende Gleichungen:x=r∗cosy=r∗sin


Umgekehrt berechnet man erst den Abstand des Punktes vom Ursprung,wobei uns der Pythagoras sehr nützlich ist.r= x 2 y 2 Danach bedient man sich wieder der Trigonometrie <strong>und</strong> erhält den Winkelder Abstandsgeraden zum Ursprung.=tan y x Die neu errechneten Komponenten können als Punkt zusammengefasst <strong>und</strong>folgendermaßen geschrieben werden:Pr , <strong>und</strong> als Vektor:p= r∗cosr∗sin = x y2.1.2 Addition, Subtraktion von VektorenDie Summe zweier Vektoren ist einfach erklärt. Man addiert jedeKomponente des ersten Vektors zu jeder Komponente des zweiten Vektors.a =xay az a,ab =xax by ay bz az bb ==x bybbzcAnschaulich ist die Addition nichts weiter, als das Aneinanderfügen aller zuaddierenden Vektoren. Beginnend bei dem ersten Vektor fügt man denAnfang des zweiten Vektors an die Spitze des vorherigen an. Vebindet mannun den Ausgangspunkt des ersten Vektors mit dem Endpunkt des zweitenVektors, so erhält man den Ergebnisvektor.


Äquivalent stellt sich die Subtraktion zweier Vektoren dara−b=x a−x by a−y b=z a−z bcDiese beiden Eigenschaften werden noch sehr wichtig für unsereBetrachtungen sein, überblättern Sie es deshalb nicht gleich <strong>und</strong>versinnbildlichen Sie sich das geschriebene.2.1.3 Das SkalarproduktAls Skalarprodukt bezeichnet man die senkrechte Abbildung eines Vektorsauf einen anderen Vektor. Man Errechnet es, indem man das Produkt derBeträge beider Vektoren multipliziert mit dem Cosinus des von beideneingeschlossenen Winkels.Das Skalarprodukt ist geometrisch gesehen also ein Maß für die Parallelitätzweier Vektoren. Ist der Cosinus des eingeschlossenen Winkels = 0 sostehen beide Vektoren senkrecht aufeinander, ist cos = 1, so sind beideVektoren Richtungsgleich, ist cos = ­1, so liegen sie genauentgegengesetzt zueinander. Das Ergebnis einer skalaren Multiplikation istkein Vektor, sondern eine sog. Skalare Größe, also eine Zahl.ab∣b∣∗cos∢a ,bRechenregel mit Beispiel:Man bilde das Skalarprodukt des Vektors a <strong>und</strong> b mit:


a =x a2 x b= −5 <strong>und</strong> b = =3Lösung1: a∗b=x ax by ay bz az by az ay bz b=2∗3−5∗−13∗5=263−15Lösung 2:a∗b=∣a∣∗∣b∣∗cos∢a ,b∣a∣= x 2 ay 2 az 2 a=2 2 −5 2 3 2 =6,164...∣b∣= x 2 by 2 bz 2 b=3 2 −1 2 5 2 =5,916...cos∢a ,b=a∗ b∣a∣∗∣b∣ x ax by ay bz az b= x 2 ay 2 az 2 a∗ x 2 by 2 bz 2 b2∗3−5∗−13∗5=2 2 −5 2 3 2 ∗3 2 −1 2 5 2 =0,71293...=cos ; =0,777...a∗b=∣a∣∗∣b∣∗cos∢a ,b=6,164∗5,916∗cos 0,777=26,0018...Obiges Beispiel verdeutlicht, dass bevorzugt der erste Lösungsweganzuwenden ist, da er schnell <strong>und</strong> genau ist. Letzterer ist zu beschreiten,wenn die Vektoren in als Betrag <strong>und</strong> Winkel vorliegen(Polarkoordinaten).2.1.4 Das KreuzproduktIm Gegensatz zum Skalarprodukt hat das Kreuzprodukt, oder auchVektorprodukt, einen Vektor zum Ergebnis. Dieser Vektor besitzt sehr vielenützliche Eigenschaften, die hier im Einzelnen erläutert werden sollen.1. Der Ergebnisvektor steht immer genau senkrecht zu der Ebene, die a


<strong>und</strong> b aufspannen.2. Der Betrag dieses Vektors liefert den Flächeninhalt des von a <strong>und</strong>b aufgespannten Parallelogramms.3. Der Richtungssinn des Vektors lässt sich nach der Schraubenregeldefinieren.4. Die × ­Multiplikation ist nicht assoziativ, d.h. nicht umkehrbar.Zu 1, 3 <strong>und</strong> 4:a×bbaa×b ⊥ a∧bDieses Bild veranschaulicht, was passiert, wenn a in Richtung von bgedreht wird. Der Ergebnisvektor „ schraubt“ sic h in die selbe Richtung wieunsere gedachte Schraube!Wenn man jetzt aber das Vektorprodukt b×a bildet, so erhält man einnVektor, dessen Betrag <strong>und</strong> Ausrichtung zwar dieselbe ist, der Richtungssinnjedoch ist genau entgegengesetzt gerichtet zum Ergebnisvektor a×b .Diese Eigenschaft des Kreuzproduktes wird auch Antikommutativgesetzgenannt.Zu 2:Aus dem Betrag des neu gewonnen Vektors erhalten wir den Flächeninhaltdes von den beiden anderen Vektoren aufgespannten Parallelogramms. EineHerleitung dieses Sachverhaltes ist zwar recht anschaulich, ist uns aber fürunsere Zwecke nicht hilfreich <strong>und</strong> stellt nur unnötiges Beiwissen dar. Wertrotzdem mehr wissen will dem sei [...Hier noch ne Quelle suchen, die dasbeweist...] empfohlen.Rechenregel mit Beispiel:


Erste Regel :Vektoren in Komponentenschreibweisea×b =x ay az a×x bybb=zy az b−z ay bz ax b−x azbbx ay b−y ax23a×b = −5× −1 =3 5Beispiel :−5∗5−3∗−13∗3−2∗5 =2∗−1−−5∗3∣a×b∣=−22 2 −1 2 13 2 =25,573...−22−113Zweite Regel :Vektoren als Beträge<strong>und</strong> Winkel gegeben∣a×b∣=∣a∣∗∣b∣∗sin∢a ,b2.1.3 MatrizenDie im vorigen Kapitel behandelte Vektordarstellung soll uns helfen, denBegriff der Matrix anschaulich zu erläutern.Man stelle sich eine gegebene Menge Vektoren vor. Diese sollen eineAnsammlung von Punkten im räumlichen Kartesischen Koordinatensystemdarstellen:xP2(5;2;12) P1(7;5;3)zP3(4;7,30)P4(3,8,8)y


InVektorschreibweise :v n=V 173= 5 ;V 2=x nynnz52 ; V124=47 ; V304=388Eine Matrix ist nun nichts anderes, als eine tabellarische Zusammenfassungdieser Vektoren.Eine solche Tabelle hat eine Spaltenanzahl m, die der Anzahl der gegebenenVektoren entspricht <strong>und</strong> auch eine Zeilenanzahl n, die der Anzahl an Zeilender Vektoren entspricht.Man schreibt eine Matrix gewöhlich als einfache Tabelle in eckigenKlammern, ohne großartig Zeit in Trennlinien zu investieren:


[A =x 1x 2x 3x 4]y 1y 2y 3y 4z 1z 2z 3z 4Für unser Beispiel bedeutet das :A =[7 5 4 35 2 7 83 12 30 8]Spezielle Matrizen:Quadratische Matrix : A =[ x 1x 2y 1y 2]Die Quadratische Matrix hat die gleiche Anzahl an Zeilen wie Spalten[x 1x 2x 3obere Dreiecksmatrix : A = 0 y 2y3]30 0 z[x 10 0obere Dreiecksmatrix : A = y 1y 20Die Dreicksmatrix besteht unterhalb oder oberhalbder eingezeichnetetn Hauptdiagonalen nur aus Nullenz 1z 2z 3]Diese Schreibweise vereifacht uns das Leben sichtlich. Es ist schon einigeZeit her, dass in der Mathematk begonnen wurde, mit Matrizen zu rechen,demnach wurden, wenn auch teilweise sehr spezielle, Rechenregelnentwickelt. Ich will hier nur auf die für uns interessanten Rechenoperationeneingehen, die da wären:1. Addition einer Matrix mit einem Vektor2. Multiplikation zweier Matrizen3. Die Determinante einer Matrix4. Der GAUSS'sche Algorithmus


5. Invertieren einer Matrix2.1.4 Addition einer Matrix mit einem VektorZu einer gegebene n Matrix A soll ein Vektor b addiert werden. Diesgeschieht, indem man jedes Element einer Zeile der Matrix zu der in dergleichen Zeile stehenden Vektorkomponente addiert.A =Ab =[x1x 2x 3x 4]y 1y 2y 3y 4;z 1z 2z 3z 4b=x by bz b[x 1x bx 2x bx 3x bx 4x b]y 1y by 2y by 3y by 4y bz 1z bz 2z bz 3z bz 4z bAb =A =Ein Beispiel :[7 5 4 38]5 2 7 8 ;3 12 30b=−15[7−1 5−1 4−1 3−155 25 75 8534 124 304 84]=4[6 4 3 210 7 12 137 16 34 12]Diese Regel kann nur auf Matrizen angewendet werden, die über dieselbeZeilenzahl, wie der Vektor verfügen.2.1.5 Multiplikation von MatrizenDas bei der Multiplikation angewandte Verfahren ist schon etwaskomplizierter. Man multipliziert jedes Element einer Zeile m der Matrix Amit dem entsprechenden Element der Spalte n der Matrix B. DanachSummiert man all diese Ergebnisse auf <strong>und</strong> erhält einen neuen Wert, der inder Ergebnismatrix an der m,n­ten Stelle steht:


[a 1,1a 1,2a 1,3a 1,4A = a 2,1a 2,2a 2,3a 2,4a 3,1a 3,2a 3,3a 3,4][b 1,1b 1,2b 1,3b; B = 2,1b 2,2b 2,3b 3,1b 3,2b 3,3b 4,1b 4,2b 4,3][a 1,1∗b 1,1a 1,2∗b 2,1a 1,3∗b 3,1a 1,4∗a 4,1 . . . . . . . ..]A×B = . . . . . . . . . . . .. . . . . . . . . . .. . . .[. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . a 3,1∗b 1,3a 3,2∗b 2,3a 3,3∗b 3,3a 3,4∗a 4,3]Dieses Verfahren gilt wiederum nur für Matrizen, deren Spaltenzahl jeweilsmit der Zeilenzahl der anderen Matrix übereinstimmt.Will man eine Matrix mit einem Skalar, also einer Zahl multiplizieren, sowird trivial jede Komponente der Matrix mit diesem Skalar multipliziert.Man erhält eine Matrix mit der selben Zeilen­ sowie Spaltenanzahl.2.1.6 DeterminantenEine Determinante ist nichts weiter, als eine Zahl, die einer jedenquadratischen Matrix zugeordnet werden kann.Im sechzehnten Jahrh<strong>und</strong>ert wurden Determinanten zum ersten Mal vonGerolamo Cardano benutzt, um im Vornherein Aussagen darüber treffen zukönnen, ob ein lineares Gleichungssystem lösbar ist det≠0 , oder nichtdet=0.Man kann lineare Gleichungssysteme auch in Form einer Matrix <strong>und</strong> einesErgebnisvektors schreiben:


I. 2 a−3 b=42. 3 a2 b=2In Form einer Matrix mit Ergebisvektoren lässt man die Variablen weg<strong>und</strong> trägt nur die Koeffizienten(Faktoren vor denVariablen)in die Matrix ein. In den Ergebnisvektor b trägt manalle Ergebnisse untereinander einA =[ a bc d ] [ = 2 −33 2 ]; b = 4 2die Determinante der quadratischen 2×2 ­ Matrix A lässt sich nach dereinfachen Regel ad ­ bc berechnen. Für größere quadratische Matrizen giltdie Leibniz­Formel oder der LAPLACEsche Entwicklungssatz. Hier soll nurauf den LAPLACEschen Entwicklungssatz näher eingegangen werden, dawir diesen im Programmierteil explizit nachbilden wollen.


det A =n∑= 1;... ; nDie Leibniz­Formel:sign∗[a 1,1∗a 1,2] . . . ∗[a n ,∗a , n]Der LAPLACEsche Entwicklungssatz(nach der i­ten Zeile):ndet A = ∑ −1 i j a ijdet A ijj=1Die Determinante einer gegebenen 5x5­Matrix wird berechnet, indem manbei einer beliebigen Zeile anfängt, die Matrix umzuformen, also auf2x2­Matrizen <strong>zur</strong>ückzuführen. Im gegebenen beispiel wird die Matrixnach der n­ten Zeile umgeformt. Dabei streicht man diese Zeile.Man beginnt jetzt bei der ersten Spalte <strong>und</strong> streicht auch sie ausder Matrix.Die übrigen Elemente werden zu einer neuen Matrix zusammengefasst,deren Determinante mit dem ausgewählten Koeffizienten multipliziert wird.Am besten verdeutlicht das das folgende Beispiel:Gegeben : A =[7 5 4 31]45 2 7 8 63 12 30 8 22 1 3 4 16 2 5 9Streichen einer beliebigen Zeile i (z.B. i=2) <strong>und</strong> Spalte j (meist j=1)[7 5 4 31]45 2 7 8 6A = 3 12 30 8 22 1 3 4 16 2 5 9An der Stelle, wo sich die beiden Linien schneiden,haben wir das Element a ijgef<strong>und</strong>en.Jetzt liegt es an uns, die Determinante det A ijzu berechnen.


Die übrig gebliebende Matrix sieht folgendermaßen aus:A =[5 4 31]412 30 8 21 3 4 12 5 9Duch diese Methode können Determinanten recht schnellgelöst werden, im Vergleich <strong>zur</strong> Leibnitz­Formel jedenfalls.Die Determinante der so gewonnenen, reduzierten Matrix wird mitdem vorher bestimmten Faktor A ijmultipliziert.Auf diese Weise haben wir den ersten Summanden unserergesuchten Determinante gef<strong>und</strong>en. Um den nächsten zu erhalten,streichen wir nicht die erste, sondern die zweite Spalte unsererAusgangsmatrix durch:[7 5 4 31]45 2 7 8 6A = 3 12 30 8 22 1 3 4 16 2 5 9Der Erste Summand würde demnach so aussehen:Für i=2 <strong>und</strong> j=1:5 4 3 41det A =−1 21 12 30 8 2∗5∗det 1 3 4 12 5 9⋯Um die Determinante dieser neuen 4×4 Matrix zu bestimmen,verfahren wir genau so, wie im obigen Beispiel.


4 3 4det A =−1 21 ∗5∗det −1 21 ∗12∗det 3 4 1 ⋯5 9 130∗⋯Jetzt berechnen wir wieder die Determinante dieser UntermatrixatrixAuf diese Weise bilden wir einen Summanden nach dem anderen.Irgendwann erhalten wir eine 2×2­Matrix,deren Determinante wirnach folgender Gleichung einfach berechnen können:det[ a 1,1a 1,2a 2,1a 2,2] =a 1,1 ∗a 2,2 −a 1,2 ∗a 2,1Zugegeben, das sieht hier recht kompliziert aus, verhilft uns aberdazu, einen Algorithmus zu entwerfen, der für jedequadratische Matrix anwendbar ist.Dies soll uns hier genügen, da wir im Programmierteil nochsehr ausführlich hierzu kommen werden.Für Größere Matrizen wird der selbe Algorithmus angewendet, nur wirddann die Matrix auf Exponenten von 2 <strong>zur</strong>ückgeführt, also 2¹=2; 2² = 4;2³=5;.... Das heißt, dass eine 45x45­ Matrix(also ein Gleichungssystem mit45 Unbekannten <strong>und</strong> 45 Gleichungen) zuerst mittels Wegstreichen derZeilen <strong>und</strong> Spalten auf eine 32x32 Matrix <strong>zur</strong>ückgeführt werden müsste.Diese beherbergt in sich eine 16x16­Matrix mit Determinanten, welchewiederum auf eine 8x8­Matrix <strong>zur</strong>ückgeführt werden kann usw. bis wir beieiner 2x2­Matrix angelangt sind, deren Determinante in den LAPLACEschen Entwicklungssatz eingestzt wird. So erhalten wir wiedereinzelne Summanden, die die Determinante der Gesamtmatrix ergeben.2.1.7 Der GAUSS­Algorithmus, Invertieren einer MatrixCarl Friedrich Gauß, der Mann,d er uns Jahrzehntelang vom 10 DM­Schein


aus ansah, lebte von 1777 bis 1855 in Göttingen. Er war ein genialerMathematiker <strong>und</strong> entwickelte ein für uns enorm wichtiges Vefahren <strong>zur</strong>Lösung linearer Gleichungssysteme: das GAUSSscheEliminierungsverfahren, oder auch GAUSSscher Algorithmus genannt.Hat man ein Lineares Gleichungssystem (LGS) mit n Unbekannten <strong>und</strong> nGleichungen, so erhält man eine n×n1 ­Matrix. Die Matrix bestehtalso aus einer quadratischen Matrix n×n <strong>und</strong> einer Matrix mit einerSpalte, also einem Vektor, genannt Ergebnisvektor.1,1⋯ a 1,nA=[a ⋮ ⋯ ⋮a 1,n⋯ a n,n]; b=1n⋮Bevor jedoch Lösungen der Matrix ermittelt werden können, müssen wirprüfen, ob dieses Gleichungssystem überhaupt eine Lösung hat. DiesenDienst erbringt uns die Determinante der quadratischen Matrix.Exkurs:Warum sollte dieses Gleichungssystem keine Lösung besitzen?


a 1,1∗x 1a 1,2∗x 2a 1,3∗x 3=b 1a 2,1∗x 1a 2,2∗x 2a 2,3∗x 3=b 2a 3,1∗x 1a 3,2∗x 2a 3,3∗x 3=b 3Man kann in diesem Fall einen Spaltenvektor x ausklammern:x 1x = x32xMöglich ist das, weil die Multiplikation der Matrix A mit xgerade wieder unser Gleichungssystem ergibt.[a 1,1a 1,2a 1,3a 2,1a 2,2a 2,3a 3,1a 3,2a 3,3] x [a 11,1∗x 1a 1,2∗x 2a 1,3∗x 3∗ = a 2,1∗x 1a 2,2∗x 2a 2,3∗x 3x 2x 31b 2a 3,1∗x 1a 3,2∗x 2a 3,3∗x 3]=b 3 bKurz gesagt haben wir aus A=b folgendes gemacht:A∗x=bDiese Gleichung besteht aus A, der quadratischen Matrix, x , dem Vektor,der die Ergebnisse jedes einzelnen Koeffizienten beinhaltet <strong>und</strong> schließlichb , unseren Ergebnisvektor, den wir hinter dem „ =“ der Gleichungenablesen können. Wollen wir diese Gleichung jetzt nach x umstellen, somüssten wir diegesamte Gleichung durch die Matrix A teilen! Doch wie stellt man das an?x= bA = b∗A −1Da es keine Regel gibt, nach der man einen Vektor durch eine Matrixteilen darf, muss man eben eine Matrix finden, die den Kehrwert (dasInverse ) dieser Matrix darstellt. Dann können wir b , mit A −1multiplizieren <strong>und</strong> erhalten einen Vektor, der alle Ergebnisse unsererKoeffizienten enthält.Bei dieser Rechenoperation ist darauf zu achten, dass man durch einen Wertteilt. Dieser Wert darf nicht Null werden, die Matrix wäre sonst nicht lösbar


(Division durch Null ist nicht definiert).Wir können mit Hilfe der Determinante von Matrix A herausfinden, ob eineLösung existiert, oder nicht. Wenn die Determinante gleich Null ist, soexistiert gerade keine Lösung für das LGS. Ist sie ungleich von Null,existiert eine Lösung, die Matrix ist invertierbar.Nachdem wir die Determinante ermittelt haben, geht es daran, die Matrix zuInvertieren, also aus A, A −1 zu machen. Dazu benötigen wir denGAUSSschen Algorithmus.Bevor wir jedoch eine Matrix invertieren, sehen wir uns den allgemeinenAlgorithmus genauer an.Man kann gründsätzlich drei Hauptschritte unterteilen:1. Umformen einer Gleichung2. Addieren dieser Gleichung zueiner anderen3. Vertauschen einer Zeile/SpalteDas Ziel diese Umformungen ist das Herstellen einer unteren Dreicksmatrix.[a 1,1a 1,2a 1,30 a 2,2a 2,30 0 a 3,3]Schreiben wir diese Matrix jetzt wieder als LGS, dann wird ersichtlich, wasuns die ganzen Rechenschritte genützt haben.


a 1,1∗x 1a 1,2∗x 2a 1,3∗x 3=b 10∗x 1a 2,2∗x 2a 2,3∗x 3=b 20∗x 10∗x 2a 3,3∗x 3=b 3Faktoren, die mit 0 multipliziert werden, fallen weg.Demnach steht in der letzten Zeile:a 3,3∗x 3=b 3Stellen wir das jetzt nach x 3um, so erhalten wir: x 3= b 3a 3,<strong>3D</strong>iesen neuen Wert können wir jetzt in diedarüber liegende Zeile einsetzen <strong>und</strong> erhalten durch umstellen x 2.x 2<strong>und</strong> x 3setzen wir in die erste Zeile ein <strong>und</strong> erhalten x 1.Sie werden sich jetzt sicher fragen, wie man denn eine solche Dreiecksformeiner Matrix herstellt. Folgendes Beispiel soll das erläutern.


Erstens: Letzte Zeile umformen, sodass noch ein Faktor ungleich Null ist.[1 2 3 13]4 5 6 27 8 7Man bestimmt das kleinste gemeinsame Vielfache(KGV) aus Elementa 1,1<strong>und</strong> a 3,1KGV =7. Danach erweitert man jede Zeile auf dasgef<strong>und</strong>ene KGV. Jetzt kann man rechnen: Zeile 3 ­ Zeile 1 = neue Zeile 3.[1 2 3 13]∗74 5 6 27 8 7 ∗1=[1 2 3 14 5 6 20 −6 −14 −4]Jetzt bestimmt man das KGV aus Element a 1,1<strong>und</strong> a 2,1KGV =4.Danach erweitert man wieder <strong>und</strong> subtrahiert. Eine neue Zeile 2 entsteht[1 2 3 1 ∗44 5 6 2 ∗1 =0 −6 −14 −4][1 2 3 10 −3 −6 −20 −6 −14 −4]Nun müssen wir nur noch das Element a 3,2zu null machen[1 2 3 10 −3 −6 −20 −6 −14 −4]∗−2∗1=[1 2 3 10 −3 −6 −20 0 −2 0 ]Unser erstes Ergebnis lautet also x 3= 0 2 =0Nun Stellt es kein Problem mehr dar, das LGS zu lösen.durch formales Einsetzen der Lösung für x 3in die zweite Zeileerhalten wir x 2, Und Schließlich durch einsetzen von x 2<strong>und</strong> x 3in die erste Gleichung erhalten wir x 1.


GAUSS hat noch ein paar Vereinfachungen getroffen.1. Wenn eine Zeile schon eine oder gar zwei Nullen enthält,so bietet es sich an, einfach eine oder zwei Zeilen zu vertauschen.Dadurch verändert sich natürlich auch die Reihenfolge der Ergebnisse.2. Auch Spalten können vertauscht werden, die Reihenfolge derErgebnisse ändert sich entsprechend der Reihenfolge der Spalten.Das Eigentliche Ziel, die Bestimmung der Inversen Matrix von A, könnenwir jetzt mit dem erworbenen Wissen realisieren.Wie definiert man das Inverse einer beliebigen Zahl? Man stellt eineGleichung auf, die verrät, welche Rechenoperationen beim Invertieren derZahl vorgenommen werden.x∗ 1 x =1Diese Bedingung muss gelten! Sie besagt, dass eine Zahl x genau danninvertierbar ist, wenn bei der Multiplikation von x mit seinem Kehrwertgenau 1 herauskommt!Die Mathematiker sagen nun Ähnliches über Matrizen:Eine quadratische Matrix A heißt invertierbar, wenn es eine dazugehörigeMatrix A −1 gibt, für die gilt A∗A −1 =E . Mit E ist die Einheitsmatrixbezeichnet, deren Zeilen­ <strong>und</strong> Spaltenzahl genau der Matrix A, sowie A −1besitzt. Sie besteht auf ihrer Hauptdiagonalen nur aus Einsen <strong>und</strong> hatansonsten nur Nullen als Element. Die Determinante einer soclhenEinheitsmatrix ist immer genau 1. Damit entspricht die gerade erwähnteGleichung genau der, die wir oben für x aufgestellt haben!Der GAUSS­Algorithmus vereinfacht uns hier das Leben. Wir müssen unsdie gegebene Matrix aufschreiben, ziehen der Übersichtlichkeit halber einensenkrechten Strich <strong>und</strong> schreiben die passende Einheitsmatix daneben. Jetztformen wir genau, wie oben beschrieben die linke Seite um. Erst wird wiegewohnt die Dreiecksmatrix hergestellt. Das ist jetzt neu: Danach


normalisieren wir die Hauptdiagonale <strong>und</strong> stellen im dritten Schritt dieobere Dreiecksmatrix auf der linken Seite her. Ein Beispiel:Erste Zeile mit ­7 multiplizieren, Ergebnis <strong>zur</strong> Dritten addieren,zweite Zeile mal ­4, <strong>zur</strong> Zweiten addieren.[1 2 34 5 67 8 7∣10 01]∗−7;0 1 00 0∗−4Zweite zeile mit ­2 multiplizieren <strong>und</strong> mit der dritten addieren[1 2 3∣1 0 01]0 −3 −6 −4 1 00 −6 −14 −7 0∗−2Auf der Rechten Seite wurde nicht gezaubert, sondern es wurdenauch die Zeilen der Einheitsmatrix mit den Faktoren multipliziert<strong>und</strong> auf die Selbe Art <strong>und</strong> Weise Zeile für Zeile addiert.Nächster Schritt: Normieren der Hauptdiagonalen[1 2 30 −3 −60 0 −2=[1 2 30 1 20 0 −2[1 2 30 1 20 0 1 ∣∣1∣10 01]−4 1 0 ∗1 −2∗0 01]4 1 − 03 31 −2=− 1 3− 1 21 0 0]4 1 − 03 31− 1 1 −2 2


Eine Zahl x wird zu eins gemacht, indem man x durch x teilt.Da wir hier Gleichungsumformungen durchführen, müssenwir auch alle Elemente der Zeile durch die Zahl teilen,die wir normieren wollen.Für die obere Dreicksmatrix links fangen wir diesmal in derobersten Zeile an, umzuformen.∣1 0 0][1 2 3 4− 1 00 1 2 3 30 0 1− 1 1 − 1 22− 5 − 2 ]03 34− 1 03 3− 1 1 − 1 22[1 0 −10 1 20 0 1[1 0 00 1 00 0 1∣∣−13 673− 1 2∗ −2− 5 − 1 ]3 2− 7 131 − 1 2∗ −2 ; ∗1Prima! Wer hier mitgerechnet hat, der sieht, dass hier nichts kompliziertesgemacht wurde. Es müssen einfach nur ein paar Regeln eingehalten werden,dann funktioniert der GAUSS immer.Zur Lösung des Gleichungssystems multiplizieren wir die invertierte Matrixnach der o.g. Gleichung x=b∗A −1 mit dem Ergebisvektor.x enthält dann all unsere gesuchten Lösungen, geordnet wie im


Gleichungssystem.2.2 Matrix­TransformationenWir betrachten Matrizen für dieses Thema wieder als Ansammlung vonPunkten im Raum.Unter dembgriff Transformation einer Matrix versteht man da gezielteVerändern einer Matrix. Möglichkeiten dieser Veränderung sind:­Drehen der Punkte einer Matrix um eine Koordinatenachse(Rotation)­Verschieben um einen Vektor (Translation)­Ändern der Größe eines geometrischen Objekts(Skalieren)2.2.1 Rotation (Drehen einer Matrix)Das Objekt wird um den Mittelpunkt gedreht.yxAlle in einer Matrix befindlichen Punkte (die im Beispiel zu einem Viereckverb<strong>und</strong>en wurden) werden natürlich mitgedreht. Der Winkel gibt an,um wieviel Grad in positiver Richtung(gegen den Uhrzeigersinn) die Matrixgedreht werden soll. Dabei geht man immer von der horizontalen Achse desKoordinatensystems aus. Wir werden sehen, dass es völlig ausreichend ist,sich die Drehung nur in der Ebene genauer anzusehen <strong>und</strong> zu berechnen, um<strong>3D</strong>­Punkte um eine Achse rotieren zu lassen.Das Beste Mittel, um eine Rotation eines einzelnen Punktes zu berechnenist, die Punkte in Polarkoordinaten um<strong>zur</strong>echnen. Dazu spielen wir dasgesamte Verfahren anhand eines einzigen Punktes durch. Wir wählennatürlich den Vektor als Schreibweise unserer Wahl.


P = x y ; Drehwinkel Mit Hilfe der Gleichungen <strong>zur</strong> Umrechnung von kartesischenin polare Koordinaten formen wir P nach unseren Wünschen um.r= x 2 y 2 ; =arctan y x x=r∗cos ;y=r∗sin Wir berechnen also zuerst den Abstand des Punktes vonder Drehachse <strong>und</strong> bestimmen danach den Winkel, den dieAbstandsgerade mit der waagerechten Achse einschließt.y rPxJetzt wird es Zeit, den Drehwinkel zu analysieren.Wir haben unseren Vektor zum Glück in Polarkoordinaten geaschrieben <strong>und</strong>können so die Position in x­ <strong>und</strong> y­Richtung trivial ermitteln, indem wireinfach den Drehwinkel zu dem Ausgangswinkel addieren <strong>und</strong> die neuenKomponenten in kartesische Koordinaten <strong>zur</strong>ückrechnen.P= x y = r∗cosr∗sinSo einfach die Sache hier im ersten Moment auch scheinen mag, so ist dochdarauf zu achten, dass man den absoluten Winkel <strong>zur</strong> positiven x­Achsebestimmen muss! Es reicht nicht aus, den Arcustangens desAusgangswinkels zu bestimmen. Diese Winkelfunktion liefert nur denWinkel zu waagerechten Achse <strong>und</strong> vergibt Vorzeichen, die aussagen, inwelchem Quadranten sich der Winkel befindet.


IIIIII IV Alle diese vier Winkel sind vom Betrage her gleich groß. Der absoluteWinkel <strong>zur</strong> positiven Hälfte der x­Achse aber ist in jedem der vorliegenFälle unterschiedlich groß. Wenn wir nun den Arcustangens von y durch xbestimmen, müssen wir noch selbst berechnen, wie groß der absoluteWinkel ist.Das aber ist auch nicht schwer:Liegt der Winkel im ersten Quadranten, so können wir das Ergebnisunverändert übernehmen.Liegt er aber im zweiten, so müssen wir von 180° abziehen.Im dritten 180°+ , im vierten 360°­ .Wollen wir nun schließlich eine Matrix um eine Achse rotieren, so mussman sich die Winkelbeziwhungen neu überlegen. Als wir oben um die z­Achse gedreht haben, hat sich ja an den z­Werten nichts geändert. Wirhaben nur die x­ <strong>und</strong> y­ Werte betrachtet. Genauso verfahren wir mit denanderen Achsen. Soll z.B. um die y­Achse gedreht werden, so bleiben allyy­Werte bestehen <strong>und</strong> die positive z­Achse ist die neue Bezugsachse fürunsere Winkel. Damit erhält man drei Vektoren, die es ermöglichen, einekomlette Matrix in allen Richtungen zu drehen.ROT z: P=xzy =r∗cosP=xr∗sin ; ROT : y y =zzROT x: P=x xy = r∗cosz r∗sinr∗sinyr∗cos


2.2.2 Translation(Verschieben einer MatrixTDie Verschiebung einer Matrix um einen Vektor lässt sich trivial durchAddition der einzelnen Zeilenelemente der Matrix mit der jeweiligenKomponente des Vektors erreichen.a 1,1⋯ a 1, n1⋮ ⋱ ⋮ T =T ⋮A=a n,1⋯ a n , n; nTAT =a 1,1T 1⋯ a 1, nT 1⋮ ⋱ ⋮na n,1T n⋯ a n , nT2.2.3 Skalieren(Zoomen)Die Skalierung einer Matrix, also das Verzerren eines Objekts, wirddurchgeführt, indem man einen Skalierungsvektor angibt, der drei Faktorenbeinhaltet. Die x­Komponente des Skalierungsvektors sagt, mit welchenFaktor alle x­Elemente einer Matrix zu multiplizieren sind. Genauso ist esbei der y­ <strong>und</strong> z­Richtung.a 1,1⋯ a 1, n1⋮ ⋱ ⋮ S=S ⋮A=a n ,1⋯ a n , n; nSA∗S=a 1,1∗S 1⋯ a 1, n∗S 1⋮ ⋱ ⋮a n,1∗S n⋯ a n , n∗S nDieses Vorgehen hat nichts mit einer ordentlichen Matrizenmultiplikation


zu tun! Das wird manchmal verwechselt, darum weise ich hier darauf hin.2.3 Projektion des Raumes auf eine flache EbeneUnter einer Projektion versteht man die Abbildung eines Objekts im Raumauf eine Flache bzw. gekrümmte Ebene. Stellen sie sich vor, sie machen einFoto. Bei diesem Vorgang passiert nichts weiter, als das alle Strahlen, dieirgendwie in das Kameraobjektiv gelangt sind, den Film durchstoßen haben.Dieses Prinzip machen wir uns zunutze <strong>und</strong> stellen den Umstand wie folgtdar:Kamera/AugeProjektionsflächeDer Umstand, dass das Bild in der Kamera mittels einer Linse erstumgedreht wird, soll uns hier nicht belasten. Wir haben keine Linse <strong>und</strong>müssen uns demnach eine Projektionsfläche vor der Kamera konstruieren.Welche Anforderungen haben wir an diese Ebene Zu erkennen sindProjektionsstrahlen, die sich in der Kamera treffen. Bei der Darstellung vonObjekten im Computer wird die hier dargestellte Kamera nicht mehr alsKamera, sondern als Auge interpretiert. Dieses Auge sieht auf dieProjektionsfläche drauf. Diese ist nichts anderes, als der Phosphor­Schirmdes Monitors, worauf sie blicken.Das Auge wird festgelegt durch einen Orstvektor, der uns verrät, wo imRaum sich das Auge befindet. Ein zweiter Vektor, der Sichtvektor, ist anden Ortsvektor angehangen <strong>und</strong> verrät uns, in welche Richtung das Augeblickt.


CEUm eine Projektion unserer in der Matrix gespeicherten Punkte errechnen zukönnen, müssen wir ein paar Tricks anwenden. Wie wollen das ganzeerstmal auf eine Parallelprojektion <strong>zur</strong>ückführen. Parallel ist eine Projektiondann, wenn man alle Strahlen senkrecht auf die Projektionsfläche laufenlässt. Danach ermittelt man die perspektivische Verzerrung der Punkte. Dasbedeutet, dass Objekte, je weiter sie von uns entfernt sind, kleiner wirken.Diese Verkleinerung kann man ermitteln, indem man die Parallelprojektionmittels des Strahlensatzes verkleinert. Aber wie stellen wir das an?Zuerst verschieben wir unseren Augenpunkt ins Zentrum deskoordinatensystems.Das lässt sich einfach durch eine Translation aller Punkte einer Matrix umden negativen Augenvektor.Danach drehen wir die z­Achse der Matrix genau in den Sichtvektor hinein.Damit erreichen wir eine Parallelprojektion auf unser Bildschirmkoordinatensystem.Die Matrix ist immer noch dreidimensional. Die z­Werte eines jeden Punktes können daher benutzt werden, um in Erfahrungzu bringen, wie weit das Objekt von unserer Projektionsfläche entfernt steht.Mit Hilfe des Strahlensatzes ermitteln wir dann noch die Verzerrung in x­


<strong>und</strong> y­Richtung ­ Fertig ist die Projektion.yzxNun <strong>zur</strong> <strong>Mathematische</strong>n Seite:1. Verschieben des Auges um den negativen Augenvektor1,1⋯ a 1, nxA=a ⋮ ⋱ ⋮ C=C C ya 3,1⋯ a 3, n; zCA−C=a 1,1−C x⋯ a 1, n−C x⋮ ⋱ ⋮a n ,1−C z⋯ a n , n−C z2. Drehen der Matrix auf den SichtvektorDazu müssen wir zwei Einzelschritte durchführen. Zuerst drehen wir diegesamte Matrix. Wir brauchen zuerst den Winkel des Sichtvektors in der x­z­Ebene, dann den Winkel in der z­y­Ebene mit der positiven z­Achse .Danach drehen wir die Matrix um die y­Achse um den negativen Winkel <strong>zur</strong>z­Achse. Danach drehen wir die Matrix um die x­Achse um den negativenWinkel mit der y­Achse. xz=−acos x r =−asin y r Nun, da wir eine parallele Projektion hergestellt haben, wollen wir noch die


perspektivische Verzerrung berechnen, die jeder Punkt erfährt. Zuerst in x­Richtung:xxProjektionsflächex'S z' zzVom Augenpunkt geht ein Strahl zu jedem Punkt der Matrix. Dieser Strahltrifft auch auf die Projektionsfläche auf. Den neuen x­Wert diesesProjizierten Punktes ermitteln wir per Strahlensatz:zx = z'x 'umgestellt nach x 'ergibt sichx '= x z ∗z'die Größe x'ermitteln wir aus der Länge des Kameravektors S .Um die Verzerrung in y zu berechnen, verfahren wir genauso. Die<strong>Berechnung</strong>svorschrift lautet:zy = z'y 'umgestellt nach y'ergibt sichy '= y z ∗z'Mit dem bis jetzt erworbenen Wissen kann man schon einiges Anstellen,jedoch wird man einen Effekt bemerken, nämlich dass sich ein Objektunnatürlich stark verzerrt, wenn man es aus der Nähe ansieht. Das kommtdaher, dass wir eine flache Projektionsebene gewählt haben, auf die das Bildprojiziert wird. Das menschliche Auge aber besitzt keine flache, sonderneine schalenförmige Projektionsfläche.Wollen wir also eine korrekte Projektion erhalten, so müssen wir dieperspektivischen Verzerrungen anders berechnen. Dann nämlich wird die


Projektionsfläche durch zwei Funktionen dargestellt, die beschreiben, wiesehr sich die Projektionsfläche krümmen soll.Ich komme im Programmierteil noch genauer dazu. Doch nun <strong>zur</strong> Physik.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!