7 november 2014 Sida 1 / 21



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

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

Teknisk Beräkningsvetenskap I Tema 1: Avrundning och populationsmodellering

Feluppskattning och räknenoggrannhet

Kapitel 2. Feluppskattning och räknenoggrannhet

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

Föreläsning 8: Aritmetik och stora heltal

TANA19 NUMERISKA METODER

f (a) sin

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

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

TATA42: Föreläsning 6 Potensserier

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

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

Approximation av funktioner

5B1147. Envariabelanalys. MATLAB Laboration. Laboration 1. Gränsvärden och Summor

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

Sammanfattninga av kursens block inför tentan

Gruppuppgifter 1 MMA132, Numeriska metoder, distans

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

F2 Datarepresentation talbaser, dataformat och teckenkodning

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

Datorsystemteknik DVG A03 Föreläsning 3

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

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

kvoten mellan två på varandra följande tal i en talföljd är konstant alltid lika stor.

1 Föreläsning 12, Taylors formel, och att approximera en funktion med ett polynom

Fel- och störningsanalys

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

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

Fel- och störningsanalys

TATA42: Föreläsning 2 Tillämpningar av Maclaurinutvecklingar

Dagens ämnen. Potensserier

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

TATA42: Föreläsning 10 Serier ( generaliserade summor )

Numeriska serier Definition av konvergens J amf orelsesatser Vad skall vi j amf ora med? Absolutkonvergens Leibniz kriterium Dagens amnen 1 / 19

Tentamen: Numerisk Analys MMG410, GU

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

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

Serier. egentligen är ett gränsvärde, inte en summa: s n, där s n =

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

Konvergens för iterativa metoder

Interpolation Modellfunktioner som satisfierar givna punkter

Beräkningsmatematik. Niklas Ericsson och Stig Larsson

Ickelinjära ekvationer

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

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

Fixpunktsiteration. Kapitel Fixpunktsekvation. 1. f(x) = x = g(x).

Lösningar till MVE016 Matematisk analys i en variabel för I yy 1 + y 2 = x.

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:

Föreläsning 1. Numeriska metoder grundkurs II, DN1240. Carina Edlund Mottagningstid i rum 4516: onsdagar kl.

SF1661 Perspektiv på matematik Tentamen 20 oktober 2011 kl Svar och lösningsförslag

TAIU07 Matematiska beräkningar med Matlab

Icke-linjära ekvationer

Finns det över huvud taget anledning att förvänta sig något speciellt? Finns det en generell fördelning som beskriver en mätning?

SF Numeriska metoder, grundkurs Föreläsning 5: Felanalys, felkalkyl och kondition KTH - SCI

Digital- och datorteknik

Digital- och datorteknik

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

Kap Inversfunktion, arcusfunktioner.

DIGITALA TAL OCH BOOLESK ALGEBRA

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31

Kapitel 3. Approximation av funktioner

TATA42: Föreläsning 5 Serier ( generaliserade summor )

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

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

Lösningsförslag till övningsuppgifter, del V

SF1625 Envariabelanalys Tentamen Måndagen den 11 januari 2016

Beräkningsvetenskap introduktion. Beräkningsvetenskap I

Föreläsning 8: Aritmetik och stora heltal

Numeriska metoder för ODE: Teori

MATEMATIKPROV, LÅNG LÄROKURS BESKRIVNING AV GODA SVAR

TAYLORS FORMEL VECKA 4

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

I punkten x = 1 fås speciellt. Taylorpolynomet blir. f(x) = f(a) + f (a)(x a) + f (a)

Digital- och datorteknik

Kan du det här? o o. o o o o. Derivera potensfunktioner, exponentialfunktioner och summor av funktioner. Använda dig av derivatan i problemlösning.

Digital- och datorteknik

Beräkningsvetenskap introduktion. Beräkningsvetenskap I

SF1625 Envariabelanalys Lösningsförslag till tentamen

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Kort beskrivning av Sveriges första dator BESK

gränsvärde existerar, vilket förefaller vara en naturlig definition (jämför med de generaliserade integralerna). I exemplet ovan ser vi att 3 = 3 n n

Lennart Carleson. KTH och Uppsala universitet

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

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration

Tentamen i Envariabelanalys 2

STYRANDE SATSER. 1) Skriv ett program som räknar ut hur många år du har till pensionen. Vi räknar här med att man pensioneras det år man fyller 65 år.

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

Modul 4 Tillämpningar av derivata

Föreläsning 7. SF1625 Envariabelanalys. Hans Thunberg, 13 november 2018

Uppsala Universitet Matematiska Institutionen Bo Styf. Sammanfattning av föreläsningarna 11-14, 16/11-28/

SF1625 Envariabelanalys

Euler-Mac Laurins summationsformel och Bernoulliska polynom

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

TATA42: Föreläsning 3 Restterm på Lagranges form

Struktur: Elektroteknik A. Digitalteknik 3p, vt 01. F1: Introduktion. Motivation och målsättning för kurserna i digital elektronik

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

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

Transkript:

TANA09 Föreläsning 2 Talrepresentation i datorer. Flyttalssystem. Datoraritmetik och Beräkningsfel. Beräkningsfelsanalys och Kancellation. Serier och Resttermsuppskattningar. Tillämpning - Beräkning av π. 7 november 2014 Sida 1 / 21

Talrepresentation i Datorer Tal kan skrivas på exponentform eller som flyttal. Exempelvis är 763.45 = 7.6345 10 2. Ett flyttal är normaliserat om det endast finns en siffra framför decimalpunkten. Talet har heltalsdelen 7 och bråkdelen 0.6345. Detta betyder egentligen (7 10 0 + 6 10 1 + 3 10 2 + 4 10 3 + 5 10 4 )10 2. Vi har alltså ett positionssystem med basen 10. Hur ser datorn flyttalssystem ut? 7 november 2014 Sida 2 / 21

Definition Ett flyttalssystem karakteriseras av parametrar (β, t, L, U), där β är talsystemets bas, t är antalet siffror i bråkdelen, och L och U är systemets minsta respektive största exponent. Exempel Talsystemet (10, 3, 9, 9) innehåller exempelvis talen 4.562, 123.7, och 0.006532. Talet 0 kan inte skrivas som ett normaliserat flyttal. 7 november 2014 Sida 3 / 21

IEEE 754 Enkel Precision(2, 23, 126, 127) I datorn lagras talet som ett ord (32 bitar). Bitarna fördelas som s (1 bit) e (8 bitar) f (23 bitar) I Normalfallet, 1 e 254, gäller att flyttalet skall tolkas som, x = ( 1) s (1.f) 2 2 e 127. Undntagsfallen e = 0 eller e = 255 ger möjlighet att definiera x = 0, x = ±, och x = NaN. Exempel Hur lagras talet 13.25 i datorn? 7 november 2014 Sida 4 / 21

Observation Då vi lagrar x=0.1 i flyttalssystemet (2, 23, 126, 127) fås x = (0.1) 10 = (0.0001100110011...) 2 = (1.1001100110011...) 2 4 Med 23 bitar i bråkdelen blir inte x = 0.1 lagrat exakt på datorn. Ett avrundningsfel x xr 2 27 = 7.45 10 9 görs. Är det viktigt? Ett tal som kan lagras exakt i det decimala talsystemet kan inte säkert lagras exakt i det binära. Felen är små men datorer kan göra många beräkningar snabbt. 7 november 2014 Sida 5 / 21

Exempel Patriot missiler hade en intern klocka som mätte tiden i antal tiondelssekunder lagrat som heltal. Innan tidsvariabeln användes i beräkningar gjordes den om till ett enkelprecisions flyttal. Ju längre systemet varit påslaget desto större fel får man i tidsvariabeln. Felaktig tid gör att man inte kan lösa ekvationerna för målträff med tillräckligt hög precision. Varje gång man slog på systemet och testade lyckades det skjuta ned inkommande missiler. I skarpt läge lät man systemet vara påslaget ett par dagar innan anfallet kom och då misslyckades det med 24 dödsfall som resultat. Exempel Kriminella tillämpningar finns också. Genom att göra en massa små uttag och insättningar precis under respektive över gränser för avrundningsfelet har det gått att öka tillgodohavande på ett konto. Dessa, och andra, exempel presenteras i boken Accuracy and Reliability in Scientific Computing, SIAM, 2005. Av Bo Einarsson. 7 november 2014 Sida 6 / 21

Datoraritmetik och Beräkningsfel Exempel Då vi lagrar tal i ett flyttalssystem gör vi ett avrundningsfel. Antag att talet x = 573.672 skall lagras i talsystemet (10, 3, 9, 9). Hur stort fel kommer vi att göra? Exempel Antag att vi vill addera x = 34.23 och y = 85.28. Vad är den bästa tänkbara gränsen för beräkningsfelet om vi räknar i talsystemet (10, 3, 9, 9)? 7 november 2014 Sida 7 / 21

Avrundningsfel i Flyttalssystem Sats Då ett tal x lagras i flyttalssystemet (β, t, L, U) görs ett relativt fel högst x x r 1 x 2 β t, där x r är det tal i talsystemet som ligger närmast x. Definition Konstanten µ = 1 2 β t kallas talsystemets avrundningsenhet. 7 november 2014 Sida 8 / 21

Aritmetriska Operationer i Flyttalssystem Antag att vi räknar i talsystemet (β, t, L, U). Då gäller Sats Då en aritmetrisk operation x y utförs gäller att x y fl[x y] x y µ där fl[x y] resultatet beräknat inom talsystemet, och µ är avrundningsenheten. Operationen betyder +,,, eller /. Tolkning Räkna först exakt och avrunda svaret till flyttalssystemet. Det går att implementera standard funktioner exp(x), log(x), x,..., så att de beräknas med relativt fel högst µ. 7 november 2014 Sida 9 / 21

Exempel Vi vill beräkna a + b + c i talsystemet (10, 3, 9, 9) då a = 9.876 10 4, b = 9.880 10 4, och c = 3.456 10 1. Vi kan välja mellan alternativen eller fl[fl[a+b]+c] = fl[fl[ 0.004 10 4 ]+3.456 10 0 ] = fl[ 4.000 10 1 + 3.456 10 1 ] = 5.440 10 0. fl[a+fl[b+c]] = fl[9.876 10 4 9.877 10 4 ] = 1.000 10 1. Gör en beräkningsfelsanalys och avgör vilket alternativ som är bäst. Förutsättning Alla beräkningar inom flyttalssystemet utförs med relativt fel högst avrundningsenheten µ = 0.5 10 3. 7 november 2014 Sida 10 / 21

Beräkningsfelsanalys Vi vill använda MATLAB för att beräkna f(x) = 1+x 1, för små x. 10 0 >>x=10.^-(0:0.01:16); >>f=sqrt(1+x)-1; >>loglog(x,abs(f-f_ex)./f_ex); 10 2 10 4 10 6 10 8 10 10 10 12 10 14 10 16 10 16 10 14 10 12 10 10 10 8 10 6 10 4 10 2 10 0 Gör en beräkningsfelsanalys som förklarar resultatet. 7 november 2014 Sida 11 / 21

10 2 10 0 10 2 10 4 10 6 10 8 10 10 10 12 10 14 10 16 10 16 10 14 10 12 10 10 10 8 10 6 10 4 10 2 10 0 Relativa felet, fl[f(x)] f(x), f(x) = 1+x 1. f(x) och felgränsen f 3µ f x. Kancellation gör att relativa felet växer då x minskar! Hur kan vi åtgärda problemet? Lämplig omskrivning. 7 november 2014 Sida 12 / 21

Flyttalsaritmetik och Beräkningsfelsanalys Viktiga saker att komma ihåg är Kan oftast anta att alla beräkningar utförs med ett relativt fel högst µ. Beräkningsordningen är viktig. Alltså gäller fl[a+(b+c)] fl[(a+b)+c]. Matematiskt ekvivalenta uttryck kan ge väldigt olika resultat. Omskrivningen x 1+x 1 =, 1+x+1 undviker kancellationen. Gör man inga misstag brukar beräkningsfel orsakade av flyttalssystemet vara försumbara jämfört med andra fel. 7 november 2014 Sida 13 / 21

Serier och Resttermsuppskattningar Exempel Vi kan implementera flera standard funktioner genom att använda Taylor utveckling. Exempelvis är e x = 1+x+ x2 2 + x3 6 +... Vi behöver alltså kunna beräkna en summa S på dator. Vi approximerar med en partial summa S N och gör då ett trunkeringsfel R N. Det gäller att S = a k = N a k + a k = S N + R N. k=0 k=0 k=n+1 Hur skall trunkeringsfelet uppskattas? 7 november 2014 Sida 14 / 21

Alternerande serier Definition En serie är alternerande om a k a k+1 < 0, a k > a k+1, lim k a k = 0. S N S a n a n+1 N N+1 N+2 N Sats För en alternerande serie gäller att resttermen kan uppskattas R N a N+1. 7 november 2014 Sida 15 / 21

Exempel Låt S = k=1 ( 1) k 1+k 2. Beräkna summan med 5 korrekta decimaler. Observation Beräkning av alternerande serier kan ge ett stort beräkningsfel på grund av kancellation. Här krävs endast låg noggranhet jämfört med maskin precision µ och beräkningsfelet kan ignoreras. 7 november 2014 Sida 16 / 21

Positiva serier Definition En serier är positiv om a k > 0. Sats Antag att serien S kan skrivas S = f(k), k=0 där f(x) är positiv och monotont avtagande för x > N. Då gäller R N = f(k) f(x)dx. N+1 N 7 november 2014 Sida 17 / 21

Sats Antag att 0 a k b k för k > N. Då gäller R N = a k b k. k=n+1 k=n+1 Exempel Beräkna ett närmevärde till serien 1+k S = 1+k 3 med 5 korrekta decimaler. k=0 7 november 2014 Sida 18 / 21

Exempel - Beräkning avπ Vi vet att, och arctan(x) = x x3 3 + x5 5 x7 7 +... π 8 = arctan( 2 1). Nu vill vi utnyttja detta för att beräkna π med hög precision. Hur skall vi göra? 7 november 2014 Sida 19 / 21

Resttermsuppskattning för alternerande serie ger R N x2n+1 2N + 1 µ = 1 2 2 52 = N 20. Vi kan alltså beräkna en approximation av π med följande MATLAB kod function [Pi]=SeriePi() x=sqrt(2)-1;x2=x^2;s=x;term=x; for k=1:20 Term=-Term*x2;S=S+Term/(2*k+1); end; Pi=8*S; Vi fårπ 3.141592653589794 och felet är ungefär 4 10 16. 7 november 2014 Sida 20 / 21

Sammanfattning Vid flyttalsberäkningar görs ett relativt fel högst µ vid varje operation. Vid beräkning av serier på dator kan vi endast ta med ett begränsat antal termer. Restterms uppskattning viktigt! Vi måste veta att serien konvergerar. Detta kan inte testas på datorn. 7 november 2014 Sida 21 / 21