CHALMERS FinitElementmetod M3 illämpad mekanik Föreläsning 18, 15/1 014 91. Lösningen till ekvationssystemet Gradient och konjugerad gradientmetod. a f (1) minimerar den kvadratiska funktionen Π( x) 1 --x x x f () dvs Π( a) Π( x) x R n (3) x x > 0, x 0 om är symmetrisk ( ) och positivt definit ( ). Detta är utgångspunkten i många iterativa metoder för lösning av ekvationssystem. I en iterativ metod böjar man med någon startapproximation till lösningen för (1), (t.ex om man inte har någon bättre gissning), och genererar en sekvens 0 a, a 3, a 4, av approximativa lösningar som är allt bättre i någon mening. Antag att vi har en approximation a i ; sätt in denna i vänsterledet i (1) a i f i (4) och subtrahera resultatet från (1). Då fås ( a a i ) f f i (5) e i a a i a i f f i eller med (felet i approximationen ) och (residualen) e i (6) ), men residualen kan all- Observera att vi inte känner felet (utan att först beräkna den exakta lösningen tid enkelt beräknas: a f f i f a i (7) Låt nu vara en sökriktning och en steglängd vi vill förbättra den approximativa lösningen till (1) genom a i 1 a i (8) Π( a i 1 ) Givet sökriktningen så verkar det rimligt att man ska välja steglängden så att minimeras. Vi har 1 Π( a i 1 ) -- ( a i ) ( a i ) ( a i )f α ----- 1 i pi --a i ai ai f ai f (9)
CHALMERS FinitElementmetod M3 illämpad mekanik där det utnyttjats att är symmetriskt, så ri 0 αi -------------- α i pi (10) Vidare har vi att Π pi > 0 (11) eftersom Π( a i 1 ) enligt förutsättningarna är positivt definit; således leder en steglängd enligt (10) till att minimeras. Det återstår nu att bestämma en sökriktning. Vi ska studera två val, där det första leder till gradientmetoden (steepest decent) och det andra till konjugerad gradientmetod. GRADIENMEOD Det kanske mest uppenbara sättet att välja är att ta den riktning i vilken Π avtar snabbast. Gradienten Π x 1 x xi xn (1) peka den riktning funktionen ökar snabbast, så vi väljer Π (13) För att beräkna gradienten observerar vi att Π( x x) Π( x) x ( x f) (14) x i x f så att ä:te raden i ; alltså har vi Π x x f (15) Π x a i Låt oss nu beräkna gradienten av då är vår approximativa lösning: Π( a i ) a i f (16) Vi ska alltså söka i residualens ( obalanskraftens ) riktning (17) Vi undersöker nu också hur stor residualen blir efter att approximationen förbättrats enligt (8): 1 f ( a i ) f a i (18)
CHALMERS FinitElementmetod M3 illämpad mekanik Med ledning av ekvationerna (7), (8), (10), (17) och (18) kan vi nu skriva ner algoritmen: Givet en start approximation, beräkna residualen. För (tills konvergens erhållits) En konsekvens av (4) är att konjugerad gradientmetod teoretiskt ger exakt lösning efter högst n iteratioa 1 r 1 f i 1,, g i ri --------- gi a i 1 a i 1 g i Beräkningsarbetet för att minska residualens storlek med någon given del är proportionellt mot konditionstalet för, dvs kvoten mellan största och minsta egenvärdet. Om matrisen är resultatet av en FE diskretisering av ett a ordningens problem blir konditionstalet proportionellt mot eller större, vilket leder till att gradient- små FEmodeller blir konditionstalet av storleksordningen metoden konvergerar mycket långsamt. ONJUGERAD GRADIENMEOD ; även för ganska För att förbättra konvergenshastigheten måste vi hitta något bättre sätt att välja sökriktningen. I konjugerad gradientmetod formas sökriktningen som en lineärkombination av residualen och föregående sökriktning β i 1 10 6 h (19) oefficienten i kombinationen beräknas så att successiva sökriktningen blir ortogonala, dvs så att pi 1 0 (0) Vi får alltså 1 pi 1 β i 1 0 β i -------------------------- 1 1 1 (1) Man kan visa att detta sätt att välja leder till att alla sökriktningar blir ortogonala: pj 0 i j () En följd av detta är att residualerna blir ortogonala mot alla tidigare sökriktningar pj 0 j 1,,, i 1 (3) vilket i sin tur leder till att alla residualer blir ortogonala rj 0 j 1,,, i 1 (4)
CHALMERS FinitElementmetod M3 illämpad mekanik ner; i praktiken får man avrundningsfel som gör att ortogonalitetsegenskaperna inte blir exakt uppfyllda, varför lösningen bara är approximativ även efter n steg. Metodens konkurenskraft ligge att man kan få bra approximativa lösningar efter mycket färre än n steg, och inte i att den (teoretiskt ger exakt lösning efter många steg). Genom att sätt in (19) i täljaren i uttrycket (10) för steglängden och utnyttja (3), fås det mer praktiska ri -------------- pi (5) Vidare har vi (se ekv. (18)) 1 1 1 1 p r i i 1 ------------------- 1 (6) Beräkna nu 1 enligt (5), och sätt in i (6): 1 1 1 ( ) 1 -------------------------- 1 1 (7) Om detta uttryck för 1 sätts in i täljaren i uttrycket för β i (ekv (1)) och ortogonaliteten mellan residualerna (4) utnyttjas fås β i ri ----------------------- r i 1 1 (8) Algoritmen kan nu sammanfattas enligt följande: Givet en start approximation, beräkna residualen. För (tills konvergens erhållits) β i ri ----------------------- r ( β 1 0) i 1 1 β i 1 r 1 f i 1,, g i ri ---------- gi a i 1 a i 1 g i Beräkningsarbetet för att minska residualens storlek med någon given del är proportionellt mot roten ur konditionstalet för. För ett typiskt FEproblem innebär detta någon tusendel (eller mindre) jämfört med att lösa ekvationssystemet med gradientmetod.
CHALMERS FinitElementmetod M3 illämpad mekanik EXEMPEL Med 1 1 f 1 1 3 1 1 3 är den exakta lösningen till (1) a 0 1 Med algoritmen för gradientmetod och startapproximationen 0 får vi: r 1 f 1 1 3, g 1 r 1 3 13 36, r 1 r1 13 36, r 1 g1 49 108, α 1 ( r 1 r1 ) ( r 1 g1 ) 39 49, a α 1 r 1 0,398 0,65, r r 1 α 1 g 1 0,0306 0,0459, etc. Figurerna nedan visasolinjer för den kvadratiska funktionen konjugerad gradientmetod letar sig fram mot minimum (vid Π(, a ) a 0 1 samt hur gradient respektive ). Notera att 1a steget i konjugerad gradientmetod ädentiskt med 1a steget i gradientmetod. Lägg också märke till att konjugerad gradientmetod ger exakt lösning efter steg.
CHALMERS FinitElementmetod M3 illämpad mekanik