Olof Runborg ND 10 februari 2004 2D1240 Numeriska metoder gk II för T2, VT 2004 Störningsanalys Indata till ett numeriskt problem innehåller i praktiken alltid (små) fel.felen kan bero på tex mätfel, avrundningsfel eller pga att indata kommer från andra numeriska beräkningar som innehåller trunkationsfel.en viktig frågeställning är därför hur lösningen till problemet påverkas av dessa fel.vi kan beskriva situationen såhär: Indata Problem Utdata x F y Här är F en abstrakt formulering av problemet.det kan tex vara en enkel funktion y = F (x), men i allmänhet är F mer komplicerad än så. Frågan är nu vad som händer med utdata y om vi stör indata x med ett litet fel ε x.istället för x skickar vi in x = x + ε x och istället för y får vi ut ỹ = y + ε y.hur beror då ε y på ε x? Störd indata Problem Störd utdata x=x+ε x F y=y+ ε y Ofta känner vi inte felet precis utan vet bara att det är mindre än en felgräns.felgränsen kan vara antingen absolut, betecknad E x, eller relativ, betecknad R x, och innebär att ε x E x, ε x R x. x Om felgränserna i utdata E y, R y är små när felgränserna i indata E x, R x är små brukar man säga att problemet är välkonditionerat eller stabilt; små fel i indata spelar ingen större roll. 1 F känd funktion Om F är en känd, snäll funktion kan vi analysera felfortplantningen från indata till utdata med hälp av lokal linärisering runt x.i detta fall är y = F (x) och ỹ = F ( x).via taylorutvecklingen får vi F (x) =F ( x ε x ) F ( x) ε x F ( x) ε y =ỹ y = F ( x) F (x) ε x F ( x) ε y ε x F ( x) Detta ger direkt motsvarande formel för absoluta felgränserna E x och E y, ε y ε x F ( x) E x F ( x) E y E x F ( x) 1
Om F beror på flera variabler, får man på samma sätt y = F (x 1,x 2,...,x n ), ỹ = F ( x 1, x 2,..., x n ), ε y ε x1 F( x 1,..., x n) x 1 + + ε xn F( x 1,..., x n) x n, där ε x är felet i x,samt där E x är absoluta felgränsen för ε x. E y E x1 F( x 1,..., x n) x 1 + + Exn F( x 1,..., x n) x n, Exempel 1: ntag att F (x) = 1 + cos x och att indata x är given som x =0.1 ± 0.005.Med terminologin ovan är då x =0.1 och ε x 0.005, dvse x =0.005.Beräkna först ỹ, Enligt formeln ovan blir felgränsen för ỹ ỹ = 1 + cos(0.1) 0.0499958 E y E x F ( x) =0.005 sin(0.1) 0.5 10 3. Vi avrundar därför ỹ till tre decimaler och skriver y =0.050 ± 0.0005. Exempel 2: Låt x vara exakta roten till ekvationen f(x) =0.Låt x vara en approximation till roten given av Newtons metod med avbrottskriteriet f( x) δ, där toleransen δ är ett litet tal.beräkna felgränsen i x.i detta exempel är y = f(x) =0och ỹ = f( x).földaktligen är ε y = ỹ y = f( x) 0 δ, dvse y = δ.formeln för felgränserna ger då E y E x f ( x) E x δ f ( x). Notera att om f ( x) är liten kan felet i x vara stort även om toleransen δ är liten.det är därför normalt svårt att lösa ekvationer med dubbelrötter där f(x) =f (x) =0. 2 Experimentell störningsanalys I många fall är F inte känd, eller för komplicerad för att kunna deriveras.det är då svårt att använda analysen ovan.exempelvis skulle F (x) kunna vara given som lösningen till en ordinär differentialekvation vid en viss tid med begynnelsevärde x: dy = g(y), y(0) = x, F (x) :=y(10). dt I denna situation är det mer praktiskt att använda experimentell störningsanalys där F (x) betraktas som en svart låda.det enda vi antar är att F är deriverbar. Vi börar med att beräkna ỹ från störda indata x som tidigare.sedan gör vi en experimenträkning : en beräkning där vi medvetet stör indata ytterligare med värdet på indatafelgränsen E x. Resultatet kallar vi ȳ, ỹ = F ( x), ȳ = F ( x + E x ). 2
Skillnaden ȳ ỹ är då en bra uppskattning av felgränsen E y i utdata ỹ, ȳ ỹ = F ( x + E x ) F ( x) E x F ( x) E y. När F beror av två variabler stör vi dem en i sänder och beräknar, ȳ 1 = F (x 1 + E x1,x 2 ), ȳ 2 = F (x 1,x 2 + E x2 ). Felet i utdata uppskattas med E y ỹ ȳ 1 + ỹ ȳ 2. Etc.för fler variabler.se tex ENM uppgift 8.8 för exempel. 3 Rättställdhet Vi har hittills hela tiden antagit att F motsvarar en snäll funktion, i sälva verket en deriverbar funktion.om F istället tex är en diskontinuerlig funktion kan ε y bli stort även för godtyckligt små ε x.det betyder att även om vi har mycket små störningar i indata får vi ett utvärde som är helt fel.sådana problem kallas icke rättställda (ill-posed).omvänt kallas problem där F (x) är kontinuerlig för rättställda (well-posed) problem.det är viktigt att se konsekvensen av icke rättställdhet: Eftersom vi i praktiken alltid har små störningar i indata kan icke rättställda problem inte lösas med numeriska metoder även om problemet i teorin har en entydig lösning.begreppet rättställdhet är därför centralt inom tillämpad matematik.ett mycket enkelt exempel på ett icke rättställt problem är fölande.lös f(x) =0när x, x 0,x 20, f(x) = 20, x =0, 0, x =20. Det är uppenbart att lösningen är x =20, men en numerisk metod kommer inte kunna hitta den roten.den numeriska svårigheten är ganska tydlig i det här enkla fallet.den kan dock vara betydligt mer subtil i mer komplicerade problem.speciellt svår är frågan om rättställdhet för partiella differentialekvationer där även till synes enkla ekvationer kan vara icke rättställda.i det fallet är både in- och utdata funktioner snarare än skalära tal eller vektorer. 4 Linära ekvationssystem Vi gör nu en noggrannare störningsanalys för linära ekvationssystem x = b. (1) Här är högerledet b indata och lösningen x utdata.vi antar att är icke-singulär.som tidigare utgår vi från att b är behäftat med ett litet fel ε b och att den resulterande lösningen då får ett litet fel ε x.istället för (1) löser vi därför x = b, (2) där x = x+ε x och b = b+ε b.notera att data b, x och felen ε b, ε x nu är vektorer och inte skalära tal.för att mäta felen använder vi oss därför av normer, istället för absolutbelopp som tidigare. Vektor- och matrisnormer beskrivs kort i ppendix nedan.genom att subtrahera (2) från (1) får vi först ε x = ( x x) = b b = ε b, och eftersom inte är singulär, ε x = 1 ε b ε x = 1 ε b. 3
Olikhet (6) i ppendix ger då ε x 1 ε b. (3) Vi går nu tillbaka till (1) och använder olikheten (6) igen, vilket efter division med b x blir b = x x, 1 x b. (4) Tillsammans ger (3) och (4) en övre begränsning på hur det relativa felet i indata kan förstärkas i utdata, ε x 1 ε b x b. Notera att ε x / x och ε b / b är relativfelet i utdata respektive indata.faktorn framför ε b / b kallas konditionstalet för matrisen och betecknas K, K() := 1. Konditionstalet visar hur det relativa felet i indata maximalt kan förstoras i utdata.speciellt får vi för de relativa felgränserna R x och R b, R x = K()R b. När konditionstalet är litet säger vi att matrisen är välkonditionerad.när konditionstalet är stort är matrisen illa konditionerad.matrisen är då nästan singulär. Några kommentarer: 1.Konditionstalet beror egentligen på val av norm.i praktiken spelar valet dock ingen större roll. 2.I det speciella fallet när är symmetrisk kan man också uttrycka K() (i 2-norm) med hälp av egenvärdena till.enligt uttrycket för 2-normen som ges i ppendix är 2 = max λ ( T ) = max λ ( 2 ) = max λ (). På samma sätt ges 1 2 = max λ ( 2 ) = max λ () 1. Därför är K() = λ max λ min, vilket även visas i Quarteroni/Saleri, s 117 på ett lite annat sätt. 3.I Matlab är R b minst lika med 10 15 pga avrundningsfelen.om K() > 10 15 blir därför lösningarna synnerligen opålitliga. Se tex ENM 3.4, 3.5 samt uppgift 3 i lab 1 för exempel på hur konditionstal används. 4
Vektor- och matrisnormer För att mäta storleken av en vektor eller matris använder vi normer.det kan ses som en generalisering av absolutbeloppet för skalära tal.normen av vektorn x skrivs x.flera olika val av normer är möliga för vektorer.vanligast är den euklidiska normen (även kallad 2-normen), n x 2 := x 2, x =(x 1,x 2,...,x n ) T R n, =1 som mäter längden av x i R n.ibland används också lla normer uppfyller 1. x > 0 för alla vektorer x 0, 2. αx = α x för alla skalära tal α R, 1-normen x 1 := n =1 x, max-normen x := max x. 3. x + y x + y för alla vektorer x och y (triangeolikheten). (Dessa tre villkor kan även ses som axiomen vilka definierar en norm i ett vektorrum.) Matrisnormer definieras vanligtvis i termer av vanliga vektornormer enligt := max x 0 x x. (5) Notera att normerna i högerledet båda är vektornormer.för vare vektornorm får man således en motsvarande matrisnorm.låt a i vara elementet på rad i och kolumn i.man kan visa att 1-, 2-, och max-normen ger fölande uttryck för matrisnormerna: 1-normen 1 = max n i=1 a i, (dvs max kolumnsumma ), 2-normen 2 = max λ ( T ), (där λ ( T ) är egenvärde till matrisen T ), max-normen = max i n =1 a i, (dvs max radsumma ). Matrisnormerna definierade enligt (5) uppfyller automatiskt punkterna 1-3 ovan.efter multiplikation med x på båda sidor ger dessutom (5) denna viktiga olikhet: x x. (6) 5