n Kap 4.1, 4.2, (4.3), 4.4, 4.5 n Numerisk beräkning av derivata med n Felen kan t ex vara avrundningsfel eller mätfel n Felet kan mätas

Relevanta dokument
Datoraritmetik. Från labben. Från labben. Några exempel

Teknisk Beräkningsvetenskap I Tema 1: Avrundning och populationsmodellering

7 november 2014 Sida 1 / 21

Sammanfattninga av kursens block inför tentan

Föreläsning 8: Aritmetik och stora heltal

LAB 1. FELANALYS. 1 Inledning. 2 Flyttal. 1.1 Innehåll. 2.1 Avrundningsenheten, µ, och maskinepsilon, ε M

Fel- och störningsanalys

Beräkningsvetenskap och Matlab. Vad är MATLAB? Vad är MATLAB? Användningsområden. Vad är MATLAB? Grunderna i Matlab. Beräkningsvetenskap == Matlab?

Feluppskattning och räknenoggrannhet

Fel- och störningsanalys

Tentamen i Beräkningsvetenskap I, DV, 5.0 hp, OBS: Kurskod 1TD394

a n β n + a n 1 β n a 0 + a 1 β 1 + a 2 β , x = r β e ; 0.1 r < 1; e = heltal.

Kapitel 2. Feluppskattning och räknenoggrannhet

Tentamen i Beräkningsvetenskap II, 5.0 hp,

a = a a a a a a ± ± ± ±500

Komplettering till kursboken i Numeriska beräkningar. 1 Beräkningsfelsanalys. 1.1 Uttryck med kancellation

Föreläsning 8: Aritmetik och stora heltal

Datorsystemteknik DVG A03 Föreläsning 3

F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Datorer i system! Roger Henriksson!

Beräkningsvetenskap introduktion. Beräkningsvetenskap I

F2 Datarepresentation talbaser, dataformat och teckenkodning

Flyttal kan också hantera vanliga tal som både 16- och 32-bitars dataregister hanterar.

Digital- och datorteknik

DOP-matematik Copyright Tord Persson. Gränsvärden. Uppgift nr 10 Förenkla bråket h (5 + h) h. Uppgift nr 11 Förenkla bråket 8h + h² h

Välkomna till Numme och MATLAB, 9 hp, för Materialdesign och Energi&Miljö, årskurs 2

f(x + h) f(x) h f(x) f(x h) h

Lösningsförslag Tentamen i Beräkningsvetenskap I, 5.0 hp,

Ordinära differentialekvationer,

Prov 1 2. Ellips 12 Numeriska och algebraiska metoder lösningar till övningsproven uppdaterad a) i) Nollställen för polynomet 2x 2 3x 1:

Beräkningsvetenskap introduktion. Beräkningsvetenskap I

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

2D1240 Numeriska metoder gk II för T2, VT Störningsanalys

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Föreläsning 8: Aritmetik I

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Envariabelanalys: Vera Koponen. Envariabelanalys, vt Uppsala Universitet. Vera Koponen Föreläsning 5-6

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

Blandade uppgifter om tal

Institutionen för Matematik. F1 - Linjär algebra och numerisk analys, TMA671 Svar till övningar i Heath s bok och extraövningar

Gruppuppgifter 1 MMA132, Numeriska metoder, distans

Tentamen i Beräkningsvetenskap I och KF, 5.0 hp,

IE1205 Digital Design: F6 : Digital aritmetik 2

Del I: Lösningsförslag till Numerisk analys,

Tentamen i: Beräkningsvetenskap I och KF

8 + h. lim 8 + h = 8

TANA19 NUMERISKA METODER

4 Fler deriveringsregler

Tentamen i Beräkningsvetenskap II, 5.0 hp,

M0038M Differentialkalkyl, Lekt 7, H15

TMA226 datorlaboration

Tentamen i Beräkningsvetenskap I (nya versionen), 5.0 hp, Del A

Tekniska beräkningar. Vad är tekn beräkningar? Vad är beräkningsvetenskap? Informationsteknologi. Informationsteknologi

Maclaurins och Taylors formler. Standardutvecklingar (fortsättning), entydighet, numerisk beräkning av vissa uttryck, beräkning

Varning!!! Varning!!!

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Tisdag v. 2. Speglingar, translationer och skalningar

Fallstudie: numerisk integration Baserad på läroboken, Case Study 19.9

LAB 3. INTERPOLATION. 1 Inledning. 2 Interpolation med polynom. 3 Splineinterpolation. 1.1 Innehåll. 3.1 Problembeskrivning

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Sammanfattningar Matematikboken X

översiktskurs (5DV031)

Linjära ekvationssystem

Repetitionsuppgifter i Matematik inför Basår. Matematiska institutionen Linköpings universitet 2014

Introduktionsföreläsning. Outline. Beräkningsvetenskap I. Sara Zahedi Hanna Holmgren. Institutionen för Informationsteknologi, Uppsala Universitet

Introduktionsföreläsning

Block 2: Lineära system

Iteration while-satsen

Interpolation Modellfunktioner som satisfierar givna punkter

Numeriska metoder för ODE: Teori

Sekant och tangent Om man drar en rät linje genom två punkter på en kurva får man en sekant. (Den gröna linjen i figuren).

Block 1 - Mängder och tal

Numerisk Analys, MMG410. Lecture 1. 1/24

Studieplan och bedömningsgrunder i Matematik för åk 7 Moment Bedömningsgrunder för uppnåendemålen Begreppsbildning Tal och räkning

kl Tentaupplägg

Talmängder N = {0,1,2,3,...} C = {a+bi : a,b R}

Linjär algebra med tillämpningar, lab 1

Laboration 3. Funktioner, vektorer, integraler och felskattning

Institutionen för Matematik TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA DAG: Torsdag 28 aug 2008 TID:

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Approximation av funktioner

Datorsystem. Övningshäfte. Senast uppdaterad: 22 oktober 2012 Version 1.0d

Lösningsförslag, preliminär version 0.1, 23 januari 2018

Binär addition papper och penna metod

Arbetsblad 1:1. Tiondelar på tallinjen 0,1 0,5 0,9 0,2 0,8 0,3 0,8 1,1 1,5 1,6 2,1 2,4 1,1 1,4 2,6 3,2 3,8

Arbetsblad 1:1. Tiondelar på tallinjen 0,9 1,1 0,8. 6 Sätt ut pilar som pekar på talen: A = 0,3 B = 0,8 C = 1,4

Arbetsblad 1:1. Tiondelar på tallinjen. 6 Sätt ut pilar som pekar på talen: A = 0,3 B = 0,8 C = 1,4

Föreläsning 3. Iteration while-satsen

Enklare matematiska uppgifter

Funktioner: lösningar

Beräkningsvetenskap. Vad är beräkningsvetenskap? Vad är beräkningsvetenskap? Informationsteknologi. Informationsteknologi

Dra streck. Vilka är talen? Dra pil till tallinjen. Skriv på vanligt sätt. Sätt ut <, > eller =

Denna uppdelning är ovanlig i Sverige De hela talen (Både positiva och negativa) Irrationella tal (tal som ej går att skriva som bråk)

Datoraritmetik. Binär addition papper och penna metod. Binär subtraktion papper och penna metod. Binär multiplikation papper och penna metod

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Facit Tentamen i Beräkningsvetenskap I, STS ES W K1

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 2

Laboration 3. Funktioner, vektorer, integraler och felskattning

Facit Tentamen i Beräkningsvetenskap I, STS ES W K1

Transkript:

Datoraritmetik Beräkningsvetenskap I/KF Kursboken n Kap 4., 4., (4.3), 4.4, 4. n I kap 4.3 används Taylorutvecklingar. Om du ännu inte gått igenom detta i matematiken, kan du oppa över de delar som beandlar just detta n I kursboken används begreppet trunkeringsfel, vilket är detsamma som diskretiseringsfel Från labben Från labben n Två uvudtyper av fel: diskretiseringsfel (=trunkeringsfel) oc avrundningsfel n Olika sätt att mäta fel: relativt fel, absolut fel n Begrepp: ε M (maskinepsilon), Inf, NaN, overflow, underflow, diskretisering n Beräkningen A - A blev inte riktigt enetsmatrisen n Det lilla försvinner i det stora >> e-0 + e-3 ans =.00000000000000e-0 >> e-0 + e-36 ans =.000000000000000e-0 n Numerisk beräkning av derivata med f( x ) f( x) y + Några exempel Hur mäter man fel? Uttryck exakt i Matlab cos( π ) 0 6.3e- 07 0.4 0. + 0.08 0.3878e- 07 0.08 + 0.4 0. 0 0 A A I Se lab n Det exakta talet betecknas x Samma tal men som inneåller fel betecknas n Felen kan t ex vara avrundningsfel eller mätfel n Felet kan mätas Absolut fel: Relativt fel: n Om x är en vektor blir det istället Absolut fel: kallas för norm. Relativt fel: x x ˆx

Hur mäter man fel? Exempel från labben: n Du köper varmkorv en lördagkväll. Den kostar kr, men av misstag betalar du 0 kr. Absolut fel: 0 = 0 Relativt fel: 0.333 = 33.3% n Du köper en ny bil för 9999 kr, men betalar 300000 kr oc bryr dig inte om växeln. Absolut fel: 9999 300000 = Relativt fel: 0.000066 0.007% 9999 n Man förlorar lika mycket, men det känns sannolikt mindre i det andra fallet. Relativt fel upplevs ofta som mer korrekt än absolut fel Lagring av tal n Det finns oändligt många reella tal på den matematiska tallinjen n Datorns minne är ändligt oc tallinjen i datorns minne består av ändligt antal tal n Det måste finnas ett system för att representera tal i datorns minne matematisk tallinje Datorns tallinje Representation av tal i dator n Alla tal lagras i ett ändligt antal bitar i minnet, vanligen i binär form. Exempel: Exempel (bas β = 0) n Reella talet x=0.06666 kan skrivas 0 0 0 0 betyder (0000) = 0 7 + 6 + 0 + + 4 + 3 + + 0 + 0 0 = (9) 0 n Lagring i dator Heltal Inga problem. Heltal upp till en viss storlek (beroende på antalet bitar) lagras exakt. Reella tal Kan inte lagras exakt utan måste avrundas. Representationen av reella tal kallas flyttalsrepresentation oc talen kallas flyttal. x = 0.06666 = 6.6666 0 - = = (6 0 0 + 6 0 - + 6 0 - + 6 0-3 + ) 0 - d 0 d d d 3 β kallas mantissa m bas β Observation: 0 d i < 0 oc m < 0 Flyttal flytande decimalpunkt Slutsats n Reellt tal x kan skrivas i exakt representation x = m β e där β är den bas som används, e är exponenten oc m är mantissan. n För mantissan gäller att m = ±(d 0.d d ) = = ±(d 0 β 0 + d β - + d β - + ), 0 d i < β n Om man flyttar decimalpunkten så att första termen d 0 0 kallas detta normaliserad form. Då blir m < β n Hur ska reella talet kunna representeras i datorns begränsade antal bitar? Exponenten kan lagras exakt upp till en viss storlek Mantissa måste kapas på något sätt eftersom oändligt antal siffror görs genom avrundning n När det reella talet x avrundas oc lagras i datorn görs det som flyttal, betecknas fl(x) n Exemplet igen Antag plats för 4 tal i datorns mantissa oc bas 0 x=0.06666 ger fl(x) = 6.667 0 - betyder (6 0 0 + 6 0 - + 6 0 - + 7 0-3 ) 0 -

Slutsats n Ett flyttal fl(x) kan skrivas (i normaliserad form) där fl(x) = ˆm β e, ˆm = ±(d 0.d d,,d p ) d i < β, d 0 0, l e u talet 0 representeras på särskilt sätt n Ett flyttalssystem karaktäriseras av (β,p,l,u) p kallas precision, mantissan rundas av Exponenten e är eltal oc lagras exakt inom undre oc övre gräns, l oc u. ˆm n Lagras i minnet: oc e. β är fixt oc lagras ej. Vanligen β = (binära tal) (β,p,l,u) = (,3,0,) Mantissan ˆm kan anta följande positiva värden (motsvarande för negativa tal): (.00) = 4 (.0) = (.0) = 6 (.) = 7 För olika värden på exponenten e fås då e = 0 4 =.0 =. 6 =. 7 =.7 min e = 8 = 0 =. = 3 4 = 3. e = 6 = 4 0 = 4 = 6 8 = 7 max 0 3 4 6 7 + + + + + + + + + e=0 underflow e= e= overflow Flyttalen ej jämnt representerade större tal ger glesare representation När ett reellt tal ska lagras i datorns minne, avrundas det oc amnar på närmaste tal på tallinjen. Ex) talet.6 blir fl(.6) = 6.0 Avrundningsregler, t ex:,, 3, 4 avrundas nedåt 6,7, 8, 9 avrundas uppåt till närmaste jämnt tal (inkl 0) 0 3 4 6 7 + + * + + + + * + + * + Några tester. + 4.4: fl( fl(.) + fl(4.4) ) = fl(.0 + 4.0) = fl(6.0) = 6.0 Exakt: 6.6 Absolut fel: 6.6-6.0 = 0.6 Relativt fel: 6.6-6.0 / 6.6 = 0.0909 = 9.09% 0 3 4 6 7 (.3 + 4.).6: fl( fl( fl(.3) + fl(4.) ) - fl(.6) ) = = fl( fl(. + 4.0).) = fl( fl(6.).) = = fl(6.0-.) = fl(4.) = 4.0 Exakt: 4.8 Absolut fel: 4.8-4.0 = 0.8 Relativt fel: 4.8-4.0 / 4.8 0.67 = 6.7% 0 3 4 6 7.3 + (4..6): fl( fl(.3) + fl(fl(4.) - fl(.6)) ) = = fl(. + fl(4.0 -.)) = fl(. + fl(.)) = = fl(. +.) = fl(.0) =.0 Exakt: 4.8 Absolut fel: 4.8 -.0 = 0. Relativt fel: 4.8 -.0 / 4.8 0.04 = 4.% Samma beräkning, men i annan ordning gav olika svar 3

0 3 4 6 7 3.3 + (4.6 -.): fl( fl(3.3) + fl(fl(4.6) - fl(.)) ) = = fl( 3. + fl(.0 -.) ) = = fl( 3. + fl(3.7) ) = fl(3. + 4.0) = Inf (pga overflow) Exakt: 6.6 n Om man amnar under min kan man släppa på normaliseringskravet (att d 0 0) Mantissan ˆm kan då anta följande positiva värden (0.0) = (0.0) = (0.) = 3 4 4 0 + + + subnormala tal n Ger en liten extraskala under min-gränsen, kallas subnormalt tal n I Matlab: realmin anger minsta normaliserade tal, går alltså att itta mindre subnormala tal Hur stort kan felet bli? Vi tittar först enbart på mantissan: Maximalt fel i mantissan då talet x ligger exakt mitt emellan två tal i ˆm. Mantissan består i exemplet av,.,.,.7. Maximalt fel blir då 0., dvs m - 0. Allmänna fallet gäller Stämmer det för vårt flyttalssystem? Test: ˆ (3 ) m m = 0. Stämmer! ˆm m mˆ β ( p ) Hur stort kan felet bli? Felet i ela talet fl(x) : n Absoluta felet fl(x) x = ˆmβ e mβ e = ( ˆm m)β e β ( p ) β e Felet beror av storleken på x: glesare representation ögre upp på flyttalslinjen. n Relativa felet fl(x) x = ˆmβ e mβ e β ( p ) e β x m β e m β e β p Beror inte på talets storlek! 0 m β = Hur stort kan felet bli? Felet i ela talet fl(x): n Alltså, vid avrundning gäller fl(x) x ε x M, där ε M = β p Talet ε M kallas maskinepsilon oc är en maskinberoende konstant n Maskinepsilon kan även definieras som det minsta positiva tal ε så att fl(+ε)> n I Matlab ger kommandot eps maskinepsilon, se lab Var finns maskinepsilon i flyttalssystemet? 0 3 4 6 7 underflow ε M underflow n ε M är maximala relativa felet mellan ett tal x oc närmaste tal på tallinjen (dvs storleken på relativt storleken på talet x) n Ju tätare tallinje ju mindre ε M n ε M ar inget med underflow eller overflow, dvs ur stora/små tal som kan representeras, att göra 4

Avrundningsfel i beräkningsprocesser? n Maskinepsilon anger maximalt fel vid lagring av ett tal n Beräkningsprocesser, t ex Gausselimination eller A - A inneåller mängder av beräkningar oc lagringar, inklusive beräkning med tal som tidigare avrundats den sammanlagd effekten av felen brukar vara lite sämre än ε M n Vanligen är avrundningsfelen små i förållande till alla andra fel (diskretiseringsfel, mätnoggrannet etc) Kancellation n Problem vid subtraktion av nästan lika tal: Ex) Antag två tal med blandat avrundningsskräp långt ute i decimalerna. betecknar är avrundningsskräp fl(. 43 8 -. 336 79) = = fl(0.00 000 ) =. 0 -k Avrundningsfel ar nästan elt tagit över. Detta kallas kancellation. Kancellation n Exempel) f( x ) f( x) Från lab: y + p p + q Stora fel när blir litet Stora fel när q blir litet n Kan (i vissa fall) lösas genom att använda andra formler eller omskrivning f( x ) f( x ) y + fungerar bättre q (uttrycket ovan förlängt med p p konjugatet) + q Några konsekvenser n Ej meningsfullt med tester av typen if (x == y) end om x oc y är flyttal (dvs reella tal). Istället if abs(x-y)< tol eller if abs(x-y)< tol*abs(x) n Undvik subtraera nästan lika stora tal n Summera om möjligt termer i växande ordning (t ex när man summerar serier) n Under 60- oc 70-talen ade varje datortillverkare sitt eget flyttalssystem n En flyttalsstandard utvecklades under tidigt 80-tal oc följdes av tillverkare som Intel oc Motorola n Utvecklat av arbetsgrupp os Institute for Electrical and Electronics Enngineerings, IEEE (uttalas I-triple-E ) n IEEE-standarden ar tre viktiga krav: Konsistent flyttalsrepresentation Korrekt avrundningsaritmetik Konsistent antering av exceptionella situationer n Tre standartyper av flyttal: Single precision (enkel precision) Double precision (dubbel prec) Extended precision (utökad prec) n IEEE enkel precision ± e e e 8 d 0 d d d tecknet bit, exponent 8 bitar, mantissa 3 bitar => totalt 3 bitar n IEEE dubbel precision ± e e e d 0 d d d tecknet bit, exponent bitar, mantissa bitar => totalt 64 bitar

Hidden bit n Beöver d 0 lagras? Nej, Gäller alltid att d 0 =. Man vinner då en bit, en s k idden bit. n Får istället IEEE enkel precision IEEE dubbel precision ± e e e d d d ± e e e 8 d d d 3 n (β,p,l,u) i IEEE-standard IEEE single (,4,-6,8) IEEE double (,3,-0,04) Obs utnyttjat idden bit! n Maskinepsilon blir IEEE single ε M = -3. 0-7 IEEE double ε M = -. 0-6 IEEE extended ε M = -63. 0-9 Diskretiseringsfel n IEEE definierar fem olika exceptions Invalid operation, t ex 0, 0 => ges värdet NaN (Not a Number) 0 Division med 0 => sätt till ± (dvs Inf i Matlab) overflow => sätt till ± eller största flyttal underflow => sätt till 0 (eller subnormalt tal) Korrekt avrundning av reella tal (inte exceptionell situation egentligen) n För den som vill veta mer ttp://en.wikipedia.org/wiki/ieee_floating-point_standard ttp://www.validlab.com/goldberg/paper.pdf n Förutom avrundningsfel finns även diskretiseringsfel Exempel) Numerisk derivering från lab f( x ) f( x) y + När blir mindre borde approximationen bli bättre mindre diskretiseringsfel Här dominerar avrundningsfel Här dominerar diskretiseringsfel Diskretiseringsfel Numerisk derivering Tolkning: n Det finns flera formler för derivering: n För stora dominerar diskretiseringsfelet, man kan bortse från avrundningsfelet n För små dominerar avrundningsfelet n Avrundningsfelet blir stort i det är fallet pga kancellation i täljaren för små division med litet tal förstärker felet i täljaren n Avrundningsfelet uppför sig kaotiskt, medan diskretiseringsfelet ger en jämn oc snygg kurva y y f (x+) f (x) f (x+) f () Framåtdifferens (se lab) Centraldifferens (se lab) f (x+)+8 f (x+) 8 f ()+ f () y Fempunktsformel 6

Numerisk derivering Samma test som i labben: Diskretiseringsfel oc avrundningsfel Sammanfattning Vilken metod ska man välja? Varför? n Diskretiseringsfelet spelar vanligen den dominerande rollen. Vanligt att man elt kan bortse från avrundningsfelen. n Avrundningsfelet får konsekvenser i vissa fall, t ex vid kancellation n Exakt noll existerar inte i praktiken för flyttal. Diverse avrundningar gör att tal som kan anses vara lika ändå skiljer sig ute i decimalerna n Ett relativt fel i sorleksordningen ε M efter beräkning med flyttal är enbart slumpmässigt skräp 7