Uge 6: Gauss elimination 2
Transcription
Uge 6: Gauss elimination 2
Modellering og programmering. 48 Lineær algebra 2.2. Gauss elimination Resumé: Trin 1: T = Trin 2: Løs U x = c b A ∼ U c ∼ AX = B ⇔ ∼ : Element i aktive delaf systemet ? : Element i U c × 2◦ Modificér en ligning ved at subtrahere et multiplum af en af de andre ligninger. Ombytning er nødvendig hvis akk = 0 . Pivotering forøger nøjagtigheden af den beregnede løsning: Før nul-stilling i k te søjle bestemmes |apk ,k | = max{|akk |, . . . , |ank |} . Hvis pk > k, så ombyt Ad 2◦ 1 0 4 5 0 1 ! te og k ligning. T i,: ← T i,:−`ik T k,: , hvor `ik = aik /akk er den såkaldte eliminations-koefficient. Nye koefficient til xk i den ite ligning: aik aik − akk = 0 . akk Vi slap altså af med bidrag fra xk . Pivotering medfører, at alle |`ik | ≤ 1 . Uden pivotering er der risiko for, at bidraget −`ik T k,: “drukner” informationen i den “gamle” ite ligning. Vil antage, at matricen A er regulær ⇔ alle uii 6= 0, og løsningen x er éntydig. 4 5 ∼ p1 = 2 0 1 ! 1 0 ! −5 3 2 3 X= 1 2 ∼ `21 = 1 2 Modellering og programmering. 0 4 5 0 1 2 Fx 2 3 !−1 4 5 = 1 2 og at også A−1A = I −5 3 ! 4 −2 51 Lineær algebra Ax = b ! 1 − 12 A A−1 = I Side 30 vises, at 1 4 −2 Det er den inverse matrix, X = A−1. 49 Lineær algebra pte k 2 3 C Specielt interesseret i AX = I , enhedsmatricen. Forudsætter at A er regulær. Så er løsningen X éntydig. 1◦ Ombyt to ligninger, dvs rækker i T . pk : AX :,j = B :,j for j = 1, 2, . . . , q Tilbageløsning (emne for en opgave) giver Værktøj: Elementar-operationer, som ikke ændrer løsningen Ad 1◦ Matrix ligning Disse q ligningssystemer kan løses én ad gangen. Samme beregninger på elementer i A Nok så smart: Udvid totalmatricen A B ∼ U Eksempel 2.10. Modellering og programmering. pp 29 – 32 Givet A ∈ Rn×n og B ∈ Rn×q . (vha tilbageløsning) ∼ 50 Lineær algebra 2.4. Invers matrix Trin 1: Successiv elimination af xk fra ligning k+1, . . . , n ∼ Modellering og programmering. ⇔ x = A−1b (Normalt er AB 6= BA ) Ortogonal matrix Q : QT Q = I . Q−1 = QT T T Også Q Q = I , dvs også Q er ortogonal. NB: “A−1b” skal ikke opfattes som en beregningsforskrift, men som kort formulering af “ find løsningen til ligningssystemet Ax = b ” Brug x = A \ b . Det er mere effektivt og mere nøjagtigt end både og x = inv(A) * b x = (A \ eye(n)) * b Modellering og programmering. 52 Lineær algebra 2.5. LU faktorisering. T = 1◦ 2◦ A b ∼ Ax = b T k,: ↔ T pk ,: T i,: ← T i,: − `ik T k,: Rækkeombytninger: Rækkeoperationer: ∼ p1 = 3 `21 = `31 = 7 8 0 3 7 0 67 7 8 0 6 7 0 0 4 7 1 7 ∼ p2 = 3 `32 = Nu skal “ (Tilbageløsning) Ux = c 1 2 9 6 7 12 7 9 −1 =P . T ? Traditionelt nøjes man med at tælle antallet af flops (floating 2 3 n3 − 12 n2 − 16 n flops . For store n dominerer det første led, og vi nøjes med at medtage dette. P A = LU løsn. af Lc = P b løsn. af U x = c y = Ax Ca antal flops 2 3 til beregning af Modellering og programmering. n3 n2 n2 2n2 A−1 2n3 55 Lineær algebra pp 36 – 40 A er spd hvis den er symmetrisk : AT = A dvs aij = aji T og positivt definit : x A x > 0 for alle x 6= 0 12 = U . 7 0 P fremkommer fra I når den underkastes de samme 1 0 0 0 0 1 ∼ ∼ 0 1 0 p1 = 3 0 1 0 p2 = 3 0 0 1 1 0 0 Hvad koster det 2.6. SPD systemer ∼ ” læses “omformes til”. P er en ortogonal matrix; P 1 0 0 1 L = 7 1 0 4 1 1 7 2 2◦ løs Beregning af LU faktoriseringen koster 53 Lineær algebra – 2.17. 2 3 5 6 8 9 (Samme ombytninger i højresiden. Fremadløsning) Eksempel 2.21. Enheds nedre trekantmatrix, dvs (L)ii = 1. Eliminationskoefficienter i strengt nedre trekant. (L)ik ← `ik . Skifter række hvis efterfølgende pj > j. Eksempel 2.16 1 A = 4 7 1◦ løs Lc = P b point operations), dvs simple aritmetisk operationer. P : Opsamler rækkeombytningerne. Permutationsmatrix. Modellering og programmering. P Ax = L U x = P b P A = LU U : Den resulterende øvre trekantmatrix L: ⇔ Kan løses i to trin Effekten på kefficientmatricen kan udtrykkes ved LU faktorisering af A : 54 Lineær algebra Højresiden b optræder ikke i faktoriseringen, men pp 33 – 36 opnås ved en følge af c U Modellering og programmering. Eksempel 2.22. A er symmetrisk: A = F T F , hvor F ∈ Rm×n . A T = F (F ) T T T Hvis F har lineært uafhængige søjler, så er = F F = A y = F x 6= 0 hvis x 6= 0 , og 2 > 0 xT A x = xT F T F x = y T y = y12 + · · · + ym rækkeombytninger 0 0 1 1 0 0 = P . 0 1 0 (Normalligninger) T A er spd Rækkeombytninger ødelægger symmetrien. Undlad pivotering. Kan vises, at det ikke ødelægger nøjagtigheden. Dvs P = I og A = LU Modellering og programmering. Eksempel 2.23. 4 12 12 45 −8 −33 16 66 4 12 0 9 0 0 0 0 −8 −33 41 30 −8 −9 16 80 56 Lineær algebra 16 66 30 502 16 18 80 402 4 ∼ `21 = 3 0 `31 = −2 0 `41 = 4 0 4 ∼ 0 `43 = 5 0 0 12 −8 9 −9 −9 25 18 62 12 −8 9 −9 0 16 0 0 16 Ax = b 1◦ løs Generelt for en symmetrisk matrix: LDL faktorisering : Bør kun bruges hvis A også er pd. Er den det ? LT har lineært uafhængige søjler og derfor er dii > 0 (Fremadløsning) 2◦ løs C T x = z (Tilbageløsning) A = RT R , R = C T . Øvre trekantmatrix. Metoden afhænger af A: 1◦ Hvis A er en øvre (nedre) trekantmatrix, bruges tilbage- (fremad-) løsning. 2◦ Hvis A = AT forsøges Cholesky faktorisering. Hvis det lykkes, bruges C til at løse systemet. Ellers startes forfra med den generelle metode. 3◦ Generelle metode: Beregn LU faktoriseringen af A, og brug den til at løse systemet. A = L D LT y = LT x 6= 0 hvis x 6= 0. dvs alle Cz = b x = A \ b xT A x = xT L D LT x = y T D y = d11y12 + d22y22 + · · · + dnnyn2 M.a.o: A er pd hvis og kun hvis alle C CT x = b Eksempel 2.27 – 2.28. Matlab : Bruger 57 Lineær algebra ⇔ 58 Lineær algebra Løses i to trin ∼ 18 `32 = −1 62 `42 = 2 438 16 18 = U 80 2 Symmetri bevares. Regn kun på halvdelen. 13 n3 flops. 1 4 1 3 −2 4 3 1 9 1 −1 2 , = D LT L = U = −2 −1 1 16 1 5 4 2 5 1 2 1 Modellering og programmering. Modellering og programmering. uii > 0 Stop beregningerne hvis man møder en uii ≤ 0 . Så skal man begynde forfra med den generelle metode med pivotering. A spd : A = L D LT = L D 1/2 D 1/2LT = C C T Cholesky faktorisering. Beregnes normalt uden omvejen via LDL faktoriseringen. C er en nedre trekantmatrix.