Teknisk Beräkningsvetenskap I Tema 1: Avrundning och populationsmodellering

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

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

Föreläsning 8: Aritmetik och stora heltal

7 november 2014 Sida 1 / 21

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

Feluppskattning och räknenoggrannhet

Kapitel 2. Feluppskattning och räknenoggrannhet

TANA19 NUMERISKA METODER

Fel- och störningsanalys

Föreläsning 8: Aritmetik och stora heltal

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

IE1205 Digital Design: F6 : Digital aritmetik 2

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

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

Fel- och störningsanalys

Sammanfattninga av kursens block inför tentan

F2 Datarepresentation talbaser, dataformat och teckenkodning

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

Tentamen i Beräkningsvetenskap II, 5.0 hp,

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

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

Digital- och datorteknik

Beräkningsvetenskap introduktion. Beräkningsvetenskap I

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

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

Datorsystemteknik DVG A03 Föreläsning 3

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

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

Beräkningsvetenskap introduktion. Beräkningsvetenskap I

Tentamen i: Beräkningsvetenskap I och KF

Analys av elektriska nät med numeriska metoder i MATLAB

Föreläsning 8: Aritmetik I

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:

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

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Teknisk Beräkningsvetenskap I Tema 3: Styvhetsmodellering av mjuk mark med icke-linjära ekvationer

Introduktionsföreläsning

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

Fö4: Kondition och approximation. Andrea Alessandro Ruggiu

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

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

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

Facit Tentamen i Beräkningsvetenskap I (1TD393) STS ES W K1

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

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

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Interpolation Modellfunktioner som satisfierar givna punkter

Ordinära differentialekvationer,

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

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

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

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

Introduktionsföreläsning. Kursens innehåll. Kursens upplägg/struktur. Beräkningsvetenskap I

ELLER (fyll bara i om du saknar tentamenskod): Datum: 32 maj Bordsnummer: Kontrollera att du fått rätt tentamensuppgifter

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

Varning!!! Varning!!!

2 Matrisfaktorisering och lösning till ekvationssystem

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

Tal och polynom. Johan Wild

Introduktionsföreläsning

Validering av flyttalsberäkningar och. ForSyDe

Block 2: Lineära system

Block 1 - Mängder och tal

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

Bisektionsalgoritmen. Kapitel Kvadratroten ur 2

t Möjliga lösningar? b

Linjära ekvationssystem

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

DIGITALA TAL OCH BOOLESK ALGEBRA

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

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

Inledning. Statistisk Programmering. UNIVAC 1107 (sextio- och sjuttiotal) Hålkorten. Att använda dator

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Block 1 - Mängder och tal

F2 Binära tal EDA070 Datorer och datoranvändning

Maskinorienterad Programmering /2011. Maskinorienterad Programmering 2010/11. Maskinnära programmering C och assemblerspråk

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

Numerisk Analys, MMG410. Lecture 1. 1/24

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Repetitionsuppgifter inför Matematik 1. Matematiska institutionen Linköpings universitet 2013

Shannon-Fano-Elias-kodning

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)

Tentamen i Beräkningsvetenskap II, 5.0 hp,

SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2

FÖRSÄTTSBLAD TILL TENTAMEN. ELLER (fyll bara i om du saknar tentamenskod): Datum: 16 januari Bordsnummer:

Linjära ekvationssystem

Gruppuppgifter 1 MMA132, Numeriska metoder, distans

Föreläsning 3.1: Datastrukturer, en översikt

Ordinära differentialekvationer,

TANA17 Matematiska beräkningar med Matlab

Numerisk Analys, MMG410. Lecture 13. 1/58

Mattias Wiggberg Collaboration

Linköpings Tekniska Högskola Instutitionen för Datavetenskap (IDA) Torbjörn Jonsson, Erik Nilsson Lab 2: Underprogram

Matematik: Beräkningsmatematik (91-97,5 hp)

Numerisk Analys, MMG410. Lecture 12. 1/24

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Tentamen i Beräkningsvetenskap II, 5.0 hp,

NUMPROG, 2D1212, vt Föreläsning 9, Numme-delen. Stabilitet vid numerisk behandling av diffekvationer Linjära och icke-linjära ekvationssystem

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print

Mängder och kardinalitet

Transkript:

Teknisk Beräkningsvetenskap I Tema 1: Avrundning och populationsmodellering Eddie Wadbro 5 november 2014 Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (1 : 21) Innehåll Datoraritmetik och flyttal Standard flyttalsformatet: IEEE 754 binary 64 Avrundningsenheten eller maskinepsilon Avrundningsfelsanalys Varningar, konsekvenser, samt tumregler för numeriska beräkningar I laborationen ser vi hur avrundningsfel kan påverka resultatet vid simulering av en enkel populationsmodell Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (2 : 21) Felkällor Att approximera lösningar till matematiska problem med hjälp av datorer inducerar diverse fel Viktigt att skilja mellan diskretiseringsfel och avrundningsfel I denna kurs tittar vi inte på fel i indata/mätfel, vilka ofta är oundvikliga... Ex: Datorrepresentation av en bild Diskretiseringsfel: en spatiellt kontinuerlig bild rastreras till pixlar (exempelvis 800 600) Avrundningsfel: endast ett fixt antal (exempelvis 2 24 vilket är ungefär 16.8 miljoner) färger att välja mellan för varje pixel Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (3 : 21)

Felkällor Vanligtvis dominerar diskretiseringsfelen I många fall kan avrundningsfelen försummas Även om avrundningsfel vanligtvis är små så är kan de både vara märkbara och irriterande i praktiska beräkningar med reella tal Uttryck Exakt värde i Matlab cos π/2 0 6.1232e-017 0.08 + 0.42 0.5 0 0 0.42 0.5 + 0.08 0-1.3878e-017 Dessutom så kan avrudningfel, i vissa exceptionella fall (som vi kommer att diskutera i detta tema) ha katastrofala följder Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (4 : 21) Binära tal I datorer lagras tal oftast i binär form: 4 bitar {}}{ ( 1101) 2 = 1 2 3 + 1 2 2 + 0 2 1 + 1 2 0 = (13) 10 Naturliga tal lagras exakt i binär form Om vi har n bitar (Eng.: bits) så kan vi lagra tal upp till 2 n 1 Binära rationella tal: (0.1101) 2 = 1 2 1 + 1 2 2 + 0 2 3 + 1 2 4 = 1 2 + 1 4 + 0 + 1 16 = 13 16 = (0.8125) 10 Observera: Talen 0.1, 0.2, 0.3, 0.4, 0.6, 0.7, 0.8, 0.9 kan inte representeras exakt binärt! (Dessa tal har en oändlig decimalutveckling i basen 2) Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (5 : 21) Flyttal De flesta reella tal kan inte lagras exakt; de måste avrundas och begränsas I stort sett all hårdvara och mjukvara som produceras idag stödjer IEEEs standard för flyttalsartimetik IEEE 754 IEEE 754 antogs 1985. 2008 släpptes en uppdaterad version av standarden: IEEE 754-2008 Standarden ger en maskinoberoende modell för hur flyttalsartimetik ska fungera Matlab använder som standard flyttalsformatet IEEE binary 64 (double precision), det mest använda formatet för att lagra flyttal Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (6 : 21)

Flyttalsformetet IEEE 754 binary 64 Normaliserade flyttal lagras Alla nollskilda flyttal kan skrivas på formen x = ( 1) s (1 + f ) 2 e, där 0 f < 1 (mantissan, eller bråkdelen (Eng.: fraction)) representeras i binär form med 52 bitar e (exponenten) är ett heltal som uppfyller 1022 e 1023 (E = e + 1023 largras med 11 bitar) 1 bit används för att lagra tecknet s (0 positiv, 1 negativ) Antalet bitar som används för att lagra f begränsar precisionen Antalet bitar som används för att lagra e begränsar omfånget Enbart f, E och s lagras; inte den inledande 1an ( gömd bit ) Talet 0 hanteras separat (E = f = 0 representerar talet 0) Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (7 : 21) Flyttalsformatet IEEE 754 binary 64 x = ( 1) s (1 + f ) 2 e, lagras med 1 bit för tecknet s, 11 bitar används för att lagra exponenten som E = e + 1023 och 52 bitar representerar mantissan 0 f < 1 Totalt använder vi 64 bitar, eller 8 byte (1 byte = 8 bitar), för att largra ett flyttal 63 62 61 60 8 7 6 5 4 3 2 1 0 tecken exponent mantissa 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 Ex: En reell 1000 1000 matris innehåller 10 6 tal; för att lagra denna matris behöver vi 8 MB minne (10 6 flyttal 8 byte/flyttal) Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (8 : 21) Maskinepsilon Antalet tecken (tal) i mantissan f begränsar flyttalssystemets precision IEEE 754 binary 64 använder 52 binära tecken för att lagra f Avstådnet mellan talet 1 och nästa representerbara tal kallas för maskinepsilon ɛ M ɛ M beror på vilket flyttalssystem som används; i IEEE 754 binary 64 är ɛ M = 2 52 2.2204 10 16 (1.000000000000000000000000000000000000000000000000000 }{{} 1) 2 51 nollor ɛ M ger en bild av flyttalssystemets precision Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (9 : 21)

Avstånd mellan flyttal x = ±(1 + f ) 2 e, När e = 0, så är avståndet mellan två konsekutiva flyttal ɛ M. Ex: (1.011000000000000000000000000000000000000000000001000) 2 (1.011000000000000000000000000000000000000000000000111) 2 =(0.000000000000000000000000000000000000000000000000001) 2 När e = 1, så är avståndet mellan två konsekutiva flyttal 2ɛ M Generallt så är är avståndet mellan två konsekutiva flyttal 2 e ɛ M För en fix exponent är avståndet mellan konsekutiva flyttal konstant Avståndet mellan konsekutiva flyttal växer tillsammans med exponenten Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (10 : 21) Överspill (Overflow) och underspill (underflow) Betrakta tal på formen x = ±(1 + f ) 2 e där 1022 e 1023 Det största (till beloppet) representerbara flyttalet är x max = (2 ɛ M ) 2 1023 Försök att largra tal med x > x max medför överspill (Eng.: overflow); många program avslutas och lämnar felmeddelande när detta händer Det minsta (till beloppet) representerbara flyttalet med full precision är x min = 2 1022 Obs: x min är mycket mindre än ɛ M! Försök att lagra tal med x < x min medför underspill (Eng.: underflow); de flesta program fortsätter när detta händer, vissa program skriver ut en varning och sätter x = 0 och fortsätter därefter Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (11 : 21) Specialfall Vi har: x = ( 1) s (1 + f ) 2 e, där 1022 e 1023 Vi lagrar s, E = e + 1023 och f Standarden IEEE 754 definierar följande specialfall E = 0 och f = 0 representerar noll subnormala flyttal eller gradvis underspill : E = 0 och f 0 betecknar flyttalet ±(0 + f ) 2 1022, vilket möjliggör lagring av flyttal (med minskad noggrannhet) ner till 2 1074 De (utökade reella) talen + och (representeras av E = 2047 = (11111111111) 2 och f = 0) Symbolen icke-ett-tal (Eng.: not-a-number), eller NaN lagras med E = 2047 och f 0. NaN uppkommer vanligtvis som resultat av en icke väldefinierad operation som 0/0. Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (12 : 21)

Absolut och relativt fel x: exakt (reellt) tal ˆx: tal med fel (mätfel, avrundingsfel,... ) Absolut fel: x ˆx Relativt fel: x ˆx x (x 0) Om x är en vektor, används vektornormer för att uttrycka fel Absolut fel: x ˆx Relativt fel: där, exempelvis, x = ( n xi 2 i=1 ) 1/2 x ˆx x (x 0) (vi kommer att titta på fler vektornormer i nästa tema!) Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (13 : 21) Avrundningsfel Anta att ett givet reellt tal x approximeras av flyttalet fl(x) och att vi arbetar i IEEE 754 binary 64 x = ( 1)ŝ (1 + ˆf ) 2ê, (där ŝ {0, 1}, 0 ˆf < 1, och ê Z), eller x = 0 fl(x) = ( 1) s (1 + f ) 2 e, eller fl(x) = 0 (om x = 0) Hur stort är avrundingsfelet x fl(x)? Skissen nedan illustrerar flyttalen (och deras avstånd) i ett område som innhåller 2 n. ɛ M 2 n 1 ɛ M 2 n 1 ɛ M 2 n 1 ɛ M 2 n ɛ M 2 n fl(x)? fl(x)? x 2 n Således har vi, för varje meningsfull avrundning, att x fl(x) ɛ M 2ê Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (14 : 21) Avrundsningsstrategier Det finns många standarder för avrundning: avrunda uppåt (mot + ) avrunda nedåt (mot ) avrunda mot noll avrunda bort från noll avrunda till närmsta flyttal default avrundningsstrategin i IEEE 754 Vid avrundning till närmsta flyttal gäller x fl(x) 1 2 ɛ M 2ê Vid avrundning till närmsta flyttal, behöver vi en regel för att ta hand om fallet med två tal med samma avstånd (Ex: Vid lika, så avrundar Matlab så att den sista siffran i mantissan är 0) Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (15 : 21)

Avrundningsfel Konstatera att x = ( 1) s (1 + ˆf ) 2ê 2ê när x 0 Om vi avrundar till närmasta flyttal (och x 0) så kan vi begränsa det relativa felet x fl(x) x 1 2 ɛ M 2ê 2ê = 1 2 ɛ M Föjaktligen, när vi avrundar till närmsta flyttal: Det relativa felet i flyttalsapproximation av nollskilda tal begränsas av 1 2 ɛ M I synnerhet har vi att det relativa felet är oberoende av storleken på talet Observera: Vissa betecknar kvantiteten µ = 1 2 ɛ M för maskinepsilon eller avrundningsenheten (Eng.: unit roundoff) [Eldén, Wittmeyer Koch] Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (16 : 21) Avrundningsfel i praktiken Maskin epsilon är ett mått på den relativa noggrannheten hos ett lagrat flyttal Standarden IEEE 754 binary 64 ger en precision på ungefär 16 siffror (i basen 10) I praktiken utförs många flyttalsoperationer på tal som har blivit avrundade. Likväl är det ackumulerade relativa felet i sluttresultatet oftast inte mer än ett par storleksordningar över ɛ M I de flesta vall är avrundningsfelen mycket mindre än andra fel (diskretiseringsfel och mätfel)! Men det finns några förrädiska fall att se upp för! Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (17 : 21) Noggrannhetsförlust eller kancellering av signifikanta siffror Vid subtraktion av nästan lika tal: 1.23456789 1.23456700 = 0.00000089 Om båda talen i vänsterledet har 9 korrekta siffror, alltså att absolutfelet dessa tal begänsat av 5 10 9 det relativa felet i talen i vänsterledet mindre än 10 8 det absoluta felet i högerledet är begränsat av 10 8 men det relativa felet i högerledet kan vara 10 2 Detta fenomen kallas noggrannhetsförlust eller kancellering av signifikanta siffror Ibland kan detta undvikas genom omskrivning. Ex: 1 + x 1 x = ( 1 + x 1 x)( 1 + x + 1 x) 1 + x + 1 x = 2x 1 + x + 1 x Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (18 : 21)

Konsekvenser och tumregler if x==y then... är inte ett bra test om x och y är flyttal som kan ha avrundats (exempelvis om de är resultat från olika beräkningar) Det är bättre att använda if abs(x-y) <= tolerance then... där tolerance är ett litet tal Undvik, om möjligt, subtraktion av nästan lika tal De associativa och distributiva lagarna gäller inte exakt för flyttal (vanligtvis inte särskilt viktigt) Vid beräkning av N n=1 s n, försök att börja med de minsta (till beloppet) talen Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (19 : 21) När är avrundsningsfel märkbara? Låt oss återvända till vårt första exempel. Datorrepresentation av en bild Diskretiseringsfel: en spatiellt kontinuerlig bild rastreras till pixlar, där varje pixel tilldelas en färg (Ex: tre tal mellan 0 och 1 som beskriver hur mycket rött, grönt och blått fägen har) Avrundningsfel: För varje pixel så avrundas talen som beskriver färg så att de kan lagras. Om vi exempelvis använder oss av flyttalsystemet IEEE 754 binary 64 för att representera färgerna, så kan avrundningsfelet försummas, diskretiseringsfelet dominerar totalt! I det flesta fall, där beräkningar utförs, så behöver vi inte bekymra oss om avrundningsfel Två viktiga undantag! Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (20 : 21) När är avrundsningsfel märkbara? 1. Känsliga problem Lösningen till matematiska problem kan ibland vara mycket känsliga för förändringar i indata: små förändringar i data medför stora förändringar i lösningen. De små fel som som introduceras vid avrundningen av indata kan därför orsaka märkbara förändringar i lösningen. Sådana problem kallas illa-konditionerade eller i vissa extrema fall illa-ställda 2. Numeriskt instabila algoritmer Vissa numeriska algoritmer är mycket känsliga för avrundningsfel även då till tillämpas på välställda problem. Om möjligt, undvik sådana algoritmer! Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (21 : 21)