Institut für Geometrie und Praktische Mathematik Mathematisches Praktikum (MaPra) Sommersemester Aufgabe 5
|
|
- Dorothea Maus
- vor 6 Jahren
- Abrufe
Transkript
1 Rheinisch-Westfälische Technische Hochschule Institut für Geometrie und Praktische Mathematik Mathematisches Praktikum (MaPra) Sommersemester 2009 Prof. Dr. Wolfgang Dahmen Dipl.-Math. Dipl.-Phys. Kolja Brix Aufgabe 5 Bearbeitungszeit: zwei Wochen (Abgabe bis Freitag, den 19. Juni 2009) Testattermin: Donnerstag, der 25. Juni 2009 Mathematischer Hintergrund: Iterative Verfahren zur Lösung linearer Gleichungssysteme, dünnbesetzte Matrizen Elemente von C++: Klassen, Überladen von Operatoren 25 Punkte Ich empfehle Ihnen diesen Modus zur Nachahmung. Schwerlich werden Sie je wieder direct eliminieren, wenigstens nicht wenn Sie mehr als 2 Unbekannte haben. Das indirecte Verfahren lässt sich halb im Schlafe ausführen, oder man kann während desselben an andere Dinge denken. (C.F.Gauß in einem Brief an C.L. Gerling vom ) Während seinen Berechnungen stieÿ Gauÿ immer wieder auf Gleichungssysteme, die zu groÿ waren, als dass er sie mit der direkten Methode der Gauÿ-Elimination berechnen konnte. Darum entwickelte er um 1820 das wohl erste Iterationsverfahren, das Gauÿ-Seidel-Verfahren, das heute auch als Einzelschrittverfahren bekannt ist. Iteratives Lösen linearer Gleichungssysteme Beim iterativen Lösen linearer Gleichungssysteme handelt es sich um ein Approximationsverfahren zum Bestimmen der Lösung eines Gleichungssystems. Diese Verfahren stehen im Gegensatz zu den direkten Verfahren zum Lösen linearer Gleichungssysteme (z.b: Gauÿsches Eliminationsverfahren, LR- oder QR-Zerlegung). Bei den direkten Verfahren kommt man nach endlich vielen Schritten zur genauen Lösung des Gleichungssystems, bei den iterativen Verfahren nähert man sich in jedem Schritt der Lösung. Entwicklung iterativer Verfahren Bei der Simulation technischer Prozesse treten an vielen Stellen sehr groÿe lineare Gleichungssysteme auf. Einige Beispiele sind die Diskretisierung partieller Dierentialgleichungen und die Computertomographie. In Zeiten ohne Rechner war es so gut wie unmöglich, mit dem direkten Verfahren gröÿere Gleichungssysteme zu lösen, da diese enorm viel Rechenaufwand erfordern. Es war also notwendig, Verfahren zu entwickeln, mit denen man schneller an die Lösung kam. In vielen der Anwendungsfälle treten lineare Gleichungssysteme mit einigen hunderttausend Unbekannten auf. Direkte Verfahren sind zwar für jede Dimension anwendbar, der benötigte Rechenaufwand ist aber von der Gröÿenordnung O(n 3 ) und steigt daher mit der Dimension so stark an, dass man zur Lösung von Gleichungssystemen mit 10 5, 10 6 oder noch mehr Unbekannten auch große Rechner lange beschäftigen kann. 1
2 Weiterhin benötigt man zum Beispiel zum Abspeichern der gesamten Matrix eines linearen Gleichungssystems mit 10 6 Unbekannten und Einträgen des Typs double 1 insgesamt 8 (10 6 ) 2 Byte = Byte = 8000 GB = 8 TB Speicherplatz. Soviel Arbeitsspeicher steht heute selbst auf groÿen Rechnern selten zur Verfügung. 2 Dünnbesetzte Matrizen Oft sind die Matrizen der linearen Gleichungssysteme in Anwendungsfällen nicht voll besetzt, das heiÿt sie enthalten sehr viele Nullen. Man bezeichnet üblicherweise eine Matrix als dünn besetzt (engl. sparse), wenn die Anzahl der von Null verschiedenen Einträge pro Zeile durch eine Konstante beschränkt ist, die wesentlich kleiner als die Spaltendimension der Matrix ist. Dünnbesetzte Matrizen erfordern sehr viel weniger Speicher, da die Nullen nicht mehr abgespeichert werden müssen. Vorteile und Nachteile von Iterationsverfahren gegenüber direkten Verfahren Je gröÿer die Dimension des Gleichungssystems, desto schneller ist das Iterationsverfahren (meistens) im Vergleich zu den direkten Verfahren. Schon nach wenigen Schritten erhält man oft eine ziemlich genaue Lösung. Durch die Rundungsfehler im Rechner besonders bei schlecht konditionierten Matrizen liefert das Iterationsverfahren sogar meist genauere Ergebnisse als das direkte Verfahren. Darum wurde auch die Methode der Nachiteration entwickelt. Bei dieser wird auf das Ergebnis des direkten Verfahrens ein iteratives Verfahren angewandt, um die Genauigkeit der Lösung zu erhöhen (siehe Vorlesung zur Numerische Analysis I). Bei den direkten Verfahren (z.b. LR- oder QR-Zerlegung) zur Lösung eines linearen Gleichungssystems Ax = b wird die Koezientenmatrix A im Laufe der Rechnung verändert. Ist die Dimension der dünn besetzten Matrix A sehr groÿ, so ist das veränderte A im allgemeinen nicht mehr ebenso dünn besetzt und nicht mehr im Hauptspeicher darstellbar. Direkte Verfahren sind daher oft nicht mehr möglich bzw. es ist ein sehr aufwendiger Datentransfer (z.b. zur Zwischenspeicherung der Daten auf Festplattenspeicher) nötig. Iterative Verfahren verändern die Koezientenmatrix hingegen nicht, sondern berechnen sukzessiv Näherungsvektoren für die Lösung und benötigen daher viel weniger Speicherplatz. Auch der Nachteil iterativer Verfahren soll nicht verschwiegen werden: Man muss sicherstellen, dass sie konvergieren. Das ist oft nicht ganz einfach. Weiterhin muss man ein geeignetes Abbruchkriterium bereitstellen. Aufgabenstellung Mit Hilfe einer gut konzipierten Softwarebibliothek (engl. library) für Matrizen und Vektoren lassen sich iterative Verfahren zur Lösung von linearen Gleichungssystemen mit einem sehr geringem Programmieraufwand implementieren. Dies soll mittels Matrix- und Vektorklassen an einigen Beispielen erprobt werden. Ziel ist es, die Algorithmen so zu formulieren, dass sie im Wesentlichen mit Matrix-Vektor-Multiplikationen durchführbar sind. Wir wollen hier drei Verfahren behandeln. Diese sind a) das Gesamtschrittverfahren zum Aufwärmen, 1 Nach der Norm IEEE 754 (IEEE Standard for Floating-Point Arithmetic) belegt eine Fließkommavariable doppelter Genauigkeit (engl. double precision; in C++ vom Typ double) 1 Bit für das Vorzeichen, 11 Bit für den Exponenten und 52 Bit für die Mantisse, so dass man zum Abspeichern insgesamt 64 Bit = 8 Byte Speicherplatz benötigt. 2 Der Supercomputer JUGENE (Jülich BlueGene) vom Typ IBM BlueGene/P im Forschungszentrum Jülich belegte im November 2007 als schnellster zivil genutzter Rechner den zweiten Platz in der TOP500-Liste und verfügt über insgesamt 32 TB Arbeitsspeicher. 2
3 b) das Verfahren der konjugierten Gradienten (CG-Verfahren) für symmetrische und positiv denite Matrizen, c) CGLS ein CG-Verfahren für lineare Ausgleichsprobleme. Dieses wird z.b. in der Computertomographie eingesetzt. Sie sollten danach in der Lage sein, jederzeit weitere Algorithmen hinzuzufügen. Dies könnte etwa die LR- Zerlegung, die QR-Zerlegung oder ein weiteres iteratives Verfahren [9] sein. Vektor- und Matrixklasse Um die Algorithmen dieser Aufgabe möglichst übersichtlich gestalten zu können, sollen die Vektor- und Matrixoperationen in eigenen Klassen implementiert werden. Benutzen Sie dazu die Vektorklasse aus Aufgabe 3. Ihre Aufgabe ist es, analog eine Klasse Sparse_Matrix für dünnbesetzte Matrizen mit den entsprechenden Operationen zu entwickeln. Dazu sollten Sie zwei Dateien sparse_matrix.h und sparse_matrix.cpp anlegen. Um die Programme besser kontrollieren zu können, sind die Header-Files vektor.h und sparse_matrix.h fest vorgegeben. Hier dürfen nur am Ende eigene Funktionen eingefügt werden (nach dem entsprechenden Kommentar), sonst funktionieren gegebenenfalls schon die Tests nicht (siehe unten). Umsetzung dünnbesetzter Matrizen mit Hilfe einer Hashtabelle Um eine dünnbesetzte Matrix abzuspeichern, gibt es viele Datenstrukturen [9]. In dieser Aufgabe soll eine Hashtabelle (engl. hash table, hash map) benutzt werden. Dabei handelt es sich wie bei den Klassen set und map aus der STL [1, 7] um einen assoziativen Container. In diesem kann auf die zugeordneten Daten oder Werte (engl. value) über einen Schlüssel (engl. key) zugegrien werden. Daher stellt die Hashtabelle eine Abbildung (engl. map) dar. Das Besondere an der Hashtabelle ist, dass bei ihr im Gegensatz zu einem Feld nicht für alle möglichen Schlüssel Speicherplatz reserviert werden muss. Gleichzeitig ist die Hashtabelle so konzipiert, dass der Aufwand, um auf ein Element zuzugreifen von der Gröÿenordnung O(1), also konstant und unabhängig von der Anzahl der Einträge in der Hashtabelle ist. Intern verwendet die Hashtabelle eine Hashfunktion, die sie auf einen Schlüssel anwendet. Der Funktionswert wird dann einer Position in einem Feld zugeordnet, an der die Werte abgespeichert werden sollen. Die Hashfunktion ist so konstruiert, dass möglichst wenig Schlüssel den gleichen Funktionswert liefern. Trotzdem ist dies nicht ganz zu vermeiden, da die Menge der möglichen Schlüssel viel gröÿer ist als die Länge der internen Tabelle. Wird zwei Schlüsseln nun doch die gleiche Stelle im internen Feld zugewiesen, so bezeichnet man dies als Kollision (engl. collision). Ein gängiger Weg zur Kollisionsbehandlung ist, an dieser Stelle im internen Feld einen Zeiger auf eine verkettete Liste abzulegen, in der dann die zugehörigen Daten abgelegt werden. Im Englischen wird diese Methode der Kollisionsbehandlung als chaining bezeichnet. Die C++ Standard Template Library [1] ist eine Softwarebibliothek, die heute Bestandteil der Programmiersprache C++ ist und viele immer wieder benötigte Datenstrukturen und Algorithmen auf diesen Datenstrukturen bereitstellt. Diese Implementierungen sind auf Fehlerfreiheit getestet und vielfach bewährt. Im aktuellen Vorschlag Technical Report 1 [2] für eine Verbesserung der C++-Standardbibliothek, der zur Zeit vom C++-Standardisierungsgremium beraten wird, ist mit der Klasse unordered_map bereits eine Hashtabelle vorhanden. Die neuen Komponenten aus diesem Vorschlag sind im Namespace std::tr1 zu nden. Bei den aktuellen Compilern der GNU Compiler Collection wird eine teilweise Implementierung des geplanten neuen Standards bereits mitgeliefert, für andere Compiler steht mit der Bibliothek Boost 3 eine Implementierung zur Verfügung. Für die Verwendung solcher Container im Programm deniert man sich am einfachsten mittels typedef einen neuen Datentyp. Mit 3 Webseite zur Softwarebibliothek Boost: 3
4 #include <tr1/unordered_map> typedef std::tr1::unordered_map<string, int> myhash; wird myhash als Datentyp Hashtabelle mit string-schlüsseln und int-daten deklariert. Damit kann z.b. ein Telefonregister realisiert werden: myhash TelReg; TelReg["Ron"] = 79825; TelReg["Hermine"] = 22235; TelReg["Harry"] = 40108; cout << TelReg["Hermine"] << endl; Um die Elemente des Containers zu durchlaufen, werden wie gewohnt Iteratoren benutzt. Iteratoren sind eine Verallgemeinerung von Zeigern. Sie erlauben es, mit verschiedenen Containern auf gleiche Weise zu arbeiten. Die Ausgabe aller Elemente des Telefonregisters erfolgt z.b. über for (myhash::iterator it=telreg.begin(); it!=telreg.end(); ++it) cout << "Name: " << it->first << ", TelNr: " << it->second << endl; Dabei bedeutet it->first (gleichbedeutend mit (*it).first) den Zugri auf den Schlüssel (in diesem Falle der Name) und it->second den Zugri auf die Daten (hier die Telefonnummer), da das Tupel aus Schlüssel und Daten in einem Objekt std::pair abgelegt werden. Beachten Sie, dass der Zugri auf ein Element über den operator[] dieses Element erzeugt und in die Hashtabelle aufnimmt, falls es noch nicht existiert. Möchten Sie nur testen, ob ein Schlüssel existiert, benutzen Sie die Methode find(). Um die Indizes eines Eintrags der Matrix abzulegen, kann auch die Klasse std::pair aus der Standardbibliothek typedef std::pair<unsigned int, unsigned int> key; verwendet werden. Ein solches Paar ist dann der Datentyp für die Schlüssel der Hashtabelle der dünnbesetzten Matrix. Zusätzlich muss nun eine Hashfunktion für den neuen Datentyp key in Form einer Klasse bereitgestellt werden. Dabei kann man auf die vordenierten Hashfunktionen für Standarddatentypen zurückgreifen: class hashfunktion { public: std::size_t operator() (key wert) const { std::tr1::hash < unsigned int > hashfunktion; return hashfunktion(wert.first) + hashfunktion(wert.second); } }; Mit typedef std::tr1::unordered_map < key, double, hashfunktion > hashmap; erzeugt man nun den Datentypen der für die dünnbesetzte Matrix nötigen Hashtabelle. 4
5 Anforderungen an die Matrixklasse An Ihre Matrixklasse werden einige Anforderungen gestellt. Durch Sparse_Matrix A(m,n); wird eine dünnbesetzte Matrix A mit m Zeilen und n Spalten angelegt, die nur Nullen enthält. Um auch Felder von dünnbesetzten Matrizen anlegen zu können (dabei kann der Konstruktor nur ohne Parameter aufgerufen werden), sollten m und n den DefaultWert 1 bekommen. Der Lesezugri auf das Matrixelement A ij (auch für const Sparse_Matrix &A) erfolgt mittels A(i,j) oder A.get(i,j), der Schreibzugri über A.put(i,j,x). Besonders wichtig ist, zu vermeiden, dass in der Hashtabelle jemals ein Eintrag gespeichert wird, der den Wert Null hat. Falls die Matrix das gewünschte Element aufgrund der Dimension nicht enthält, sollte mit einer Fehlermeldung abgebrochen werden. Die Dimension der Matrix sollte sich analog zur Elementfunktion Dimen() der Vektorklasse über die beiden Elementfunktionen Zeilen() und Spalten() auslesen lassen. Mit A.ReDim(m,n); wird die Matrix neu dimensioniert und wieder auf die Nullmatrix gesetzt. Der (private) Daten-Teil Ihrer Klasse könnte z.b. die folgende Form haben: int hashmap _Zeile, _Spalte; Mat; Der Konstruktor könnte dann die Dimensionen richtig setzen und die Hashtabelle Mat leeren. Ihre Funktionen müssen dafür sorgen, dass die Matrixelemente darin korrekt abgelegt werden. In _Zeile und _Spalte können Sie die Matrixdimension speichern. Neben den üblichen Operatoren für Matrizen sollte Ihre Matrixklasse auch entsprechende Operatoren für das Matrix-Vektor-Produkt zur Verfügung stellen. Es müssen natürlich auch ein Kopierkonstruktor, ein Destruktor und der Zuweisungsoperator implementiert werden. Test der Vektor- und Matrixklassen Die Datei test_mv.o soll Ihnen bei der Fehlersuche in den Klassen helfen. Sie können von test_mv.o die Funktion int KlassenTest() aufrufen. Schreiben Sie dazu ein Hauptprogramm main_mv.cpp und machen Sie diesem die Funktion KlassenTest zugänglich. Ihre Klassen sollten sämtliche darin enthaltenen Tests bestehen. Dazu müssen Sie lediglich aus der Objektdatei test_mv.o, Ihren beiden Dateien vektor.cpp und sparse_matrix.cpp sowie main_mv.cpp ein ausführbares Programm erzeugen und starten. Das erfolgreiche Absolvieren der Tests heiÿt nicht, dass alles richtig implementiert ist. Schreiben Sie daher auch ein eigenes Testprogramm! 5
6 Gesamtschrittverfahren Das Gesamtschrittverfahren wurde 1845 von Carl Gustav Jacobi entwickelt und man bezeichnet es daher auch als Jacobi-Verfahren. Löst man in einem linearen Gleichungssystem Ax = b mit Matrix A R n n die i-te Gleichung nach x i auf, so erhält man das Gesamtschrittverfahren. Zerlegt man A in A = A L +D +A R, wobei A L eine strikte untere Dreiecksmatrix und A R eine strikte obere Dreiecksmatrix und D eine Diagonalmatrix sind, so lässt sich die so gewonnene Gleichung schreiben als x = D 1 (b (A L + A R )x). Wegen der Zerlegung der Matrix A in die Dreiecksmatrizen A L und A R und die Diagonalmatrix D fällt das Gesamtschrittverfahren unter die Splitting-Verfahren [9]. Die Multiplikation eines Vektors mit der Inversen einer Diagonalmatrix D bewirkt, dass jede Komponente des Vektors durch das entsprechende Diagonalelement geteilt wird. In der Praxis wird D nicht als Matrix sondern als Vektor d mit D = diag{d 1,..., d n } gespeichert. Die Operation D 1 y lässt sich dann mit dem Operator / als Vektor-Vektor-Operation y/d in der Vektorklasse implementieren. Das Gesamtschrittverfahren für Ax = b ist in Algorithmus 1 wiedergegeben. Algorithmus 1 Gesamtschrittverfahren (Jacobi-Verfahren) 1: Gegeben seien A R n n symmetrisch positiv denit und ein beliebiger Startvektor x (0). 2: for k = 0, 1, 2,... do 3: x (k+1) (b (A L + A R )x (k) )/d 4: Prüfe Abbruchbedingung. 5: end for Bleibt noch zu diskutieren, unter welchen Voraussetzungen das Verfahren konvergiert und welche Abbruchbedingung verwendet werden soll. Es gibt ein Konvergenzkriterium, das sich auch einfach überprüfen läÿt: Satz 1 (Hinreichende Bedingung für die Konvergenz des Gesamtschrittverfahrens) Das Gesamtschrittverfahren konvergiert für streng diagonaldominante Matrizen A, falls also gilt a ii > 1 j n,j i a ij für 1 i n, für jeden Startwert x (0). Die Iteration soll abgebrochen werden, wenn eine maximale Anzahl von Schritten k max überschritten wird oder das Residuum kleiner als ein vorgegebenes ε wird. In der praktischen Umsetzung soll A L + A R in der Matrix A gespeichert werden. Ist eine neue Näherung der Lösung berechnet, so kann die alte Lösung gelöscht werden, es ist also unnötig und Verschwendung, alle Iterationsvektoren zu speichern. Das Residuum läÿt sich einfach berechnen, wenn man b (A L + A R )x (k) zwischenspeichert. Streng genommen muss zwischen Residuenvektor r (k) = b Ax (k) und Residuum r (k) 2 unterschieden werden. Beachten Sie, dass ein kleines Residuum nicht zwangsweise bedeutet, dass eine gute Näherungslösung vorliegt. Überprüfen Sie, ob das Konvergenzkriterium bereits erfüllt ist, bevor Sie die Iteration beginnen. Konjugierte Gradienten das CG-Verfahren Das Verfahren der konjugierten Gradienten oder CG-Verfahren (engl. conjugate gradient method) für symmetrisch positiv denite (spd) Matrizen A ist eines der ezientesten Verfahren zur Lösung linearer Gleichungssysteme Ax = b überhaupt. Es wurde 1952 von Hestenes und Stiefel veröentlicht [5] und fällt in die Klasse der Krylov-Teilraumverfahren [8, 9]. Das CG-Verfahren ist in Algorithmus 2 formuliert. Für eine symmetrisch positiv denite Matrix A R n n ist, A : R n R n R, (x, y) x T Ay ein Skalarprodukt und wird als Energieskalarprodukt bezeichnet. Folglich ist x A := x, x A eine Norm auf R n, die sogenannte Energienorm. Es bleibt wieder zu klären, unter welchen Voraussetzungen das Verfahren konvergiert und welches Abbruchkriterium sinnvoll ist. Es gilt der 6
7 Algorithmus 2 CG-Verfahren 1: Gegeben seien A R n n symmetrisch positiv denit und ein beliebiger Startvektor x (0). 2: r (0) b Ax (0), d (0) = r (0) 3: for k = 0, 1, 2,... do 4: α k r (k) 2 2 /((Ad(k) )d (k) ) Ad (k) für später speichern! 5: x (k+1) x (k) + α k d (k) 6: r (k+1) r (k) α k Ad (k) 7: β k r (k+1) 2 2 / r(k) 2 2 r (k+1) 2 2 für später speichern! 8: d (k+1) r (k+1) + β k d (k) 9: Prüfe Abbruchbedingung. 10: end for Satz 2 (Exakte Lösung beim CG-Verfahren) Für eine symmetrische positiv definite Matrix A R n n findet das CG-Verfahren (unter der Annahme exakter Rechnung) nach höchstens n Schritten die exakte Lösung. Wenn wir also voraussetzen, dass die Matrix symmetrisch und positiv denit ist, dann konvergiert das CG-Verfahren für jeden beliebigen Startwert. Meist möchte man aber nicht soviele Iterationen berechnen. Darüber hinaus läÿt sich die Konvergenzgeschwindigkeit des CG-Verfahrens abschätzen: Satz 3 (Fehlerabschätzung für das CG-Verfahren) Unter obigen Voraussetzungen gilt die Fehlerabschätzung ( k x x (k) A κ2 (A) 1 x 2 x (0), κ2 (A) + 1) A wobei κ 2 (A) die Kondition der Matrix A bezüglich der Euklidischen Norm und x die exakte Lösung bezeichnet. Die Beweise der Sätze ndet man in [3, 8, 9, 4]. In der Praxis ist diese Abschätzung als Abbruchkriterium wenig geeignet, da die Kondition κ 2 (A) unbekannt und nur aufwendig zu berechnen ist. Wichtig ist hingegen festzustellen, dass die Geschwindigkeit der Konvergenz des Verfahrens stark steigt, wenn die Kondition der Matrix sinkt. Die Iteration soll hier wieder abgebrochen werden, sobald eine maximale Anzahl von Schritten k max überschritten oder das Residuum kleiner als ein vorgegebenes ε wird. Der Name konjugierte Gradienten erklärt sich wie folgt: Die Minimierung des quadratischen Funktionals Φ(x) = 1 2 xt Ax x T b führt auf die notwendige Bedingung grad Φ(x) = Ax b = 0 (A symmetrisch und positiv denit ist dann hinreichend für ein Minimum). Wenn man Φ(x) nun schrittweise mittels des Ansatzes x (k+1) = x (k) + α k d (k) minimiert, so sind mit obiger Wahl die d (k) bzgl. A konjugiert, d.h.: d (k+1), d (k) A = (d (k+1) ) T Ad (k) = 0. CGLS ein CG-Verfahren für lineare Ausgleichsprobleme Zum linearen Ausgleichsproblem Ax b 2 min mit Matrix A R m n mit vollem Rang und Vektor b R m gehört bekanntlich (siehe Vorlesung Numerische Analysis I) das Normalgleichungssystem A T Ax = A T b mit der symmetrischen und positiv deniten Matrix A T A. Leider ist A T A meist schlecht konditioniert und für dünnbesetzte Matrizen A ist A T A meist nicht mehr dünn besetzt. Das Verfahren der konjugierten Gradienten kann aber so umformuliert werden, dass beide Probleme umgangen werden. Wir benutzen zwei Residuen(vektoren): r (k) = b Ax (k) und s (k) = A T b A T Ax (k) = A T r (k). Da wir in unseren Klassen nicht zwischen Zeilen- und Spaltenvektoren unterscheiden, können wir in der Implementierung statt A T r (k) auch r (k) A benutzen. Damit lässt sich das CGLS-Verfahren (engl. conjugate gradient least squares; in [9] als CGNR bezeichnet) formulieren, wie in Algorithmus 3 angegeben. Das Abbruchkriterium wählen wir wie beim CG-Verfahren: Der Algorithmus endet bei einer maximalen Anzahl von Schritten oder wenn das Residuum eine vorgegebene Schranke ε ( s (k) 2 ε) unterschreitet. 7
8 Algorithmus 3 CGLS-Verfahren 1: Gegeben seien A R m n mit vollem Rang und beliebiger Startvektor x (0). 2: r (0) b Ax (0) 3: s (0) A T r (0) 4: d (0) s (0) 5: for k = 0, 1, 2,... do 6: α k = s (k) 2 2 / Ad(k) 2 2 Ad (k) für später speichern! 7: x (k+1) = x (k) + α k d (k) 8: r (k+1) = r (k) α k Ad (k) 9: s (k+1) = A T r (k+1) 10: β k = s (k+1) 2 2 / s(k) : d (k+1) = s (k+1) + β k d (k) 12: Prüfe Abbruchbedingung. 13: end for Da wir nur ein einheitliches Abbruchkriterium vorgegeben haben, können alle drei Verfahren folgendermaÿen implementiert werden: int gsv (Sparse_Matrix &A, const Vektor &b, Vektor &x0, const int k_max, double &eps); int cg (const Sparse_Matrix &A, const Vektor &b, Vektor &x0, const int k_max, double &eps); int cgls(const Sparse_Matrix &A, const Vektor &b, Vektor &x0, const int k_max, double &eps); Beim Gesamtschrittverfahren darf die Matrix A modiziert werden, muss aber beim Verlassen der Funktion (Unterprogramm) wieder wie beim Eingang besetzt sein. Es brauchen und sollen auch keine weiteren Matrizen oder Felder (engl. arrays) von Vektoren angelegt werden. Ist die Dimension des Vektors x0 gleich Eins, so soll das Unterprogramm selbst einen Startvektor bestimmen. Beim Aufruf steht in eps die gewünschte Genauigkeit (Residuum). Beim Rücksprung soll eps die erreichte Genauigkeit enthalten. In der Funktion sollen die Voraussetzungen geprüft (gsv: A diagonaldominant, cg: A symmetrisch, cgls: m n) und eine Warnung ausgegeben werden, wenn sie nicht erfüllt sind. Der Rückgabewert der Funktion ist die Anzahl der durchgeführten Schritte (falls >0) bzw. ein Fehlercode. Dabei sollen folgende Fehler berücksichtigt werden: 0: k_max Iterationen erreicht (auch in diesem Fall soll aber eps die erreichte Genauigkeit enthalten), -1: Dimensionen von A, b und x0 passen nicht zusammen. Anwendung in der Computertomographie Zum Abschluss noch einige Worte zur Anwendung bei der Computertomographie. Im Artikel [6] ndet sich eine gute Übersicht über das Thema. Hier nur soviel: Ein Scan mit Bildpunkten führt (in jeder Schicht!) auf ein System mit Unbekannten. Da das System überbestimmt sein muss, hat man ca Gleichungen. CGLS braucht dafür nur ca Iterationen, um akzeptable Lösungen zu bekommen. Die Kernspin-Tomographie, auch Magnet-Resonanz-Tomographie (MRT) genannt, ist eine diagnostische Technik zur Darstellung der inneren Organe und Gewebe mit Hilfe von Magnetfeldern und Radiowellen. Das technische Prinzip wurde 1946 von Bloch und Purcell unabhängig voneinander entdeckt und bald in Physik und Chemie angewandt erhielten die beiden Wissenschaftler den Nobelpreis in Physik für ihre Entdeckung. Die Weiterentwicklung zu einer Technik in der Medizin, mit Hilfe derer Bilder erzeugt werden können, wurde im wesentlichen durch den Chemiker Lauterbur und den Physiker Manseld im Jahr 1973 vorangetrieben. Dafür bekamen sie 2003 den Nobelpreis für Medizin. Praktisch verfügbar ist das Verfahren seit
9 Literatur [1] Dokumentation der C++ Standard Template Library (STL). [2] Draft Technical Report on C++ Library Extensions. Technischer Bericht, JTC1/SC22/WG21 - The C++ Standards Committee, pdf. [3] Dahmen, W. und A. Reusken: Numerische Mathematik für Ingenieure und Naturwissenschaftler. Springer Verlag, Heidelberg, 2. Auflage, [4] Golub, G. und C. van Loan: Matrix Computations. Johns Hopkins University Press, Baltimore, [5] Hestenes, M. R. und E. Stiefel: Methods of Conjugate Gradients for Solving Linear Systems. Journal of Research of the National Bureau of Standards, 49(6):409436, [6] Hochbruck, M. und J.-M. Sautter: Mathematik fürs Leben am Beispiel der Computertomographie. Mathematische Semesterberichte, 49:95113, publications/ct.pdf. [7] Kuhlins, S. und M. Schader: Die C++-Standardbibliothek. Springer Verlag, Heidelberg, [8] Meister, A.: Numerik linearer Gleichungssysteme. Vieweg, Wiesbaden, [9] Saad, Y.: Iterative Methods for Sparse Linear Systems. Society for Industrial and Applied Mathematics (SIAM), Philadelphia, 2. Auflage, Die 1. Auage ist online verfügbar unter cs.umn.edu/~saad/books.html. 9
Iterative Lösung Linearer Gleichungssysteme
Iterative Lösung Linearer Gleichungssysteme E. Olszewski, H. Röck, M. Watzl 1. Jänner 00 E. Olszewski, H. Röck, M. Watzl: WAP (WS 01/0) 1 Vorwort C.F.Gauß in einem Brief vom 6.1.18 an Gerling:
Institut für Geometrie und Praktische Mathematik Mathematisches Praktikum (MaPra) Sommersemester Aufgabe 4
Rheinisch-Westfälische Technische Hochschule Institut für Geometrie und Praktische Mathematik Mathematisches Praktikum (MaPra) Sommersemester 2012 Prof. Dr. Wolfgang Dahmen Yuanjun Zhang, M.Sc., Dipl.-Math.
Der CG-Algorithmus (Zusammenfassung)
Der CG-Algorithmus (Zusammenfassung) Michael Karow Juli 2008 1 Zweck, Herkunft, Terminologie des CG-Algorithmus Zweck: Numerische Berechnung der Lösung x des linearen Gleichungssystems Ax = b für eine
Iterative Verfahren, Splittingmethoden
Iterative Verfahren, Splittingmethoden Theodor Müller 19. April 2005 Sei ein lineares Gleichungssystem der Form Ax = b b C n, A C n n ( ) gegeben. Es sind direkte Verfahren bekannt, die ein solches Gleichungssystem
Beginn der Vorlesung zur Numerik I (Wintersemester 2010/2011)
M. Sc. Frank Gimbel Beginn der Vorlesung zur Numerik I (Wintersemester 2010/2011) 1 Motivation Ziel ist es, ein gegebenes lineares Gleichungssystem der Form Ax = b (1) mit x, b R n und A R n n zu lösen.
Inexakte Newton Verfahren
Kapitel 3 Inexakte Newton Verfahren 3.1 Idee inexakter Newton Verfahren Wir betrachten weiterhin das nichtlineare Gleichungssystem F (x) = mit einer zumindest stetig differenzierbaren Funktion F : R n
Matrizenoperationen mit FORTRAN
Kapitel 2 Matrizenoperationen mit FORTRAN 21 Grundlagen Bei vielen Anwendungen müssen große zusammenhängende Datenmengen gespeichert und verarbeitet werden Deshalb ist es sinnvoll, diese Daten nicht als
Wertebereich und Genauigkeit der Zahlendarstellung
Wertebereich und Genauigkeit der Zahlendarstellung Sowohl F als auch C kennen bei ganzen und Floating Point-Zahlen Datentypen verschiedener Genauigkeit. Bei ganzen Zahlen, die stets exakt dargestellt werden
Skalarprodukte (Teschl/Teschl Kap. 13)
Skalarprodukte (Teschl/Teschl Kap. ) Sei V Vektorraum über R. Ein Skalarprodukt auf V ist eine Abbildung V V R, (x, y) x, y mit den Eigenschaften () x, y = y, x (symmetrisch), () ax, y = a x, y und x +
Methode der kleinsten Quadrate
Versus QR Matrizen mit vollem Rang 27. Mai 2011 Versus QR Inhaltsverzeichnis 1 2 3 Beispiel 4 Beispiel 5 6 Versus QR Kondition Vergleich Beispiel Versus QR Zu finden: Gerade, die den Punkten (0, 6), (1,
Optimierung. Optimierung. Vorlesung 2 Optimierung ohne Nebenbedingungen Gradientenverfahren. 2013 Thomas Brox, Fabian Kuhn
Optimierung Vorlesung 2 Optimierung ohne Nebenbedingungen Gradientenverfahren 1 Minimierung ohne Nebenbedingung Ein Optimierungsproblem besteht aus einer zulässigen Menge und einer Zielfunktion Minimum
WiMa-Praktikum 1. Woche 8
WiMa-Praktikum 1 Universität Ulm, Sommersemester 2017 Woche 8 Lernziele In diesem Praktikum sollen Sie üben und lernen: Besonderheiten der For-Schleife in Matlab Wiederholung des Umgangs mit Matrizen und
Informatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative
Lineare Algebra und Numerische Mathematik für D-BAUG. Serie 6
R. Hiptmair S. Pintarelli E. Spindler Herbstsemester 2014 Lineare Algebra und Numerische Mathematik für D-BAUG Serie 6 ETH Zürich D-MATH Einleitung. Diese Serie behandelt nochmals das Rechnen mit Vektoren
Lineare Gleichungssysteme (Teschl/Teschl 11.1)
Lineare Gleichungssysteme (Teschl/Teschl.) Ein Lineares Gleichungssystem (LGS) besteht aus m Gleichungen mit n Unbekannten x,...,x n und hat die Form a x + a 2 x 2 +... + a n x n b a 2 x + a 22 x 2 +...
Überbestimmte Gleichungssysteme
Siebente Vorlesung, 8. Mai 2008, Inhalt Überbestimmte Gleichungssysteme Kleinste Quadrate: einfaches Beispiel, elementare Herleitung Normalengleichungen Transformation mit QR-Zerlegung und SVD Nichtlineare
(Allgemeine) Vektorräume (Teschl/Teschl 9)
(Allgemeine) Vektorräume (Teschl/Teschl 9) Sei K ein beliebiger Körper. Ein Vektorraum über K ist eine (nichtleere) Menge V, auf der zwei Operationen deniert sind, die bestimmten Rechenregeln genügen:
Numerische Lineare Algebra
Numerische Lineare Algebra Vorlesung 5 Prof. Dr. Klaus Höllig Institut für Mathematischen Methoden in den Ingenieurwissenschaften, Numerik und Geometrische Modellierung SS 21 Prof. Dr. Klaus Höllig (IMNG)
9.2 Invertierbare Matrizen
34 9.2 Invertierbare Matrizen Die Division ist als Umkehroperation der Multiplikation definiert. Das heisst, für reelle Zahlen a 0 und b gilt b = a genau dann, wenn a b =. Übertragen wir dies von den reellen
In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch
Kapitel Matrizen in C++ In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch 1 const int n=10; 3 double a[n][n]; gegeben. Allerdings gibt es bei dieser Methode eine Reihe
4.5 Überbestimmte Gleichungssysteme, Gauß sche Ausgleichrechnung
4.5 Überbestimmte Gleichungssysteme, Gauß sche Ausgleichrechnung In vielen Anwendungen treten lineare Gleichungssysteme auf, die eine unterschiedliche Anzahl von Gleichungen und Unbekannten besitzen: Ax
Programmieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 5-1 Übung Schreiben Sie ein Programm, das die Zahl π durch π = 4 4 4 4 4 4 + + +... 3 5 7 9 11
Grundlagen Kondition Demo. Numerisches Rechnen. (für Informatiker) M. Grepl P. Esser & G. Welper & L. Zhang
Numerisches Rechnen (für Informatiker) M. Grepl P. Esser & G. Welper & L. Zhang Institut für Geometrie und Praktische Mathematik RWTH Aachen Wintersemester 2011/12 IGPM, RWTH Aachen Numerisches Rechnen
2. Dezember Lineare Algebra II. Christian Ebert & Fritz Hamm. Skalarprodukt, Norm, Metrik. Matrizen. Lineare Abbildungen
Algebra und Algebra 2. Dezember 2011 Übersicht Algebra und Algebra I Gruppen & Körper Vektorräume, Basis & Dimension Algebra Norm & Metrik Abbildung & Algebra I Eigenwerte, Eigenwertzerlegung Singulärwertzerlegung
Kapitel 16. Aufgaben. Verständnisfragen. Rechenaufgaben
Kapitel 16 Aufgaben Verständnisfragen Aufgabe 16.1 Ist das Produkt quadratischer oberer bzw. unterer Dreiecksmatrizen wieder eine obere bzw. untere Dreiecksmatrix? Aufgabe 16.2 Bekanntlich gilt im Allgemeinen
3 Matrizenrechnung. 3. November
3. November 008 4 3 Matrizenrechnung 3.1 Transponierter Vektor: Die Notation x R n bezieht sich per Definition 1 immer auf einen stehenden Vektor, x 1 x x =.. x n Der transponierte Vektor x T ist das zugehörige
3.4 Der Gaußsche Algorithmus
94 34 Der Gaußsche Algorithmus Wir kommen jetzt zur expliziten numerischen Lösung des eingangs als eine Motivierung für die Lineare Algebra angegebenen linearen Gleichungssystems 341 n 1 a ik x k = b i,
2 Lineare Gleichungssysteme
2 Lineare Gleichungssysteme Wir betrachten das lineare Gleichungssystem Ax = b mit der n n-koeffizientenmatrix A und der rechten Seite b R n. Wir leiten zuerst eine Variante des Gauss-Algorithmus (LR-Zerlegung)
Assoziative Container in C++ Christian Poulter
Assoziative Container in C++ Christian Poulter Seminar: Die Sprache C++ Mat-Nr.: 53 03 129 EMail: inf@poulter.de Christian Poulter Assoziative Container in C++ Seite 1/10 Inhalt 1. Einleitung: Container...
Numerische Mathematik für Ingenieure und Physiker
Willi Törnig Peter Spellucci Numerische Mathematik für Ingenieure und Physiker Band 1: Numerische Methoden der Algebra Zweite, überarbeitete und ergänzte Auflage Mit 15 Abbildungen > Springer-Verlag Berlin
3. Datentypen, Ausdrücke und Operatoren
3. Datentypen, Ausdrücke und Operatoren Programm muß i.a. Daten zwischenspeichern Speicherplatz muß bereitgestellt werden, der ansprechbar, reserviert ist Ablegen & Wiederfinden in höheren Programmiersprachen
Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II
Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II Matrixzugriff Wir wollen nun unsere Einführung in die Arbeit mit Vektoren und Matrizen in MATLAB
Lineare Gleichungssysteme Hierarchische Matrizen
Kompaktkurs Lineare Gleichungssysteme Hierarchische Matrizen M. Bebendorf, O. Steinbach O. Steinbach Lineare Gleichungssysteme SIMNET Kurs 24. 27.4.26 / 6 Numerische Simulation stationäre und instationäre
1 Matrizenrechnung zweiter Teil
MLAN1 1 Literatur: K. Nipp/D. Stoffer, Lineare Algebra, Eine Einführung für Ingenieure, VDF der ETHZ, 4. Auflage, 1998, oder neuer. 1 Matrizenrechnung zweiter Teil 1.1 Transponieren einer Matrix Wir betrachten
37 Gauß-Algorithmus und lineare Gleichungssysteme
37 Gauß-Algorithmus und lineare Gleichungssysteme 37 Motivation Lineare Gleichungssysteme treten in einer Vielzahl von Anwendungen auf und müssen gelöst werden In Abschnitt 355 haben wir gesehen, dass
8.2 Invertierbare Matrizen
38 8.2 Invertierbare Matrizen Die Division ist als Umkehroperation der Multiplikation definiert. Das heisst, für reelle Zahlen a 0 und b gilt b = a genau dann, wenn a b =. Übertragen wir dies von den reellen
3. Übungsblatt zur Lineare Algebra I für Physiker
Fachbereich Mathematik Prof. Dr. Mirjam Dür Dipl. Math. Stefan Bundfuss. Übungsblatt zur Lineare Algebra I für Physiker WS 5/6 6. Dezember 5 Gruppenübung Aufgabe G (Basis und Erzeugendensystem) Betrachte
Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016
und Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016 18. April 2016 Übersicht über die Methoden Seien v 1,..., v r Vektoren in K n. 1. Um zu prüfen, ob die Vektoren v 1,...,
Gliederung. Links-Rechts-Zerlegung Elimination faktorisiert A = L R. Determinante Inverse. Kleinste Quadrate. Lösung durch. Links-Rechts- Zerlegung
Matrixzerlegungen. 7. Vorlesung 170004 Numerische Methoden I Clemens Brand 29. April 2010 Gliederung Elimination faktorisiert A = L R Die A = L R Faktorisieren: Zerlege A in ein Produkt (einfacherer) Angenommen,
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
Brückenkurs Mathematik. Mittwoch Freitag
Brückenkurs Mathematik Mittwoch 5.10. - Freitag 14.10.2016 Vorlesung 4 Dreiecke, Vektoren, Matrizen, lineare Gleichungssysteme Kai Rothe Technische Universität Hamburg-Harburg Montag 10.10.2016 0 Brückenkurs
Lineare Ausgleichsprobleme. Jetzt: Lösung überbestimmter linearer GS, d.h. mehr Gleichungen als Unbekannte
Lineare Ausgleichsprobleme Bisher: Lösung linearer GS Ax = b, A R n,n, A regulär, b R n Jetzt: Lösung überbestimmter linearer GS, d.h. mehr Gleichungen als Unbekannte Ax = b mit A R m,n, b R m, m n, rg(a)
1 Singulärwertzerlegung und Pseudoinverse
Singulärwertzerlegung und Pseudoinverse Singulärwertzerlegung A sei eine Matrix mit n Spalten und m Zeilen. Zunächst sei n m. Bilde B = A A. Dies ist eine n n-matrix. Berechne die Eigenwerte von B. Diese
Serie 8: Fakultativer Online-Test
Prof Norbert Hungerbühler Lineare Algebra I Serie 8: Fakultativer Online-Test ETH Zürich - D-MAVT HS 215 1 Diese Serie besteht nur aus Multiple-Choice-Aufgaben und wird nicht vorbesprochen Die Nachbesprechung
$Id: linabb.tex,v /01/09 13:27:34 hk Exp hk $
Mathematik für Ingenieure I, WS 8/9 Freitag 9. $Id: linabb.tex,v.3 9//9 3:7:34 hk Exp hk $ II. Lineare Algebra 9 Lineare Abbildungen 9. Lineare Abbildungen Der folgende Satz gibt uns eine einfachere Möglichkeit
Reduced-Rank Least Squares Modelle
16.12.2008 Wiederholung Gegeben: Matrix A m n Paar Rechter Eigenvektor x, Eigenwert λ: A x = λ x mit x R n \ 0, λ N Paar Linker Eigenvektor y, Eigenwert λ: y T A = λ y T Singulärwertzerlegung (SVD): A
Übungspaket 23 Mehrdimensionale Arrays
Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:
QR-Zerlegung Allgemeines. Householder-Spiegelung. Givens-Rotation. Gram-Schmidt-Orthogonalisierung. Fazit. QR-Zerlegung.
20.0.2011 Inhaltsverzeichnis 1 2 3 4 1 2 3 4 der Matrix A R mxn, m n A = Q R Matrix Q: Q R nxn orthogonale Matrix (Spalten paarweise orthogonal) Q Q T = E Matrix R: R R mxn obere Dreiecksmatrix r 11 r
Definition, Rechenoperationen, Lineares Gleichungssystem
Bau und Gestaltung, Mathematik, T. Borer Aufgaben /3 Aufgaben Matrizen Definition, Rechenoperationen, Lineares Gleichungssystem Lernziele - die Bezeichnung der Matrixelemente kennen und verstehen. - den
Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.
Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe
12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete.
Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete. Worst-case Zeit für Search: Θ(n). In der Praxis jedoch sehr gut. Unter gewissen
3.6 Eigenwerte und Eigenvektoren
3.6 Eigenwerte und Eigenvektoren 3.6. Einleitung Eine quadratische n n Matrix A definiert eine Abbildung eines n dimensionalen Vektors auf einen n dimensionalen Vektor. c A x c A x Von besonderem Interesse
Kurztest zur Numerik I WiR AG, Dep. Mathematik, NT-Fakultät, Universität Siegen
Kurztest zur Numerik I WiR AG, Dep. Mathematik, NT-Fakultät, Universität Siegen Wintersemester 2012/201 Zwischentest Teil 1: 1. Was bedeuten die Bezeichnungen O(h) und o(h)? (Definition) (siehe Skript!)
Einstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Was sind Felder? 2 Vereinbarung von Feldern 3 Erzeugen von Feldern
Angewandte Kryptografie Praktikum 1
Angewandte Kryptografie Praktikum 1 Thema: Affine Chiffre Wintersemester 2016/2017 Prof. Dr. Christoph Karg Hochschule Aalen Ziel dieses Praktikums ist die Implementierung der affinen Chiffre und einem
C++ Teil 6. Sven Groß. 27. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 14
C++ Teil 6 Sven Groß 27. Mai 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 6 27. Mai 2016 1 / 14 Themen der letzten Vorlesung Musterlösung A2 Wdh.: Zeiger und Felder Kopieren von Feldern Dynamische Speicherverwaltung
Was Mathematiker schon vor Jahrhunderten erfunden haben, gibt es jetzt endlich in ihrer Programmiersprache:
Kapitel 8 Operatoren Was Mathematiker schon vor Jahrhunderten erfunden haben, gibt es jetzt endlich in ihrer Programmiersprache: Operatoren definieren Es ist in C++ möglich, Operatoren wie +, oder für
Einstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden
Matrizen, Determinanten, lineare Gleichungssysteme
Matrizen, Determinanten, lineare Gleichungssysteme 1 Matrizen Definition 1. Eine Matrix A vom Typ m n (oder eine m n Matrix, A R m n oder A C m n ) ist ein rechteckiges Zahlenschema mit m Zeilen und n
Vorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (12 Hashverfahren: Verkettung der Überläufer) Prof. Dr. Susanne Albers Möglichkeiten der Kollisionsbehandlung Kollisionsbehandlung: Die Behandlung
Matrizen. Jörn Loviscach. Versionsstand: 12. April 2010, 19:00 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung.
Matrizen Jörn Loviscach Versionsstand: 12. April 2010, 19:00 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. 1 Matrix Ein rechteckige Anordnung von mathematischen Objekten
Rang einer Matrix. 1-E1 Ma 1 Lubov Vassilevskaya
Rang einer Matrix 1-E1 Ma 1 Lubov Vassilevskaya Unterdeterminante einer nichtquadratischen Matrix M ist eine nichtquadratische 2,3-Matrix: M = 6 2 3 0 5 7 Durch Streichen einer der drei Spalten kann man
Definition, Rechenoperationen, Lineares Gleichungssystem
Bau und Gestaltung, Mathematik, T. Borer Aufgaben / Aufgaben Matrizen Definition, Rechenoperationen, Lineares Gleichungssystem Lernziele - die Bezeichnung der Matrixelemente kennen und verstehen. - den
1 Transponieren, Diagonal- und Dreiecksmatrizen
Technische Universität München Thomas Reifenberger Ferienkurs Lineare Algebra für Physiker Vorlesung Mittwoch WS 2008/09 1 Transponieren, Diagonal- und Dreiecksmatrizen Definition 11 Transponierte Matrix
Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
Lineare Algebra. Mathematik II für Chemiker. Daniel Gerth
Lineare Algebra Mathematik II für Chemiker Daniel Gerth Überblick Lineare Algebra Dieses Kapitel erklärt: Was man unter Vektoren versteht Wie man einfache geometrische Sachverhalte beschreibt Was man unter
Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke
Theoretische Informatik 1 WS 2007/2008 Prof. Dr. Rainer Lütticke Inhalt der Vorlesung Grundlagen - Mengen, Relationen, Abbildungen/Funktionen - Datenstrukturen - Aussagenlogik Automatentheorie Formale
bekannt: Eliminationsverfahren von Gauß Verfahren führt zu einer Zerlegung der Koeffizientenmatrix: A = LR A = LR
LR-Zerlegung bekannt: Eliminationsverfahren von Gauß Verfahren führt zu einer Zerlegung der Koeffizientenmatrix: A = LR Definition 2.17 Unter einer LR-Zerlegung einer Matrix A R n n verstehen wir eine
5.3 Iterative Lösungsverfahren für lineare Gleichungssysteme
5.3 Iterative Lösungsverfahren für lineare Gleichungssysteme Als zweite Hauptanwendung des Banachschen Fixpunktsatzes besprechen wir in diesem Kapitel die iterative Lösung linearer Gleichungssysteme. Die
Vektor und Matrixnormen Vorlesung vom
Vektor und Matrixnormen Vorlesung vom 20.12.13 Grundlagen: Matrix Vektor und Matrixprodukt. Lineare Räume. Beispiele. Problem: Berechne die Lösung x von Ax = b zu gegebenem A R n,n und b R n. Ziele: Konditionsanalyse
A2.3 Lineare Gleichungssysteme
A2.3 Lineare Gleichungssysteme Schnittpunkte von Graphen Bereits weiter oben wurden die Schnittpunkte von Funktionsgraphen mit den Koordinatenachsen besprochen. Wenn sich zwei Geraden schneiden, dann müssen
Theoretische Fragen zu ausgewählten Themen in Lineare Algebra
Theoretische Fragen zu ausgewählten Themen in Lineare Algebra { Oren Halvani, Jonathan Weinberger } TU Darmstadt 25. Juni 2009 Inhaltsverzeichnis 1 Determinanten................................................
Nichtlineare Gleichungssysteme
Kapitel 2 Nichtlineare Gleichungssysteme Problem: Für vorgegebene Abbildung f : D R n R n finde R n mit oder ausführlicher f() = 0 (21) f 1 ( 1,, n ) = 0, f n ( 1,, n ) = 0 Einerseits führt die mathematische
1. Übung zu "Numerik partieller Differentialgleichungen"
1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:
Orthonormalbasis. Orthogonalentwicklung
Orthonormalbasis Eine Orthogonal- oder Orthonormalbasis des R n (oder eines Teilraums) ist eine Basis {v,..., v n } mit v i = und v i, v j = für i j, d. h. alle Basisvektoren haben Norm und stehen senkrecht
Übungspaket 23 Mehrdimensionale Arrays
Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:
Kapitel 1. Matrizen und lineare Gleichungssysteme. 1.1 Matrizenkalkül (Vektorraum M(n,m); Matrixmultiplikation;
Kapitel 1 Matrizen und lineare Gleichungssysteme 11 Matrizenkalkül (Vektorraum M(n,m; Matrixmultiplikation; Transposition; Spalten- und Zeilenvektoren Matrizen sind im Prinzip schon bei der schematischen
Kapitel 5. LU Zerlegung. 5.1 L- und U-Matrizen
Kapitel 5 LU Zerlegung In vielen Fällen interessiert uns die inverse Matrix A 1 gar nicht. Stattdessen suchen wir die Lösung der Matrixgleichung Ax = b bzw. x = A 1 b 5.1) für einen oder wenige Vektoren
Newton-Verfahren zur gleichungsbeschränkten Optimierung. 1 Gleichungsbeschränkte Optimierungsprobleme
Newton-Verfahren zur gleichungsbeschränkten Optimierung Armin Farmani Anosheh (afarmani@mail.uni-mannheim.de) 3.Mai 2016 1 Gleichungsbeschränkte Optimierungsprobleme Einleitung In diesem Vortrag geht es
Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften:
Binäre Suchbäume (a, b)-bäume (Folie 173, Seite 56 im Skript) Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften: 1 Jeder Knoten hat höchstens b Kinder. 2 Jeder
Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016
und Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016 25. April 2016 Die Dimensionsformel Definition 3.9 Sei f : V W eine lineare Abbildung zwischen zwei K-Vektorräumen. Der Kern
8. Referenzen und Zeiger
8. Referenzen und Zeiger Motivation Variable werden in C++ an speziellen Positionen im Speicher abgelegt. An jeder Position befindet sich 1 Byte. Sie sind durchnummeriert beginnend bei 0. Diese Positionen
Rechenaufwand der LR- und LDL T - Zerlegung
6. Großübung Rechenaufwand der LR- und LDL T - Zerlegung Rückwärtseinsetzen Der Algorithmus kann der Folie 3.0 entnommen werden. Dieser kann in die folgenden Rechenoperationen aufgesplittet werden: Für
Vektor und Matrixnormen Vorlesung vom
Vektor und Matrixnormen Vorlesung vom 18.12.15 Grundlagen: Matrix Vektor und Matrixprodukt. Lineare Räume. Beispiele. Problem: Berechne die Lösung x von Ax = b zu gegebenem A R n,n und b R n. Ziele: Konditionsanalyse
In diesem Abschnitt betrachten wir nur quadratische Matrizen mit Komponenten aus einem Körper K, also A K n n für ein n N. Wenn (mit einem n > 1)
34 Determinanten In diesem Abschnitt betrachten wir nur quadratische Matrizen mit Komponenten aus einem Körper K, also A K n n für ein n N Wenn (mit einem n > 1) a 11 a 12 a 1n a 21 a 22 a 2n A =, (1)
Der Kern einer Matrix
Die elementaren Zeilenoperationen p. 1 Der Kern einer Matrix Multipliziert man eine Matrix mit den Spaltenvektoren s 1,..., s m von rechts mit einem Spaltenvektor v := (λ 1,..., λ m ) T, dann ist das Ergebnis
Überbestimmte lineare Gleichungssysteme
Überbestimmte lineare Gleichungssysteme Fakultät Grundlagen September 2009 Fakultät Grundlagen Überbestimmte lineare Gleichungssysteme Übersicht 1 2 Fakultät Grundlagen Überbestimmte lineare Gleichungssysteme
Klausurvorbereitungsblatt Lineare Algebra
Klausurvorbereitungsblatt Lineare Algebra Sommersemester 25 Aufgabe 2 2 Sei A 3 3 8 2 4 3 R4 5. 5 2 a) Bestimmen Sie die Lösungsmenge des linearen Gleichungssystems Ax b) Ist Ax b mit b lösbar? (Begründen
a b Q = b a 0 ) existiert ein Element p Q, so dass gilt: q 1 q 2 = 2 b 1 b 2 a 1 b 2 a 2 b 1 a 1 a 2 b 1 b 2 a 1 b 2 a 2 b 1 a b p = 1 det(q) C 2 2,
Aufgabe I Es sei Q die folgende Teilmenge von C 2 2 : { ( ) a b Q a, b C b a Hier bezeichnet der Querstrich die komplexe Konjugation Zeigen Sie: (a) Mit den üblichen Verknüpfungen + und für Matrizen ist
Matrizen und Determinanten, Aufgaben
Matrizen und Determinanten, Aufgaben Inhaltsverzeichnis 1 Multiplikation von Matrizen 1 11 Lösungen 3 2 Determinanten 6 21 Lösungen 7 3 Inverse Matrix 8 31 Lösungen 9 4 Matrizengleichungen 11 41 Lösungen
Lineare Gleichungssysteme
Brückenkurs Mathematik TU Dresden 2016 Lineare Gleichungssysteme Schwerpunkte: Interpretation und Verständnis der Gleichungen Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik unter
Lineare Algebra für D-ITET, D-MATL, RW. Beispiellösung für Serie 10. Aufgabe ETH Zürich D-MATH. Herbstsemester Dr. V. Gradinaru D.
Dr. V. Gradinaru D. Devaud Herbstsemester 5 Lineare Algebra für D-ITET, D-MATL, RW ETH Zürich D-MATH Beispiellösung für Serie Aufgabe..a Bezüglich des euklidischen Skalarprodukts in R ist die Orthogonalprojektion
1 Definition. 2 Besondere Typen. 2.1 Vektoren und transponieren A = 2.2 Quadratische Matrix. 2.3 Diagonalmatrix. 2.
Definition Die rechteckige Anordnung von m n Elementen a ij in m Zeilen und n Spalten heißt m n- Matrix. Gewöhnlich handelt es sich bei den Elementen a ij der Matrix um reelle Zahlen. Man nennt das Paar
Methode der kleinsten Quadrate
1. Phase: Methode der kleinsten Quadrate Einführung Im Vortrag über das CT-Verfahren hat Herr Köckler schon auf die Methode der kleinsten Quadrate hingewiesen. Diese Lösungsmethode, welche bei überbestimmten
Einführung in die Vektor- und Matrizenrechnung. Matrizen
Einführung in die Vektor- und Matrizenrechnung Matrizen Definition einer Matrix Unter einer (reellen) m x n Matrix A versteht man ein rechteckiges Schema aus reellen Zahlen, die wie folgt angeordnet sind:
Lineare Gleichungssysteme - Grundlagen
Lineare Gleichungssysteme - Grundlagen Betrachtet wird ein System linearer Gleichungen (im deutschen Sprachraum: lineares Gleichungssystem mit m Gleichungen für n Unbekannte, m, n N. Gegeben sind m n Elemente
Kapitel 1. Vektoren und Matrizen. 1.1 Vektoren
Kapitel 1 Vektoren und Matrizen In diesem Kapitel stellen wir die Hilfsmittel aus der linearen Algebra vor, die in den folgenden Kapiteln öfters benötigt werden. Dabei wird angenommen, dass Sie die elementaren
Brückenkurs Mathematik
Brückenkurs Mathematik 6.10. - 17.10. Vorlesung 3 Geometrie Doris Bohnet Universität Hamburg - Department Mathematik Mi 8.10.2008 1 Geometrie des Dreiecks 2 Vektoren Länge eines Vektors Skalarprodukt Kreuzprodukt
Mathematik IT 2 (Lineare Algebra)
Lehrstuhl Mathematik, insbesondere Numerische und Angewandte Mathematik Prof Dr L Cromme Mathematik IT (Lineare Algebra für die Studiengänge Informatik, IMT und ebusiness im Sommersemester 3 Lineare Gleichungssysteme
Zum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE
Zum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE 754 Standard festgelegt. Es stehen sogenannte einfach