Sensitivitet og kondisjonering Gitt en lineær likningssystem Ax = b vi skal studere effekten av perturbasjoner av input data: 1/19 på output data: Man kan A, b x perturbere bare b perturbere b og A samtidig. Slike perturbasjoner studeres ved hjelp av normer.
Vektor normer En norm er en funksjon som, gitt et vektor, returnerer et reelt tall slik at: x 0 for all x. I tillegg, x = 0 bare hvis x = 0 γx = γ x, γ et skalar tall x + y x + y, (trekant ulikhet) 2/19 En viktig konsekvens av trekant ulikhet er at x y x y
Vi er kjent med Euclidsk norm eller 2-norm x 2 = ( x 1 2 + x 2 2 + + x n 2) 1 2 = ( n i=1 x i 2 ) 1 2 uendelig norm: x = max{ x 1, x 2,..., x n } = max 1 i n x i 3/19 1-norm: x 1 = x 1 + x 2 + + x n = n x i i=1 Alle tre normene er spesielle tilfeller av en generisk norm, kalt p-norm, p > 0, positivt heltall: x p = ( n i=1 x i p ) 1 p
For en vilkålig x: x x 2 x 1 I tillegg: p-normer er ekvivalente x 1 n x 2 x 2 n x x 1 n x 4/19 I 2-dimensjonale rom, unit sirkel: x p = 1 2 norm 1 norm 8 norm
Matrise normer Husk definisjonen av normer: A 0 for all A. I tillegg, A = 0 bare hvis A = 0 γa = γ A, γ et skalar tall A + B A + B (trekant ulikning) 5/19 Man kan indusere matrise-normer fra vektor normer: Gitt A m n matrise og gitt ett vektor norm, A def Ax = max x 0 x, x Rn, x 1 = n i=1 x i A 1 = max 1 j n x = max 1 i n x i A = max 1 i m m a i,j i=1 n a i,j j=1
Matrise 2-normen er ikke like lett å beregne ut av A, ( n ) 1/2 x 2 = x i 2 A 2 = max{σ : eigenverdi av AA T } i=1 6/19
I tillegg til de fundamentale norm-egenskaper: A 0 for all A. I tillegg, A = 0 bare hvis A = 0 γa = γ A, γ et skalar tall A + B A + B (trekant uliknking) 7/19 for noe matriser man har AB A B, (submultiplikasjons egenskap) Ax A x, (konsistens) Alle p-normer er submultiplikative og konsistente. [ ] [ ] [ 1 0.5 1 1 0 Eks: A =, x = og B = 0.6 2 0 0 2.5 ]. Vi har: I tillegg: A = 2.6, x = 1, B = 2.5 AB = 5.6 6.5 = A B Ax = 1 2.6 = A x
Kondisjonering og feil skranker Som oftest, vi regner med at matrisen A er gitt, eksakt, mens ˆb b kommer f.eks. fra måling. 8/19 Hva er den relativ feil for x? Kall for ˆx den vektor slik at Aˆx = ˆb og skriv x = ˆx x, b = ˆb b. Vi tar normer: Ax = b Aˆx = ˆb A x = b, x = A 1 b Derfor x x x A 1 b b = Ax A x, 1 x A b A 1 b A b = A 1 A b b Tallet cond(a) = A A 1 kalles kondisjonstall av matrisen A. = cond(a) b b
Husk problemets kondisjonering: Kond = rel. output feil rel. input feil = ˆx x / ˆb b x b Da Kond = x / b x b = A A 1 9/19 Kondisjonstallet av singulære matriser er definert som cond(a) =, A singulær Egenskaper: 1. cond(a) 1 for alle matriser A 2. cond(i) = 1 3. Kondisjonstallet er invariant under skalering, cond(γa) = cond(a) 4. Hvis D er en diagonal matrise, D = (d i ), da cond(d) = max d i min d i.
Hvordan beregner vi cond(a)? A er relativt lett (1-norm, uendelig-norm) For å estimere A 1, tar vi to vilkålige vektorern y, z slik at Az = y, z = A 1 y. Vi tar normer, z = A 1 y A 1 y = z y A 1 10/19 Triksen er å finne en optimale y slik at z y er størst mulig.
Vi har sett x x Hva er effekten av variasjoner av A over x? cond(a) b b (A + E)ˆx = b = Ax x = ˆx x = A 1 E ˆx x A 1 E ˆx 11/19 Derfor x ˆx cond(a) E A Hvis vi antar x x x ˆx og at feilkilder for A, b er uavhenging av hverandre, x x ( b cond(a) b + E ). A Det samme finnes hvis vi definerer A(t) = A + te, x(t) = x + t x, og b(t) = b + t b, og A(t)x(t) = b(t).
Til slutt, hvis input data er korrekt til maskinpresisjon, en fornuftig skranke for den relativ output feil er ˆx x cond(a)ɛ mach. x Eller, man kan si at den beregnet løsning mister cirka log 10 (cond(a)) 12/19 desimale siffer i forhold til presisjonen til input data b Eks: cond(a) = 10 4. b har 7 korrekte signifikante siffer (relativ input feil 10 7 ˆx x x 10 4 7 = 10 3 vi forventer 3 korrekte signifikante siffer for x. Hvis b har mindre enn 4 signifikante siffer, forventer vi ikke noe signifikante siffer av x.
Iterative metoder Vi ønsker å løse Ax = b Opp til nå har vi sett direkte metoder det betyr at algoritmer finner de ukjente x etter en fikset antall steger. 13/19 Iterative metoder begynner med en initiell løsning og modifiserer denne i hvert steg til konvergens er nådd. For store lineære systemer som inneholder tusenvis av ligninger, har de iterative metodene ofte store forderler i forhold til direktemetoder med hensyn på antall flyttallsoperasjoner og krav til minne: de er spesielt attraktive der matrisen A er glissen element ulik null i A kan lagres i et spesielt format slik at man sparer en del lagringsplass.
Basisideen med iterative metoder er å konstruere en følge av vektorer {x (k) } slik at hvor x er løsningen av Ax = b. lim k x(k) = x, I praksis stopper man ved en minimum verdi av k slik at 14/19 x (k) x < ε, hvor ε er en bestemt toleranse. Siden eksakt løsning er vanligvis ikke tilgjengelig, er det nødvendig å introdusere et passende stoppkriterium Stasjonære metoder De enkleste iterative metoder har formen nå er initialløsning x (0) gitt. G kalles iterasjonsmatrise x (k+1) = Gx (k) + c, k = 0, 1,..., G, c må være slik at den fikset punkt x = Gx + c er også løsningen til Ax = b. Hvis G, c er konstante, metoder kalles stasjonære
x (k+1) = Gx (k) + c, k = 0, 1,..., x (0) gitt Hvordan finner vi G, c? En generell teknikk brukt i mange iterative metoder, tar utgangspunkt i en splitting av matrisen A i A = M N hvorav M er ikkesingulær. 15/19 Gitt en initiell løsning x (0), kan vi regne ut x (k+1), for k 0, ved å løse systemet Mx (k+1) = Nx (k) + b Iterasjonsmatrisen er G = M 1 N Vektoren c = M 1 b Vektoren kalles residualvektoren i iterasjon k. r (k) = b Ax (k)
Om konvergens x (k+1) = Gx (k) + c, k = 0, 1,..., x (0) gitt Vi subtrahere x (k) = Gx (k 1) + c, x (k+1) x (k) = G(x (k) x (k 1) ), = G 2 (x (k 1) x (k 2) ) = = G k (x (1) x (0) ) 16/19 For at x (k) skal konvergere til x for alle initielle x (0), må x (k+1) x (k) konvergere til 0, og denne skjeer bare hvis lim k Gk = O ρ(g) < 1, ρ(g) = max{ λ : λ eigenverdi av G} ρ(g) kalles spektral radius av G, for alle mulige matrisenormer. ρ(g) G For raskest konvergens, ønsker man ρ(g) = ρ(m 1 N) minst mulig, men den må balanseres med kostnade av å løse likningssystemet Mx (k+1) = Nx (k) + c.
Jacobis metode Vi splitter matrisen A = M N som 17/19 A = L + D + U, M = D, N = (L + U) Iterasjoner x (k+1) = M 1 (Nx (k) + b) blir x (k+1) = D 1 ( (L + U)x (k) + b) Obs! a i,i 0 og komponentvis ( x (k+1) i = 1 b i ) a i,j x (k) j, i = 1, 2,..., n a i,i j i trenger dobbelt lagringsplass for de ukjente (for x (k+1), x (k) ) kan løses i vilkålig rekkefølge (ideelt på parallele maskiner) konvergerer som oftest (konvergens er garantert for PD matriser) kan være litt treg...
Gauss Seidels metode Vi splitter matrisen A = M N som 18/19 Iterasjoner x (k+1) = M 1 (Nx (k) + b) blir og komponentvis x (k+1) i = 1 a i,i ( A = L + D + U, M = D + L, N = U x (k+1) = (D + L) 1 ( Ux (k) + b) b i j<i a i,j x (k+1) j j>i a i,j x (k) j ), i = 1, 2,..., n trenger ikke dobbelt lagringsplass for de ukjente (for x (k+1), kan skrives over x (k) ) må løses en bestemt rekkefølge konvergens egenskaper er litt bedre enn for Jakobi (konvergens er garantert for PD matriser) konvergerer fortere enn Jacobi, men det er fortsatt treg i praksis...
Suksessiv overrelaksasjonsmetode (SOR) 19/19