Cramersche Regel - www2.inf.h
Transcrição
Cramersche Regel - www2.inf.h
2. Mathematische Grundlagen der Linearen Programmierung Algorithmen zur Lösung von linearen Gleichungssystemen Cramersche Regel Satz 2.14. Es sei A ∈ Rn×n eine quadratische Matrix mit det(A) 6= 0. Für ein LGS Ax = b sei Aj := (a1, . . . , aj−1 , b, aj+1, . . . , an) also die Matrix, die entsteht, wenn in A die j-Spalte durch den Vektor b ersetzt wird. Dann gilt für die eindeutige Lösung x = (xj ) ∈ Rn des Gleichungssystems Ax = b: det(Aj ) xj = det(A) Operations Research I — Hochschule Bonn-Rhein-Sieg, SS 2013 119 2. Mathematische Grundlagen der Linearen Programmierung Algorithmen zur Lösung von linearen Gleichungssystemen Beispiel 2.15. Wir betrachten das LGS aus Beispiel 2.11 (a). Die Determinate det(A) = 6 haben wir bereits in Beispiel 2.14 berechnet. 1 0 1 2 1 =2+0−6+2+2−0=0 det(A1) = det 3 −1 −2 1 3 1 1 3 1 =9−3−6+9+3−6=6 det(A2) = det 6 −3 −1 1 3 0 1 2 3 = −6 + 0 − 12 + 6 + 18 − 0 = 6 det(A3) = det 6 −3 −2 −1 Operations Research I — Hochschule Bonn-Rhein-Sieg, SS 2013 120 2. Mathematische Grundlagen der Linearen Programmierung Algorithmen zur Lösung von linearen Gleichungssystemen Daraus folgt 0 x1 = = 0, 6 6 x2 = = 1, 6 6 x3 = = 1 6 Beispiel 2.16. Java-Methode zur Lösung von LGS der Größe 3 × 3, siehe Homepage. Operations Research I — Hochschule Bonn-Rhein-Sieg, SS 2013 121 2. Mathematische Grundlagen der Linearen Programmierung Algorithmen zur Lösung von linearen Gleichungssystemen Gaußsches Eliminationsverfahren Beispiel 2.17. 4x1 + 2x2 + x3 = 2 2x1 + 6x2 + x3 = 4 x1 + x2 + 8x3 = 1 =⇒ (2) − 12 (1) (3) − 14 (1) =⇒ 1 (3) − 10 (2) 4x1 + 2x2 + 5x2 + 1 2 x2 + x3 = 2 1 2 x3 = 3 31 1 x = 3 4 2 4x1 + 2x2 + 5x2 + x3 = 2 1 2 x3 = 3 77 1 x = 3 10 5 Operations Research I — Hochschule Bonn-Rhein-Sieg, SS 2013 122 2. Mathematische Grundlagen der Linearen Programmierung Algorithmen zur Lösung von linearen Gleichungssystemen Daraus ergibt sich 2 x3 = , 77 1 1 46 x2 = (3 − ) = , 5 77 77 Operations Research I — Hochschule Bonn-Rhein-Sieg, SS 2013 1 92 2 15 x1 = (2 − − )= 4 77 77 77 123 2. Mathematische Grundlagen der Linearen Programmierung Algorithmen zur Lösung von linearen Gleichungssystemen Pivotisierung • Für a, b ∈ R mit |a| groß und |b| klein ist die Berechnung von konditioniert, d.h. a b schlecht • ein Rundungsfehler bei der Darstellung von b wird verstärkt. • Deshalb: Pivotisierung durch Zeilenvertauschung • Für die verbleibenden Zeilen sucht man in der zu bearbeitenden Spalte nach dem betragsgrößten Element (Pivotelement) und führt eine Zeilenvertauschung durch. • Die Zeile, die das Pivotelement enthält, heißt Pivotzeile. Bemerkung: In Beispiel 2.17 war keine Pivotisierung erforderlich. Operations Research I — Hochschule Bonn-Rhein-Sieg, SS 2013 124 2. Mathematische Grundlagen der Linearen Programmierung Algorithmen zur Lösung von linearen Gleichungssystemen Gaußscher Algorithmus Äquivalente Umformungen eines LGS: • Addition des Vielfachen einer Zeile (Gleichung) zu einer anderen, • Vertauschung von Zeilen (Gleichungen), • Multiplikation einer Zeile (Gleichung) mit einer Zahl ungleich null. Bemerkung: • Wir wollen mit dem Gaußschen Algorithmus auch r(A) bzw. r(A|b) bestimmen. • Deshalb schränken wir A nicht weiter ein, insbesondere sind auch Nullspalten und nicht-quadratische Matrizen zugelassen. Operations Research I — Hochschule Bonn-Rhein-Sieg, SS 2013 125 2. Mathematische Grundlagen der Linearen Programmierung Algorithmen zur Lösung von linearen Gleichungssystemen Algorithmus 2.1. 1. Initialisiere den Zeilenzähler k = 1. 2. Suche nach der ersten Spalte j mit (akj , . . . , amj ) = 6 0 und tausche die Pivotzeile mit der k-ten Zeile. Anschließend ist akj das Kopfelement der k-ten Zeile. 3. Für i = k + 1, . . . , m: Durch aij ai := ai − · ak akj Nullen unter dem Kopfelement akj erzeugen. 4. Falls k < m, dann k := k + 1 und weiter mit 2. Ansonsten weiter mit 5. 5. Dividiere alle Nicht-Null-Zeilen durch deren Kopfelement. Operations Research I — Hochschule Bonn-Rhein-Sieg, SS 2013 126 2. Mathematische Grundlagen der Linearen Programmierung Algorithmen zur Lösung von linearen Gleichungssystemen Zeilen-Stufen-Form 0 0 0 .. 0 0 .. 0 ··· 0 # ∗ ··· ∗ ∗ ∗ ··· ∗ ∗ ∗ ··· ∗ ∗ ··· ··· 0 # ∗ ··· ∗ ∗ ∗ ··· ∗ ∗ ··· ··· 0 # ∗ ··· ∗ ∗ ··· · · · .. .. ··· ··· 0 # ··· ··· ··· ∗ ∗ ∗ .. ∗ ··· ··· ··· ··· ··· ··· ∗ ∗ ∗ .. ∗ 0 .. ··· 0 b1 b2 b3 .. br br+1 .. bm # Kopfelement, ∗ beliebige Zahlen r(A) = r(A|b) = r gdw. br+1 = · · · = bm = 0. Operations Research I — Hochschule Bonn-Rhein-Sieg, SS 2013 127 2. Mathematische Grundlagen der Linearen Programmierung Algorithmen zur Lösung von linearen Gleichungssystemen Beispiel 2.18. Wir betrachten das LGS 2x1 x1 x1 3x1 + + + + 4x2 2x2 2x2 6x2 − − − − 8x3 3x3 2x3 6x3 + 6x4 + 6x4 + 7x4 + 21x4 + 2x5 + 2x5 + x5 + 3x5 = 4 = 6 = 9 = 27 Mit dem Gaußschen Algorithmus ergibt sich 2 1 1 3 4 2 2 6 −8 6 −3 6 −2 7 −6 21 2 4 2 4 −8 6 2 6 1 3 =⇒ 0 0 0 0 1 9 2 4 3 27 0 0 6 12 Operations Research I — Hochschule Bonn-Rhein-Sieg, SS 2013 2 4 1 4 0 7 0 21 128 2. Mathematische Grundlagen der Linearen Programmierung 2 0 =⇒ 0 0 Algorithmen zur Lösung von linearen Gleichungssystemen 4 4 −8 6 2 0 1 3 1 4 =⇒ 0 0 −2 −2 −1 0 0 −6 −6 −3 2 4 0 0 0 0 0 0 −8 1 0 0 6 2 4 3 1 4 -2 −2 −1 0 0 0 Die eingerahmten Elemente sind die Kopfelemente. Nicht-Kopfspalten sind die Spalten 2 und 5, so dass wir x2 = s und x5 = t als freie Parameter wählen. Damit ergibt sich 1 1 −2x4 − 2x5 = −1 ⇔ x4 = (1 − 2t) = − t 2 2 5 1 x3 + 3x4 + x5 = 4 ⇔ x3 = 4 − 3( − t) − t = + 2t 2 2 Operations Research I — Hochschule Bonn-Rhein-Sieg, SS 2013 129 2. Mathematische Grundlagen der Linearen Programmierung Algorithmen zur Lösung von linearen Gleichungssystemen 1 2x1 + 4x2 − 8x3 + 6x4 + 2x5 = 4 ⇔ x1 = (4 − 4s + 20 + 16t − 3 + 6t − 2t) 2 21 − 2s + 10t = 2 also x= 21 2 − 2s + 10t s 5 2 + 2t 1 2 −t t 21 2 0 5 = +s 21 2 0 Operations Research I — Hochschule Bonn-Rhein-Sieg, SS 2013 −2 1 0 0 0 + t 10 0 2 −1 1 s, t ∈ R 130 2. Mathematische Grundlagen der Linearen Programmierung Algorithmen zur Lösung von linearen Gleichungssystemen Gaußscher Algorithmus für reguläre Matrizen Für eine quadratische Matrix A ∈ Rn×n mit det(A) 6= 0 (eine sogenannte reguläre Matrix) entsteht beim Gaußalgorithmus ein Dreiecksschema · · · a1,n−1 a1,n · · · a2,n−1 a2,n · · · a3,n−1 a3,n .. .. ··· 0 an,n a1,1 a1,2 0 a2,2 0 0 .. .. 0 0 b1 b2 b3 .. bn mit ak,k 6= 0 für k = 1, . . . , n. Daraus ergeben sich die Lösungen xk = bk − Pn j=k+1 ak,j xj ak,k Operations Research I — Hochschule Bonn-Rhein-Sieg, SS 2013 für k = n, . . . , 1 131 2. Mathematische Grundlagen der Linearen Programmierung Algorithmen zur Lösung von linearen Gleichungssystemen Matrixzerlegung Die beiden Operationen (a) Addition des Vielfachen einer Zeile zu einer anderen und (b) Vertauschung von Zeilen entsprechen der Multiplikation von A mit sogenannten Elementarmatrizen. Alle Elementarmatrizen von Operation (a) zusammen ergeben eine untere Dreiecksmatrix L, das Ergebnis ist eine obere Dreiecksmatrix R. In diesem Fall gilt daher LA = R bzw. A = L−1R Operations Research I — Hochschule Bonn-Rhein-Sieg, SS 2013 132 2. Mathematische Grundlagen der Linearen Programmierung Algorithmen zur Lösung von linearen Gleichungssystemen (LR-Zerlegung). Nutzt man zusätzlich Pivotisierung, kann dies durch eine Matrix P ausgedrückt werden. Es gilt dann LPA = R bzw. PA = L−1R Hierbei gilt • det(L) = det(L−1) = 1 • det(P) = ±1 Qn • det(R) = i=1 ri,i womit det(A) einfach berechnet werden kann. Operations Research I — Hochschule Bonn-Rhein-Sieg, SS 2013 133 2. Mathematische Grundlagen der Linearen Programmierung Algorithmen zur Lösung von linearen Gleichungssystemen Elementarmatrizen Definition 2.16. Die Elementarmatrix Rk,l(α) = (rij ) ∈ Rn×n mit k 6= l ist definiert durch: 1 für i = j α für i = k und j = l rij = 0 sonst Beispiel 2.19. 1 0 0 1 R2,1(− ) = − 12 1 0 , 2 0 0 1 Operations Research I — Hochschule Bonn-Rhein-Sieg, SS 2013 1 R3,1(− ) = 4 1 0 0 0 1 0 − 14 0 1 134 2. Mathematische Grundlagen der Linearen Programmierung Algorithmen zur Lösung von linearen Gleichungssystemen Wirkungsweise: • Rk,l(α) · A addiert das α-fache der l-ten Zeile zu Zeile k. • A · Rk,l(α) addiert das α-fache der k-ten Spalte zu Spalte l. Eigenschaften: • det(Rk,l(α)) = 1 • Das Matrixprodukt von Elementarmatrizen Rk,l(α) mit k > l ist eine untere Dreiecksmatrix mit 1en auf der Hauptdiagonale. • Die Matrix L für die Zerlegung LA = R ensteht durch die Multiplikation von Elemantarmatrizen mit k, l und α gemäß Gaußschem Algorithmus. Operations Research I — Hochschule Bonn-Rhein-Sieg, SS 2013 135 2. Mathematische Grundlagen der Linearen Programmierung Algorithmen zur Lösung von linearen Gleichungssystemen • Es gilt (Rk,l(α)) −1 = Rk,l(−α) Damit lässt sich die inverse der Matrix L sehr leicht bestimmen. Beispiel 2.20. Zerlegung der Koeffizientenmatrix A von Beispiel 2.17: 4 2 4 2 1 1 1 1 2 6 1 = 0 5 R3,2(− ) · R3,1(− ) · R2,1(− ) · 10 4 2 1 1 8 0 0 1 ⇔ − 12 − 15 4 2 1 4 2 0 0 1 0 2 6 1 = 0 5 1 1 1 8 0 0 − 10 1 1 1 2 77 10 1 1 2 77 10 Die linke Matrix ist die Matrix L der Zerlegung, die rechte Matrix die Matrix R. Operations Research I — Hochschule Bonn-Rhein-Sieg, SS 2013 136 2. Mathematische Grundlagen der Linearen Programmierung Algorithmen zur Lösung von linearen Gleichungssystemen Wegen det(L) = 1 folgt auch det(A) = n Y ri,i = 4 · 5 · i=1 77 = 154 10 Weiterhin ergibt sich 4 2 4 2 1 1 1 1 A = 2 6 1 = R2,1( ) · R3,1( ) · R3,2( ) · 0 5 2 4 10 1 1 8 0 0 = 1 1 2 1 4 4 2 0 0 1 0 0 5 1 0 0 10 1 Operations Research I — Hochschule Bonn-Rhein-Sieg, SS 2013 1 1 2 77 10 1 1 2 77 10 137 2. Mathematische Grundlagen der Linearen Programmierung Zusammenfassung Zusammenfassung • Vektorraum als Basisstruktur für Berechnungen • Bestimmung der Lösbarkeit von LGS mit Hilfe von r(A) bzw. r(A|b) • Determinante und Cramersche Regel für sehr kleine, eindeutig lösbare LGS • Allgemeiner Lösungsalgorithmus: Gaußscher-Algorithmus Operations Research I — Hochschule Bonn-Rhein-Sieg, SS 2013 138