WISB356, Utrecht, 2 otober 2012 Scientific Computing WISB356, Utrecht, 2 otober 2012 Iterative methoden voor lineaire vergelijingen Gerard Sleijpen Rob Bisseling Alessandro Sbrizzi Department of Mathematics Gerard Sleijpen Department of Mathematics http://www.staff.science.uu.nl/ sleij101/ http://www.staff.science.uu.nl/ sleij101/ Program Basale Lineaire Algebra operaties Basale Lineaire Algebra Operaties LU-decompositie Blas versus LU Iteratieve oplosmethoden Local Minimal Residuals Generalized Conjugate Residuals Convergentie Krylov ruimte methoden Basale Lineaire Algebra operaties: MV: c = Au AXPY of vector update: z = αx + y DOT of inproduct: (y,z) = z y = z y BLAS operaties unnen snel uitgevoerd worden. Computerfabrianten zorgen ervoor dat BLAS software voor hun machine beschibaar met een efficiëntie die voor hun machine geoptimaliseerd is. Opmering. De optimale MV is oo afhanelij van de structuur van de matrix.
Basale Lineaire Algebra operaties BLAS operaties unnen snel uitgevoerd worden. We meten de osten voor een operatie in floating point operaties. Floating point. 7.9487e 4 = 794.87e 2 Een flop is een scalaire operatie, vermenigvuldiging, deling /, optelling +, of aftreing. In de numeriee lineaire algebra wordt vrijwel altijd n + (of ) gecombineerd met n. LU-decompositie A = LU, waarbij L beneden driehoe met diag(l) = I en U bovendriehoe. De collectie (i, j) met A i,j = 0, en L i,j 0 (als i < j) of U i,j 0 (als i j) heet fill. Gauss eliminatie (of LU-decompositie) is inefficiënt als A ijl is (d.w.z., per rij maar een paar A i,j 0) en er veel fill optreedt. Voorbeelden. 1 AXPY:, 1 DOT: 1 MV voor onze matrix op een 2-d gebied: 9n flop 3-d gebied: 13n flop Voor Grondwaterstroming/verspreiding van gif Methode Geheugen (in 8 bytes) Wer (in flop) MV 2d 5(n x n y ) 9(n x n y ) Gauss 2d 2n x (n x n y ) 2n 2 x (n xn y ) MV 3d 7(n x n y n z ) 13(n x n y n z ) Gauss 3d 2(n x n y )(n x n y n z ) 2(n x n y ) 2 (n x n y n z ) Voor Grondwaterstroming/verspreiding van gif Methode Geheugen (in 8 bytes) Wer (in flop) MV 2d 5(n x n y ) 9(n x n y ) Gauss 2d 2n x (n x n y ) 2n 2 x (n xn y ) MV 3d 7(n x n y n z ) 13(n x n y n z ) Gauss 3d 2(n x n y )(n x n y n z ) 2(n x n y ) 2 (n x n y n z ) Gauss. + Maar één methode + Geeft exact antwoord fill: (duur mbt geheugen, reenosten). Methode per probleemtype te iezen Benaderend antwoord + alleen MV s, axpy s, dot s Gauss. + Maar één methode (andere nummering als n y < n x?) + Geeft exact antwoord (je maat oo afrondfouten!) fill: (duur mbt geheugen, reenosten). Methode per probleemtype te iezen Benaderend antwoord (Kan heel nauweurig!) + alleen MV s, axpy s, dot s
Voor Grondwaterstroming/verspreiding van gif Methode Geheugen (in 8 bytes) Wer (in flop) MV 2d 5(n x n y ) 9(n x n y ) Gauss 2d 2n x (n x n y ) 2n 2 x(n x n y ) MV 3d 7(n x n y n z ) 13(n x n y n z ) Gauss 3d 2(n x n y )(n x n y n z ) 2(n x n y ) 2 (n x n y n z ) A is n n. Vuistregel: (beste) Gauss is sneller dan (beste) iteratief in 2 d als n < 60000 n x = n y = 240 in 3 d als n < 40000 n x = n y = 65, n z = 10 Vuistregel geldt voor algemene pratische problemen Observatie. We zijn niet echt geïnteresseerd in de exacte oplossing x. We zijn al tevreden als de bereende oplossing goed is in paweg 5 decimalen. Idee. Als we een benaderende oplossing x hebben, construeer dan een beter benaderende oplossing uit x (en eventueel uit x 1,x 2,... of andere vectoren die we al bereend hebben). Herhaal dit proces tot dat de fout e x x lein genoeg is. Terminologie. Residu: r A(x x ) = b Ax. Meet de fout of residu in de (geschaalde) 2-norm: r 2 (r,r) met (y,z) = n 1 j=1 n z j y j = n 1 z y. Kies α x opl = x opl + α(b Ax opl ) Richardson iteration Probleem van de vorm x = φ(x). Probeer op te lossen met successieve substitutie: x +1 = φ(x ) = x + αr e +1 = e αr = (I αa)e. Voorbeeld. n = 1, A = [λ]. Dan e +1 = (1 α λ)e = (1 α λ) +1 e 0 0 Choose tol > 0, x 0, max, α Compute r 0 = b Ax 0 Stop if r 2 tol b 2 u = r c = Au Determine α x +1 = x + αu r +1 = r αc 1 α λ < 1.
Stelling. Richardson convergeert als α λ {ζ C 1 ζ < 1} voor alle eigenwaarden λ van A ( ) Stelling α = argmin α r αc 2 r αc c c r αc c = 0 c r αc c = 0 α = c r c c Stelling. Als Re(λ) > 0 voor alle eigenwaarden van A, dan is er een α > 0 zodat ( ) [Bewijs: zie animatie] [zie oo plaatjes] Voorbeeld. Re(λ) > 0 voor alle eigw. van A: 1) Grondwaterstroming (geschite discretisatie) 2) Verspreiding gif, c > 0, en h x, h y voldoende lein Idee. Kies α zo dat r αc 2 minimaal. Local Minimal Residuals LMR (geheugen vriendelij) Choose tol > 0, x 0, max, Compute r 0 = b Ax 0 Stop if r 2 tol b 2 u = r c = Au σ = c c, α = c r /σ x +1 = x + α u r +1 = r α c Choose tol > 0, x, max, Compute r = b Ax Stop if r 2 tol b 2 u r c Au σ c c, α c r/σ x x + αu r r αc
LMR heeft de ingrediënten die typisch zijn voor iteratieve methodes: Loop (iteratie stap). Paar BLAS operaties (MV, AXPYs, DOTs) per stap. Stopcriterium: stop als residu voldoende lein is (success) of als het aantal stappen te groot wordt (fail). Geheugen vriendelij. Belangrije vragen (voor iedere iteratieve methode): Hoe snel convergeert het proces (d.w.z., wat is de leinste waarvoor r 2 tol b 2 )? Wat zijn de osten per stap? (de totale osten volgen dan) Idee. Generalized Conjugate Residuals In LMR is r alleen geminimaliseerd in de richting c. Echter de vectoren c 1,c 2,... zijn oo bereend. Levert minimaliseren in al deze richtingen een leiner residu? Stelling. (α j ) zo dat r j=0 α j c j 2 minimaal r +1 r j=0 α j c j c i alle i = 0,...,. Stelling. (α j ) zo dat r j=0 α j c j 2 minimaal. r,c Span(c 0,c 1,...,c 1 ) r +1 r α c c Dus α 0 =... = α 1 = 0 en α = c r c c r,c Span(c 0,c 1,...,c 1 ) Gebrui Gram-Schmidt om, voor iedere = 1,2,..., de vector c loodrecht Span(c 0,c 1,...,c 1 ) te rijgen Stelling [Modified Gram-Schmidt]. Gegeven vectoren c 0, c 1,.... Voor = 1,2,..., bereen Dan c = c For j = 0,1,..., 1 β j = c j c /σ j c c β j c j σ = c c (negeer lege loops) Span(c 0,c 1,...,c ) = Span( c 0, c 1,..., c ) alle en c i c j alle i, j, i j. GCR (geheugen vriendelij) Choose tol > 0, x, max, Compute r = b Ax Stop if r 2 tol b 2 u = r c = Au For j = 0,1,2,..., 1 β c j c /σ j u u βu j c c βc j σ = c c, α c r/σ x x + αu r r αc 13n flop (3d) 4n flop totaal 3-d: 23n + 6n flop totaal 2-d: 19n + 6n flop
Stelling. Met dezelfde x 0 : r GCR Convergentie 2 r LMR 2 r Richardson 2 Grondwatervergl., met, voor Richardson, α = α opt ρ LMR ρ Richardson ρ GCR rrichardson 2 r exp ( 2 λ ) 1 0 2 λ n ( ) λ exp 2 1 λ n Grondwatervergl. Bij λ 1 /λ n moet je denen aan h 2 x + h2 y. Opdracht. Probeer deze theoretische resultaten terug te zien in de pratij. Plot in je experimenten de residu reductie of convergentie historie, d.w.z., de grafie van ρ (op log 10 schaal) Krylov ruimtes De Krylov ruimte K (A,r 0 ) van orde voorgebracht door A en r 0 is K (A,r 0 ) = Span(r 0,Ar 0,...,A 1 r 0 ) Stelling. Richardson, LMR en GCR vinden hun benadering x in x 0 + K (A,r 0 ). GCR vindt de benadering met leinste residu: r GCR 2 b Ay 2 voor alle y x 0 + K (A,r 0 ). GCR is een minimale residu methode. Stagnatie en afbreen Als in GCR c r, dan stagneert de methode, d.w.z., r +1 = r (waarom?) dan is c +1 (na orth.) = 0 (waarom?) en breet de methode af, d.w.z., er wordt gedeeld door 0 (nl., door σ +1 = 0). Stelling. Als Re(λ) > 0 voor alle eigenwaarden λ van A, dan stagneert GCR niet. Conclusies Richardson, LMR, GCR zijn Krylov ruimten methoden (iteratief, alleen MVs, AXPYs & DOTs). GCR is, wat betreft het aantal MVs, in zeere zin optimaal Rich.: + Geen DOTs, een paar AXPYs per MV Langzame convergentie (in termen van MVs) Geschite α van te voren zelf bepalen (an divergeren bij vereerde α) LMR: + Een paar AXPYs en DOTs/MV + Bepaalt automatisch geschite α s Langzame convergentie (in termen van MVs) GCR: # AXPYs en DOTs/MV evenredig met + Snelste convergentie (in termen van MVs)