Gauß-Elimination und LU-Zerlegung
Bereiten Sie Fragen für die Überprüfung Sitzung beim nächsten Mal
Ob Sie es wissen oder nicht haben Sie Gauß-Elimination verwendeten Systeme von linearen Gleichungen zu lösen. Was Sie wahrscheinlich nie ist der Ansicht, dass das Verfahren in einer sehr systematischen Art und Weise angegangen werden können, die Umsetzung in einem Computerprogramm ermöglicht. Ebenfalls von Bedeutung ist die Tatsache, dass mit sehr geringen Zusatzaufwand, das Programm für die Gauß-Elimination kann verbessert werden Lower-Obere Matrix-Faktorisierung (schreibt jede nicht-singuläre Matrix als ein Produkt eines unteren Dreiecks und eine obere Dreiecksmatrix) durchzuführen.
Wir schrieben einen Satz von linearen Gleichungen mit der folgenden Notation für Koeffizienten
In der Matrix-Schreibweise der linearen Algebra, können diese Gleichungen geschrieben werden:
Lassen Sie uns legen einen bestimmten Satz von Gleichungen in diesem Format aus.
Ich finde nächsten, dass ich die erste Gleichung von 2 multiplizieren müssen, so dass die Subtraktion eliminiert die Koeffizienten in Zeile 3 Spalte 1. Das Ergebnis dieser Eliminierung einschließlich Buchhaltung ist:
Jetzt muß ich die Koeffizienten in Zeile 3 Spalte 2. Diese beseitigen, kann durch Multiplizieren der Gleichung in der Reihe 2 von 2/5 und subtrahiert es von der Gleichung in Reihe 3 erreicht werden.
An dieser Stelle haben wir die Gauß-Elimination und durch Rücksubstitution abgeschlossen feststellen, dass
Nun lassen Sie uns für die kleinen Zahlen auf den Grund schauen, wo die Nullen normalerweise in der endgültigen Form der Matrix sitzen würde. Ich kann durch Kombination dieser Zahlen mit 1'en entlang der Matrix-Diagonale zu bekommen eine untere Dreiecksmatrix L definieren:
und ich kann auch eine obere Dreiecksmatrix aus den grundlegenden Ergebnissen der Gauß-Elimination schreiben
I behaupten, dass das Matrixprodukt LU zu dem ursprünglichen Koeffizientenmatrix für meine Gleichungen gleich ist.
Lassen Sie sich meine Behauptung überprüfen, dass das Produkt von L und U auf die ursprüngliche Koeffizientenmatrix für die linearen Gleichungen gleich ist, und zugleich deutlich Matrixmultiplikation definieren. Ich werde das Produkt A und die einzelnen Koeffizienten ai j nennen. Die Koeffizienten L sind Li j und diejenigen der U sind ui j. Die allgemeine Definition für das Matrixprodukt ist:
wobei n die Anzahl der Zeilen in u (Anzahl der Unbekannten). Hier n = 3. In schlichteren Bedingungen kann das Produkt als eine Kombination von Matrix-Vektor-Produkten geschrieben werden. Die erste Spalte von A ist das Ergebnis in U L von der ersten Spalte der Multiplikation:
Die zweite Spalte von A ist das Produkt aus L und die zweite Spalte von U:
Die dritte Spalte von A ist das Produkt aus L und der dritten Spalte von U:
die Spalten kombinieren, erhalten:
In Fortran, kann das obige Matrixprodukt mit dem folgende Unterprogramm durchgeführt werden.
Mit dieser Art Unterprogramm oder Schleifenstruktur ist keine gute Idee, wenn Fortran 90 verfügbar ist, weil Sie eine Matrix haben, dass mehrfach vorhanden fast immer effizienter umgesetzt werden als jede Zusammenstellung Ihres Fortran. Für Arrays von einem etablierten "REAL A (3,3), L (3,3), U (3,3)" Sie tun, um die mehrfach mit der folgenden Zeile:
Zeitersparnis im Zusammenhang mit Dingen wie Matrix vervielfacht kann ein sehr großes Problem in vielen Anwendungen sein. Wenn man sich die Fortran-Matrix aussehen multiplizieren oben sehen Sie, dass der Vorgang dauert n 3 vervielfacht und die gleiche Anzahl von hinzufügt. Sie müssen nicht zu sehr große Matrizen erhalten oder sehr häufigen Einsatz der Matrixmultiplikation, bevor Sie mit einer optimal codierte Funktion wie MATMUL zu erheblichen Einsparungen bei Computerzeit suchen.
Weitere Informationen zu diesem Thema empfehle ich, dass Sie in Kapitel 19 der „Advanced Engineering Mathematics“, werfen Sie einen Blick von Erwin Kreyszig, oder die in der Bibliothek Numerische Methoden und Lineare Algebra Bücher blättern, bis dir etwas klar aussieht.