Linköpings Universitet Kompletterande material Matematiska institutionen/beräkningsmatematik 5 februari 203 Ingegerd Skoglund IT Termin 6 Komplettering till kursboken i Numeriska beräkningar Beräkningsfelsanalys När vi gör beräkningar i dator/räknedosa sker avrundningar av resultatet efter varje beräkning. Vi vet att när vi lagrar ett tal får vi ett relativt fel som µ, där µ är avrundningsenheten för vårt räkneverktyg, se Sats 2.5. i boken. Det samma gäller då vi gör en beräkning. Det relativa felet efter en beräkning addition, subtraktion, multiplikation, division eller upphöjt blir också µ, se Sats 2.6.. Beräkning av standardfunktioner ska också ge ett resultat så att relativa felet är mindre än µ. I dubbel precision är värdet på µ. 0 6. Om vi antar att avrundningsfelen som uppstår under beräkningarna är oberoende av varandra, kan vi använda maximalfelsuppskattningen för uppskatta en övre gräns för felet från alla beräkningarna i ett uttryck. Låt oss titta på ett exempel.. Uttryck med kancellation Vi vill, för till beloppet små värden på x, beräkna uttrycket +x f =. x Här måste vi börja med att beräkna +x, dra roten ur det värdet, subtrahera och slutligen dividera med x.vid beräkning av andra uttryck går det ibland att göra beräkningarna i olika ordning och beräkningsfelsanalysen ska då göras på det sätt som beräkningarna görs. Om vi inför variabelnamn på varje beräkning får vi a = +x, b = a, c = b+ och d = c/x, alltså c {}}{ b {}}{ f = +x /x. a d och vi kan uttrycka f som f = a x = b x = c x = d. Som sagts ovan vet vi att det gäller för felet efter varje beräkning att a a µ och därmed a µ a
och på samma sätt för b, c och d. Dessa beräkningsfel fortplantar sig till f med hjälp av maximalfelsuppskattningen: f < f a a + f b b + f c c + f d d Med hjälp av är det lätt att utföra de partiella deriveringarna och vi får f < 2 ax a + x b + x c + d. Stoppa nu in att a µ a, b µ b, osv. f < 2 ax µa + x µb + x µc + µd. Nu ska vi göra en uppskattning av storleken på detta fel. Hur man går vidare kan variera från fall till fall men varje term ska uppskattas var för sig. Här kan vi notera i tredje termen att c/x = d och få f < 2 ax µa + x µb + 2 µd. I andra fall utnyttjar man direkt att ett litet x kan försummas då det adderas till något stort, t.ex. +x +x +x 2 2+x 2 sinx x eftersom sinx = x x3 +Ox 5 3! cosx eftersom cosx = x2 +Ox 4 2! Vi approximerar f < 2 x µ + x µ + 2 µd =.5 x µ + 2 µd. Vi behöver också veta ett ungefärligt värde på d, eller f som ju är samma sak, och det kan ofta vara svårare att se direkt. Att använda approximationen +x skulle ge d /x 0 men d 0.5, se nedan. Om vi däremot använder två termer i serieutvecklingen +x = +0.5x+Ox 2 blir uppskattningen korrekt. Ett annat ofta enklare sätt är att göra en omskrivning av uttrycket. Genom att förlänga med konjugatet ser vi att ett matematiskt ekvivalent uttryck är g = +x +x+ x +x+ = +x x +x+ = +x+. 2 Då x kan vi approximera +x och få f = g + f <.5 x µ + 2 µ 0.5. 2 = 0.5 och
Om vi nu jämför storleken på de två termerna har vi återigen en mycket stor term den första och en mycket liten term den andra. Den lilla termen kan därför försummas och uppskattningen av felet från beräkningarna blir R B = f <.5 x µ. Vi ser att beräkningsfelet växer då x minskar. Eftersom värdet på f blir ungefär 0.5 för alla små x så kommer resultatet av beräkningen att få ett stort relativt fel. Detta var förväntat eftersom det är kancellation i uttrycket för f. Vi kan uppskatta det relativa beräkningsfelet R B f = f f <.5 x µ 0.5 = 3 x µ. Man måste komma ihåg att relatera det absoluta felet till närmevärdet. Om vi hade haft R B < µ och f x så skulle det relativa felet växa och visa att f får dålig noggrannhet då x..2 Uttryck utan kancellation Omskrivningen i 2 medför att kancellationen i f försvinner. En beräkningsfelsanalys borde visa att uttrycket g ger ett bättre resultat. g = +x + a b c } d, g = a+ = b+ = c = d. g < g a a + g b b + g c c + g d d < 2 a a+ 2µa + b+ 2µb + c µc + µd 2 Approximera a, b, c 2, d 0.5 och vi får R B g = g < µ 2 + 2 + + 2 + 2 2 + 0.5 =.375µ. 2 Det relativa beräkningsfelet R B g g = g g <.375 µ 0.5 = 2.75 µ håller sig konstant, oberoende av x. Eftersom varje beräkning kan ge ett relativt fel som är högst µ så får vi god noggrannhet i värden beräknade med g-utrycket. 3
2 Fel vid beräkning av en serie N Låt S = a n vara en konvergent serie som approximeras med S N = a n. Hur trunkeringsfelet, R T, eller resttermen, R N, R T = R N = n=n+ uppskattas beror på om termerna är positiva eller har alternerande tecken. Detta finns i N boken, sid 44-48. Vi ska här titta på hur fel från beräkningen av S N = a n kan påverka resultatet. Trunkeringsfelet antas då vara mycket litet. a n 2. Beräkning av summan Vi ska beräkna S N = N a n = a 0 +a +a 2 +a 3 + +a N +a N och något förenklat kan vi tänka oss att termerna, a n, beräknas och avrundas och får då ett relativt fel som är högst µ. Jag kallar detta R B,term. När termerna adderas ihop kommer vi att få ett fel vid summeringarna, R B,sum. 2.2 Beräkningsfel från avrundning av termerna Om varje term får ett relativt fel µ gäller a n a n µ och a n < µ a n. Vid summering gäller att de absoluta felet adderas och det ger R B,term = S N a 0 + a + a 2 + + a N µ a 0 + a + a 2 + + a N Om termerna är positiva kan beloppstecknen i sista ledet tas bort och vi får R B,term = µ S N, alltså ett relativt fel µ. Om serien har alternerande tecken kan man få ett betydligt större relativt fel eftersom det är beloppen av termerna som ska adderas i feluppskattningen. 4
2.3 Beräkningsfel från additionerna En beräkningsfelsanalys på summeringen, +a 2 S N = a 0 +a +a 3 + +a N +a N s } {{} } s 2 {{ } s N på samma sätt som i avsnitt, ger R B,sum = S < S s = s + S s 2 = s +a 2 + +a N = s 2 +a 3 + +a N = s 2 + + S s N = s N. Varje delsumma, s n, beräknas med ett relativt fel som är högst µ så vi får R B,sum < s + s 2 + + s N µs + µs 2 + + µs N och R B,sum a 0 +a + a 0 +a +a 2 + + a 0 +a +a 2 + +a N µ. Triangelolikheten ger R B,sum a 0 + a + a 0 + a + a 2 + + a 0 + a + a 2 + + a N µ = N a 0 +N a +N a 2 +N 2 a 3 + +2 a N + a N µ. Vi ser att att det det lämpligt att låta a 0 och a vara de minsta värdena, dvs addera termerna i växande ordning för att minimera beräkningsfelet. Anm. : Om termerna har alternerande tecken går det att härleda en mindre övre gräns för R B,sum. Anm. 2: Ungefär samma resultat fås i boken sid. 34, fast härlett på ett annat sätt. 5
3 Differentialekvationer: stabilitet för system För testproblemet y = λy, y0 = finns stabilitetsvillkoren för Eulers metod och trapetsmetoden härledda på sid 330-33 i boken. Här ska vi titta på y = Ay där vi låter A vara en 2 2-matris med negativa egenvärden. Eulers metod ger y n+ = E +hay n E är enhetsmatrisen och vi får efter n steg y n = E +ha n y 0. Egenvärdesfaktorisera A = XΣX, där Σ = λ λ 2 och X = x x 2. Här är λ,λ 2 egenvärdena och x,x 2 är egenvektorerna kolumnvektorer. Vi får E +ha = E +hxσx = XE +hσx och y n = E +ha n y 0 = XE +hσx} {{ X} E +hσx XE +hσx y 0 = E n XE+hΣ n X +hλ y 0 =X X +hλ +hλ y 0 = X n 2 +hλ 2 n X y 0 Om y 0 = ȳ 0 +ǫ får vi en lösning med två komponenter: +hλ y n = X n +hλ 2 n X +hλ ȳ 0 +X n dvs den rätta lösningen samt en parasitlösning. +hλ 2 n X ǫ, Lösningen måste vara begränsad parasit-lösningen får inte växa så för stabilitet krävs att +hλ i <, i =,2 dvs h < 2 λ min. Vi får så eftersom +hλ i < innebär att < +hλ i <. Vänstra olikheten ger 2 < hλ i och h < 2 λ i. Högra olikheten ger hλ i < 0 och h > 0. 6