Praktikum II “Numerik am Computer” Prof. H. Harbrecht; F. Bieder, R. Brügger, R. Dohrau, R. Erb, D. Felder, G. Talarico, D. Tröndle FS 2017 Universität Basel Beilage zur Serie 1 LR-Zerlegung Zur Lösung eines linearen Gleichungssystems Ax = b, A ∈ Rn×n , b ∈ Rn kann man den Gauss-Algorithmus benutzen. Dabei geht man vor wie folgt: 1. Berechne die LR-Zerlegung A = LR der Matrix A. Dabei ist L eine untere linke Dreiecksmatrix mit 1 auf der Hauptdiagonalen und U eine obere rechte Dreiecksmatrix. 2. Löse das Gleichungssystem Ly = b nach y (Vorwärtssubstitution). 3. Löse das Gleichungssystem Rx = y nach x (Rückwärtssubstitution). Der Aufwand für den Gauss-Algorithmus ist etwa n3 /3 Multiplikationen. Für Bandmatrizen kann man den Algorithmus effizienter implementieren. Für p, q ∈ N ist eine Matrix A eine Bandmatrix mit oberer Bandbreite p und unterer Bandbreite q, falls gilt: ai,j = 0 für i + p < j oder j + q < i Neben der Haupptdiagonale sind also nur die p oberen und die q unteren Nebendiagonalen besetzt. Der Algorithmus für die LR-Zerlegung einer Bandmatrix lautet dann (Pseudocode): L=E R=A for k = 1 to n − 1 do for i = k + 1 to min(n, k + q) do ri,k li,k = rk,k for j = k to min(n, k + p) do ri,j = ri,j − li,k rk,j end for end for end for Nachdem man die LR-Zerlegung bestimmt hat, löst man in der Vorwärtssubstitution das Gleichungssystem Ly = b. 1 Ausgeschrieben hat es die Form l1,1 y1 l2,1 y1 + l2,2 y2 l3,1 y1 + l3,2 y2 + l3,3 y3 .. .. .. . . . ln,1 y1 + ln,2 y2 + ln,3 y3 + . . . = b1 = b2 = b3 .. . (1) (2) (3) + ln,n yn = bn (n) Nun kann man nacheinander die Gleichungen (1) bis (n) je nach y1 , . . . , yn auflösen, sodass b1 , l1,1 1 y2 = (b2 − l2,1 y1 ) , l2,2 1 y3 = b3 − (l3,1 y1 + l3,2 y2 ) , l3,3 .. . ! n−1 X 1 ln,k yk . yn = bn − ln,n k=1 y1 = Um also yi zu bestimmen, benötigt man y1 , . . . , yi−1 , und rechnet dann ! i−1 X 1 yi = bi − li,k yk li,i k=1 aus. Analog erhält man für die Rückwärtssubstitution, in der man das Gleichungssystem Rx = y löst, 1 xi = ri,i yi − n X ! ri,k xk , k=i+1 wobei man zuerst xn berechnet, dann xn−1 , und so weiter, bis man bei x1 angelangt ist. Sowohl die Vorwärts- als auch die Rückwärtssubstitution können unter Ausnutzung der Bandstruktur effizienter implementiert werden, so dass wir für den Gauss-Algorithmus für Bandmatrizen einen Aufwand von ungefähr n(pq + p + q) Multiplikationen erhalten. Permutationsmatrizen Eine Permutation π ist eine bijektive Abbildung π : {1, . . . , n} → {1, . . . , n}. Das heisst, sie permutiert die Zahlen {1, . . . , n}. Eine andere häufig benutzte Schreibweise ist die folgende: 1 ··· n π= . π(1) · · · π(n) In der oberen Zeile stehen die Zahlen von 1 bis n und für jede Zahl j ∈ {1, . . . , n} steht darunter der Funktionswert π(j). Die zugehörige Permutationsmatrix P ist nun die (n × n) − Matrix, welche jeweils eine 1 in der j-ten Spalte und π(j)-ten Zeile besitzt und Nullen überall sonst (d.h. Pei = eπ(i) ). Solche Matrizen haben spezielle Eigenschaften: 2 1. Pπ Pσ = Pπ◦σ , für zwei Permutationen π und σ; T T 2. P−1 π = Pπ −1 = Pπ also Pπ Pπ = P (Orthogonalität); 3. det(Pπ ) = sign π = ±1. 0 0 1 1 2 3 Z.B. gehört zur Permutation π = die Permutationsmatrix Pπ = 1 0 0. 2 3 1 0 1 0 Jede Permutation lässt sich eindeutig (bis auf Reihenfolge) als Produkt disjunkter Zykeln darstellen. Das erste Element des Zykels wird dabei auf das zweite abgebildet, das zweite Element auf das dritte, und so weiter, bis hin zum letzten Element, welches wieder auf das erste abgebildet wird. Das Signum einer Permutation (und damit die Determinante der zugehörigen Permutationsmatrix) ist bestimmt durch die Anzahl der Zykeln mit gerader Länge: Hat eine Permutation k Zykeln mit gerader Länge, so ist das signum der Permutation (−1)k . 1 2 3 4 5 6 Beispiel. Für die Permutation π = lautet die Zerlegung in Zykeln 1 4 5 6 3 2 π = (1) (2 4 6) (3 5) = (2 4 6) (3 5). Das Signum dieser Permutation ist in diesem Fall −1. Allgemeine Informationen zum Praktikum II befinden sich auf der Webseite www.math.unibas.ch/~harbrech/teaching/praktikumII/praktikumII.html 3