MA250 Numeriske metoder Oppgave Løsningsforslag, øving 7 a) Vi vet at r = Ae e = A r. La være en vektornorm på R n med en tilhørende avledet (subordinat) matrisenorm på R n n. Siden blir Ax A = sup Ax A x, x 0 x e x = A r A r x x = r A A A x som var det vi skulle vise. A A r Ax = A A r r = κ(a) b b b) «Problem» 7..5. Vi finner at [ ] [ ] 0.00 343 0.00 r =, ẽ =, 0.00 572 0.00 [ ] [ ] 0.000 00 0.659 ˆr =, ê =. 0.000 000 0.93 Vi observerer altså at løsningen med størst residual ( r = 0.00 572) har klart minst feil ( ẽ = 0.00). Dette skyldes at matrisen A er dårlig kondisjonert. Spesielt finner vi at κ (A) = A A 2.66 0 6. Videre er x =, ê = 0.93, ˆr =.000 0 6 og b = 0.254. Dermed er feilestimatet oppfylt for både ẽ og ê. Eksemplet viser altså at man må være forsiktig med å bruke residualet som eneste indikator på feilen hvis koeffisientmatrisen er dårlig kondisjonert. n x x κ (A) 5.9926 0 2 4.766 0 5 0 3.7952 0 4.6025 0 3 5 6.7323 8.4880 0 7 Tabell : Feil og kondisjonstall for system basert på Hilbertmatrisen. n x x κ (A) 5 2.6645 0 5 2.4435 0 0 2.4425 0 5 4.8644 0 5 4.463 0 4 6.72 0 2 00 4.443 0 3 2.4773 0 3 000 4.5336 0 4.8960 0 5 Tabell 2: Feil og kondisjonstall for system basert på en tilfeldig matrise. c) Vi velger eksaktløsning x = [,,..., ] T. For n = 0 kan vi da løse problemet ved matlab-setningene n = 0; x = ones([n, ]); A = hilb(n); b = A * x; xt = A \ b; e = norm(x - xt, inf) k = cond(a, inf) Resultatene er oppsummert i Tabell. De samme eksperimentene med utgangspunkt i en tilfeldig matrise av tilfeldige tall, definert i matlab som A = rand(n), gir derimot resultatene i Tabell 2. Dine egne resultater vil sannsynligvis variere noe fra disse. Dette viser imidlertid at kondisjonstallet for Hilbertmatrisen er ganske ekstremt. På den annen side vil vi normalt måtte forvente at kondisjonstallet vokser med økende dimensjon på matrisen. 2
Oppgave 2 Kincaid & Cheney, «Problem» 7.2.9 Vi skal løse ligningssystemet 2x + 3x 2 = 8 x + 2x 2 x 3 = 0 3x + 2x 3 = 9 ved help av Gausseliminasjon med skalert delvis pivotering. Denne metoden er beskrevet i boka på side 280 og utover. Vi skriver ligningssystemet på formen Ax = b og får 2 3 0 2 3 0 2 x x 2 x 3 8 = 0. () 9 Først beregner vi skaleringsfaktoren til hver rad i A. Skaleringsfaktoren er den største absoluttverdien i hver rad, det vil si s i = max j n a ij for hver rad i n. Skaleringsfaktorene beregnes kun én gang. Vi får s = 3, s 2 = 2, s 3 = 3. I skritt k velger vi som pivotligning den rad i A der forholdet a ik / s i, i I er størst. I er her mengden av «gjenværende» pivotrader. I skritt finner vi a s = 2/3, a 2 s 2 = /2, a 3 s 3 =, så vi velger ligning 3 som pivotrad. Ett skritt i Gaussprosessen gir da 2 3 0 x 2 8 x 2 = 0 3 4/3 0 x 2 0 2 /3 x 2 = 3. 3 0 2 x 3 9 3 0 2 x 3 9 I skritt 2 beregner vi for de gjenværende radene i I = {, 2} a 2 s = 9/2, 3 a 22 s 2 = så vi velger rad som pivotrad. Ett skritt i Gaussprosessen gir da 0 3 4/3 x 2 0 3 4/3 x 2 0 2 /3 x 2 = 3 0 0 5/9 x 2 = 5/3. 3 0 2 x 3 9 3 0 2 x 3 9 Den siste pivotraden som vi ikke gjør noe med blir rad 2. Vi gjør tilbakesubstituering i samme motsatt rekkefølge av den rekkefølgen vi fikk for pivotradene, altså 2,, 3. Det gir x 3 = 5/9 5/3 = 3, x 2 = 3 (4/3 3 + 2) = 2, x = 3 (9 2 3) =. Kincaid & Cheney, «Problem» 8..4 Vi er gitt matrisen 2 2 A =. 3 2 a) Vi skal vise at A ikke kan LU-faktoriseres, det vil si A kan ikke skrives som et produkt av en nedre enhetstriangulær matrise L og en øvre triangulær matrise U. En matrise kan LU-faktoriseres hvis og bare hvis naiv Gausseliminasjon ikke stopper opp på grunn av null som pivotelement (se forøvrig side 38 i C & K). Vi utfører et skritt med naiv Gausseliminasjon: 2 2 0 0 /2 0 /2 Vi ser at a 22 = 0. Matrisen A har dermed ingen LU-faktorisering. b) Vi skal vise at vi ved å bytte om radene i matrisen A kan produsere en matrise som har en LU-faktorisering. Vi ser at problemet med A er at a = a 2 og a 2 = a 22. Det betyr at eliminasjon av a 2 ved hjelp av a også vil eliminere a 22 ved «hjelp» av a 2. Ved å bytte om radene som rad 2, rad 3 og rad 3 2 får vi da B = 3 2. 2 2 4
Dermed gir ett skritt med Gausseliminasjon 3 2 0 2. 2 2 0 0 Matrisen B, oppnådd ved å permutere radene til A, har altså en LUfaktorisering. Oppgave 3 Kincaid & Cheney, «Problem» 8.2.3 Vi har gitt en iterasjonsprosess av typen Qx (k) = (Q A)x (k ) + b (2) og skal finne en tilstrekkelig betingelse for at prosessen skal konvergere for en vilkårlig startvektor x (0). Prosessen (2) er en fikspunktiterasjonsprosess. La x være fikspunktet i prosessen. Feilen e (k) kan skrives e (k) = x x (k). Dersom vi for feilnormen finner at e (k) < e (k ) for alle k, så vil e (k) 0 når k. Det betyr at vi i dette tilfellet har x (k) x når k. Generelle egenskaper ved den avledete matrisenormen gir at e (k) I Q A e (k ) så for at vi skal ha e (k) < e (k ) må I Q A <. Svaret blir dermed alternativ d. Kincaid & Cheney, «Problem» 8.2.4 For en vektornorm er den avledete matrisenormen gitt ved { A = sup Ax : x R n } x = for en matrise A R n n. Den avledete matrisenormen er en norm, så derfor er A + B A + B. 5 Videre finner vi på side 340 i C & K at det for avledete matrisenormer også gjelder at I = Svaret blir dermed alternativ b. Ax A x AB A B. Kincaid & Cheney, «Problem» 8.2.5 Betingelsen for at en matrise A R n n er diagonaldominant er at diagonalelementet på hver rad i absoluttverdi er større en summen av absoluttverdiene av de andre elementene på samme rad. Med andre ord at a ii > n a ij j= for alle i =,..., n. Svaret blir dermed alternativ e. Kincaid & Cheney, «Problem» 8.2.6 Vi skal finne en nødvendig og tilstrekkelig betingelse for at iterasjonen skal konvergere mot en løsning av ligningen x (j) = Gx (j ) + k (3) (I G)x = k. (4) Vi ser at et fikspunkt x i rekurrensrelasjonen (3) tilfredsstiller (4). Dersom (3) konvergerer vil prosessen følgelig konvergere mot en løsning av (4). For feilen har vi at e (j) = Ge (j ). Vi krever at e (j) 0 når j som er ekvivalent med at e (j) < e (j ). Som i «Problem» 8.2.3 får vi et krav om at G <. Vi har videre at spektralradien ρ(g) G, så kravet er alternativ c. Kincaid & Cheney, «Problem» 8.2.7 En tilstrekkelig betingelse for at Jacobi-metoden eller Gauss Seidel-metoden anvendt på ligningssystemet Ax = b skal konvergere er at A er diagonaldominant (teorem 2 på side 349 i C & K). Svaret blir alternativ b. 6
Kincaid & Cheney, «Problem» 8.2.8 Se «Problem» 8.2.7. Svaret blir alternativ a. Kincaid & Cheney, «Problem» 8.2.9 Den suksessive overrelaksasjonsmetoden (SOR-metoden) med ω (0, 2) konvergerer mot løsningen av ligningssystemet Ax = b hvis og bare hvis A er symmetrisk og positiv definitt, det vil si at A T = A og x T Ax > 0 for alle x 0 (teorem 3 side 350). Svaret blir dermed alternativ c. Oppgave 4 Vi studerer systemet 5 2 6 0 x 300 2 2 4 x 2 6 4 9 9 x 3 = 0 0. } 0 9 {{ 2 x 4 }}{{} 0 }{{} A x b Vi vet fra resultatene «Theorem 2» i avsnitt 8.2 at et tilstrekkelig krav for konvergens av Jacobi og Gauss Seidel er at matrisen A er strengt diagonaldominant, dvs. a ii > n j= a ij for alle i =,..., n. I dette tilfellet er kravet oppfylt bortsett fra i nest siste rad. I tillegg har vi fra «Theorem 3» at SOR vil konvergere dersom matrisen har positive diagonalelementer (oppfylt), 0 < ω < 2 (oppfylt fra forutsetningene) og matrisen er positiv definitt. Fra det vi har lært er det imidlertid ikke lett å avjøre om denne matrisen er positiv definitt bare ved å studere elementene. I korthet vet vi derfor ikke umiddelbart om de iterative metodene vil konvergere eller ikke. På den annen side er systemet av liten størrelse så vi kan eksplisitt beregne iterasjonsmatrisen G = I Q A for hver av de tre metodene og undersøke om ρ(g) <. Følgende matlab-setninger viser fremgangsmåten: sr = inline( max(abs(eig(m))), M ); % spektralradius A = [ 5, -2, - 6, 0; -2, 2, -4, - ;... - 6, -4, 9, -9; 0, -, -9, 2]; CL = -tril(a, -); CU = -triu(a, ); D = diag(diag(a)); rho_j = sr(d \ (CL + CU)) rho_gs = sr((d - CL) \ CU) 7 Figur : Spektralradien ρ(g SOR ) som funksjon av ω for iterasjonsmatrisen i Oppgave 4. omega = linspace(0, 2, 00); rho = zeros(size(omega)); for k = : numel(omega), w = omega(k); rho(k) = sr((d - w*cl) \ (w*cu + ( - w)*d)); end plot(omega, rho) Fra denne analysen finner vi at ρ(g J ) 0.70 <, ρ(g GS ) 0.49 <, ρ(g SOR ) < for 0 < ω < 2 og vi kan konkludere med at alle iterasjonsmetodene vil konvergere for alle startvektorer x (0). Plottet i Figur indikerer også at ω.2 vil gi optimal konvergensrate i SOR og derfor også færrest mulig SOR-iterasjoner. Test dette! Som et siste alternativ i analysen kan vi nevne at kriteriene fra «Theorem 2» kan slakkes litt og likevel gi konvergens for Jacobi og Gauss Seidel. Dette er ikke vist i C & K, men de slakkere kravene er nyttige i praksis og derfor 8
Metode Iterasjoner Tilnærmet løsning Jacobi 77 [ 0.999962, 0.999956, 0.999990, 0.999954] T Gauss Seidel 39 [ 0.999957, 0.999954, 0.999992, 0.999957] T SOR ω=.4 2 [.000029,.00009,.00004,.000004] T Tabell 3: Approksimasjoner og iterasjonstall for ulike iterative metoder anvendt på «Computer Problem» 8.2.3. nevnes de her. Hvis systemet Ax = b ikke kan dekomponeres i uavhengige undersystemer kun ved å bytte om rader og/eller kolonner i systemet, så vil Jacobis og Gauss Seidels metoder konvergere under den svakere betingelsen a ii n a ij j= for alle i =,..., n med streng ulikhet oppfylt for minst én i. Vi kan dessuten vise at hvis i tillegg a ii > 0 for alle i =,..., n og A T = A, så vil A være symmetrisk positiv definitt og SOR vil også konvergere. Under disse svakere betingelsene finner vi da at alle de tre metodene vil konvergere. Løsningen av systemet er x [ 26.5492 9.3537 3.2550 6.26 ] T. Oppgave 5 Kincaid & Cheney, «Computer Problem» 8.2.3 Approksimasjoner og iterasjonstall for de ulike iterative metodene er gitt i Tabell 3. Figur 2: Antall SOR-iterasjoner som funksjon av parameteren ω [, 2] for «Computer Problem» 8.2.3. Kincaid & Cheney, «Computer Problem» 8.2.4 Et plott av antall iterasjoner som funksjon av ω i intervallet [, 2] er gitt i Figur 2. Plottet viser at ω =.4 gir minst antall iterasjoner for dette problemet. 9 0