Flyttalls aritmetikk. I datamaskinen er alle tall representert i flyttalls aritmetikk.

Like dokumenter
Reelle tall på datamaskin

Forelesning 1 I162A-I162. Antonella Zanna. Institutt for informatikk (rom 4143)

Forelesning 1 I162A-I162. Antonella Zanna. Institutt for informatikk (rom 4143)

Tall. Posisjons-tallsystemer. Representasjon av heltall. Tall positive, negative heltall, flytende tall. Tekst ASCII, UNICODE XML, CSS

TDT4105/TDT4110 Informasjonsteknologi grunnkurs:

Representasjon av tall på datamaskin Kort innføring for MAT-INF1100L

INF1040 Digital representasjon TALL

Forelesning Datatyper Kap 5.2 Instruksjonsformat Kap 5.3 Flyttall App B

TALL. Titallsystemet et posisjonssystem. Konvertering: Titallsystemet binære tall. Det binære tallsystemet. Alternativ 1.

Forside. MAT INF 1100 Modellering og beregninger. Mandag 9. oktober 2017 kl Vedlegg (deles ut): formelark. Tillatte hjelpemidler: ingen

Husk å registrer deg på emnets hjemmeside!

Tall. Binære regnestykker. Binære tall positive, negative heltall, flytende tall

Underveiseksamen i MAT-INF 1100, 17. oktober 2003 Tid: Oppgave- og svarark

TDT4105/TDT4110 Informasjonsteknologi grunnkurs:

Sensitivitet og kondisjonering

Tall. Ulike klasser tall. Læringsmål tall. To måter å representere tall. De naturlige tallene: N = { 1, 2, 3, }

UNIVERSITETET I OSLO

Valg av kontaktpersoner/tillitsvalgte. MAT1030 Diskret matematikk. Oppsummering av kapittel 2. Representasjon av hele tall

I Kapittel 2 lærte vi om tall i alternative tallsystemer, i hovedsak om binære tall, oktale tall og heksadesimale tall.

KAPITTEL 2 Tall og datamaskiner

Ikke lineære likninger

UNIVERSITETET I OSLO

MAT-INF 1100: Obligatorisk oppgave 1

Tall. Tallsystemer. Posisjonstallsystemer. Veiing med skålvekt titallsystemet 123 = = 7B 16. Lærebokas kapittel 6

MAT-INF 1100: Obligatorisk oppgave 1

UNIVERSITETET I OSLO

KAPITTEL 2 Tall og datamaskiner

UNIVERSITETET I OSLO

MAT1030 Diskret matematikk

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF1040 Oppgavesett 7: Tall og geometrier

UNIVERSITETET I OSLO

Læringsmål tall. Prefikser for potenser av Store tall. Kunne prefikser for store tall i. det binære tallsystemet

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Læringsmål tall. Kunne prefikser for store tall i. det binære tallsystemet. Forstå ulike prinsipper for representasjon av.

Oppsummering av Uke 3. MAT1030 Diskret matematikk. Binære tall. Oppsummering av Uke 3

Kapittel 3: Litt om representasjon av tall

Biseksjonsmetoden. biseksjonsmetode. Den første og enkleste iterativ metode for ikke lineære likninger er den så kalt

Kapittel 3: Litt om representasjon av tall

Mer om representasjon av tall

Løsningsforslag til prøveunderveiseksamen i MAT-INF 1100, H-03

Kompendium med oppgaver for MAT-INF Høsten Knut Mørken

MAT1030 Forelesning 3

MAT1030 Plenumsregning 3

INF1040 løsningsforslag oppgavesett 7: Tall og geometrier

Regning med tall og bokstaver

Prosent- og renteregning

EKSAMEN I EMNET MAT160 Beregningsalgoritmer 1 Mandag 12 februar 2007 LØSNINGSFORSLAG

Tall SKOLEPROSJEKT MAT VÅR 2014 AUTHORS: ASTRI STRAND LINDBÆCK CAMILLA HELVIG PIA LINDSTRØM. Date: March 31,

Elementære eliminasjonsmatriser

Forberedelseskurs i matematikk

Litt om Javas håndtering av tall MAT-INF 1100 høsten 2004

Lineære likningssystemer

MAT-INF 1100 Modellering og beregninger. Fredag 12. oktober 2018 kl Vedlegg (deles ut): formelark. Tillatte hjelpemidler: ingen

UNIVERSITETET I OSLO

Ordliste matematikk. Addere (addisjon) Areal. Divisjon. Addere er å "legge sammen" tall.

TDT4110 IT Grunnkurs Høst 2016

Tema. Beskrivelse. Husk!

TDT4110 IT Grunnkurs Høst 2016

Studentene skal kunne. gjøre rede for begrepene naturlige, hele, rasjonale og irrasjonale tall. skrive mengder på listeform

UNIVERSITETET I OSLO

Prøveunderveiseksamen i MAT-INF 1100, H-03

Dagens tema. Nyttige programmer Programmet make. Flyt-tall Representasjon av flyt-tall. Standarden IEEE 754. Systemkall i Unix

Kapittel 1. Tallregning

Vi bruker desimaltall for Ô oppgi verdiene mellom de hele tallene. Tall med komma kaller vi desimaltall, og sifrene bak komma kaller vi desimaler.

Teori og oppgaver om 2-komplement

Kapittel 1. Tallregning

Alle hele tall g > 1 kan være grunntall i et tallsystem.

Øving 2 Matrisealgebra

Obligatorisk oppgave MAT-INF1100. Lars Kristian Henriksen UiO

Matematikk Øvingsoppgaver i numerikk leksjon 5 Løsningsforslag

Angivelse av usikkerhet i måleinstrumenter og beregning av total usikkerhet ved målinger.

UNIVERSITETET I OSLO

Dagens tema. Nyttige programmer Programmet make. Hvis én fil endres, hvilke filer må da kompileres på nytt?

Overordnet maskinarkitektur. Maskinarkitektur zoomet inn. I CPU: Kontrollenheten (CU) IT1101 Informatikk basisfag, dobbeltime 11/9

Kapittel 1. Tallregning

Kompendium til TOD065 - Diskret matematisk programmering

TMA4100 Matematikk 1, høst 2013

Kapittel 2. Tall på standardform

Euklids algoritmen. p t 2. 2 p t n og b = p s 1. p min(t 2,s 2 )

Kompendium med oppgaver for MAT-INF Høsten Knut Mørken

Matematikk Øvingeoppgaver i numerikk leksjon 1 Å komme i gang

Filter-egenskaper INF Fritz Albregtsen

Oblig3Pi - en matematisk rettet obligatorisk oppgave nr. 3 (av 4) i INF1000 høsten 2010 ett av to alternativer for oblig 3.

TALL. 1 De naturlige tallene. H. Fausk

TDT4110 IT Grunnkurs Høst 2015

Tallregning Vi på vindusrekka

Kapittel august Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 2.

6.4 (og 6.7) Gram-Schmidt prosessen

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.

ITPE2400/DATS2400: Datamaskinarkitektur

Oblig3Pi- en matematisk rettet obligatorisk oppgave nr. 3 (av 4) i INF1000 ett av to alternativer for oblig 3.

UNIVERSITETET I OSLO

Arbeidshefte Multiplikasjon og divisjon

Matematikk Øvingsoppgaver i numerikk leksjon 4 Løsningsforslag

6.5 Minste kvadraters problemer

1 Gauss-Jordan metode

Transkript:

Flyttalls aritmetikk I datamaskinen er alle tall representert i flyttalls aritmetikk. 1/21 Det betyr at desimal punktet ( float, floating point arithmetic på engelsk) beveger seg slik at store og små tall kan skrives som en tall av moderat størrelse ganget med en potens av et tall som kalles basen, β. I flyttalls aritmetikk, er et vilkårlig tall x er representert som ( x = ± d 0 + d 1 β + d 2 β + + d ) t 1 2 β + β e, t 1 hvor 0 d i β 1, i = 0, 1,....

Eksempler: 1) x = 102.345, β = 10 x = ( 1 + 2 10 + 3 2 10 + 4 3 10 + 5 ) 10 2 4 10 5 2/21 2) x = 6.25, β = 2, x = (110.01) 2 = (1.1001) 2 2 2 = (1 + 12 + 12 ) 2 2 4 3) x = 102.345, β = 2. x = (1100110.010110...) 2 = (1.100110010110...) 2 2 6 ( = 1 + 1 2 + 1 2 + 1 4 2 + 1 5 2 + 1 8 2 + 1 ) 10 2 + 2 6. 11

Flyttall system: 3/21 I maskinen: En flyttall system er definert med 4 heltall: β:= base t:= presisjon L, U := maksimum og minimum tillatt eksponent ( x = ± d 0 + d 1 β + d 2 β + + d ) t 1 β e, 2 β t 1 hvor 0 d i β 1, i = 0, 1,..., t 1. L e U.

d 0 d 1 d t 1 kalles mantisse e kalles eksponent eller karakteristikk d 1 d 2 d t 1 kalles fraksjonen 4/21 Fortegn, mantisse, og exponenten er lagret i forskjellige celler av flyttalls ordet. I IEEE Single Precision aritmetikk (β = 2), vi har 32 slike celler, hvorav den første brukes til fortegn, 8 til eksponenten og de 23 siste brukes til mantissen. (hidden bit) System β t L U IEEE SP 2 24-126 127 (32-bit) IEEE DP 2 53-1022 1023 (64-bit) Cray 2 48-16383 16384 HP calculator 10 12-499 499 IBM mainframe 16 6-64 63 Idag er IEEE SP og IEEE DP den standard aritmetikk som brukes i de fleste maskiner. IEEE er også utviklet så den takler unntaks situasjoner (som deling med null) på en nokså fornuftig måte.

Normaliserte tall Def. Et flyttalls system kalles normalisert hvis det ledende siffer d 0 er ikke null. 5/21 Hvis et tall er normalisert, er mantissen m slik at 1 m β. Flyttall systemer er som oftest normalisert fordi: representasjonen er unik det blir ikke brukt ekstra plass til nuller, og dermed er presisjonen øket i binær systemer (β = 2) er det ledende tall alltid 1 og trengs derfor ikke å lagres. Systemet har dermed en ekstra bit til presisjonen.

Egenskaper til flyttall systemer Flyttall systemer kan bare representere et endelig og diskret antall tall. Hvor mange? 6/21 fortegn: 2 (±, representert som 0, 1 i maskinen) ledende siffer i mantissen: β 1, husk: 0 d 0 β 1, + normalisering 1 d 0 β. andre t 1 siffer i mantissen: β t 1 eksponenten: (U L + 1) mulige verdier null: er representert som 00000000000000 Totalt = 2(β 1)β t 1 (U L + 1) + 1.

Andre mulige tall er: Underflow level, UFL: β L 1 min eksp 00000000000000 det minste positive normaliserte flyttall Overflow level, OFL: β U+1 (1 β t ), 7/21 x max eksp (β 1)i mantisse sifrene (flere). Tall som er større enn OFL eller mindre enn UFL kan ikke representers i dette partikulære systemet.

Flyttall er ikke fordelt uniformt over tallinjen 8/21 Tallene har lik avstand bare mellom to følgende potenser av β. De (endelig antall) tall som kan representeres eksakt i et gitt flyttall system kalles maskintall.

Avrunding Hvis et reelt tall ikke kan representeres eksakt som flyttall, må det approksimeres med et nært maskintall. x reelle tall fl(x) flyttall approksimasjon. 9/21 Denne prosessen kalles avrunding og den introduserte feilen kalles avrundingsfeil eller roundoff error. De to mest brukte metoder er: Chopping, hogging: det β-base tallet av x er trunkert etter t 1 siffer (avrunding mot null) Round to nearest, avrund til nærmest: det flyttall som er nærmest til x. Hvis i tvil, brukes det tall som slutter med et jevne (even) siffer (avrunding til even).

Eksempler 0) x = 1.56, β = 10, t = 2 Tallet er allrede normalisert 10/21 chop: fl(x) = 1.5 round to nearest: fl(x) = 1.6 1) x = 102.345, β = 10, t = 5 I normalisert form: x = 1.02345 10 2 chop: fl(x) = 1.0234 10 2 round to nearest: fl(x) = 1.0234 10 2. (vi har brukt round to even regelen).

2) x = 6.25, β = 2, t = 4. I normaliserte binær form: x = (1.1001) 2 2 2 chop: fl(x) = (1.1) 2 2 2, round to nearest: fl(x) = (1.1) 2 2 2 (round to even) 3) x = 102.345, β = 2, t = 5 I normaliserte binær form: x = (1.10011...) 2 2 6 11/21 chop: fl(x) = (1.1001) 2 2 6 round to nearest: fl(x) = (1.1010) 2 2 6. Avrunding til nærmest er den mest presise men det er koster litt mer å implementere. IEEE standard systemer bruker avrunding til nærmest.

Maskinpresisjon Husk relasjonen mellom appr.verdi og relativ feil: ˆx = x(1 + δ), δ kan være avhenging av x. Unit roundoff: er det (minste) tallet u slik at δ := rel. feil. 12/21 δ u. Unit roundoff er den maksimum relativ feil maskinen kan gjøre i lagring av alle mulige flyttall. Machine precision (maskinpresisjon) ɛ mach : Minste flyttall slik at fl(1 + ɛ mach ) > 1. Maskinpresisjonen er avhenging av benyttet avrundings metode: chopping: ɛ mach = β 1 t, rounding: ɛ mach = 1 2 β1 t

Som oftest antar man at u ɛ mach. 13/21 IEEE SP: ɛ = 2 24 10 7 (7 signifikante siffre) IEEE DP: ɛ = 2 53 10 16 (16 signifikante siffre).

Subnormale tall Husk fordelingen av flyttall: 14/21 Det finnes ingen flyttall mellom 0 og ±β L. Hullet mellom 0 og den minste flyttall skyldes normalisering. Hvis vi tillater ledende siffer å være 0, kan hullet rundt 0 fylles med ekstra flyttall. Slike flyttall kalles denormaliserte og lagres på en spesiell måte: fortegnsiffer 0000... 00000xyz.. Denormaliserte tall har mindre presisjon enn vanlige flyttall.

Eksepsjonelle tall IEEE standard har to ekstra spesielle tall som brukes til eksepsjonelle andeledninger: Inf, infinity, som resultat av divisjon med null, f.eks. 1/0 NaN, Not a number, som resultat av ubestemte operasjoner, lik som 0/0, 0 Inf eller Inf/Inf. 15/21 De er representert ved hjelp av spesielle siffer i eksponentenes celler: Inf: ±1 i fortegnet, 111.. (U + 1) i eksponentenes celler og 0000000... i mantissen NaN: ±1 i fortegnet, 111.. (U + 1) i eksponentenes celler og vilkålige siffer i mantissen De er veldig greie i den forstand at de hjelper software å takle eskepsjonelle situasjoner istedet for å midlertidig abortere. MATLAB propagerer Inf, NaN ifølge visse regler: x Inf = sign(x) Inf, x ± Inf = ±Inf, 0 Inf = NaN ±Inf Inf = ±Inf ±Inf NaN = NaN x NaN = NaN, x ± NaN = NaN

Om flyttall aritmetikk Addisjon/subtrasjon: 16/21 For å legge sammen eller subtrahere to flyttal, må man først omskrive dem til samme eksponent og så legge sammen eller subtrahere mantissene Eks: β = 10, t = 4. Addisjon: x 1 = 1.234 10 6, x 1 = 1.234 10 6, x 2 = 3.456 10 8 x 2 = 0.003456 10 6 Nå kan mantissene legges sammen, x 1 + x 2 = 1.2437456 10 6 1.244 10 6 (med 4 siffer). Den flytting av siffer gjør at vi har nesten mistet all informasjonen om x 2. Summe/subtrasjon av to t-siffer tall er ett flyttall som har mer enn t siffer Alle de ekstra siffer er mistet når tallet avrundes Worst case scenario: alle sifre i det minste tall kan gå tapt.

Multiplikasjon: Når to flyttall multipliseres, behøver deres eksponenter ikke være like: eksponentene summeres mantissene multipliseres. 17/21 Som oftes har det nye flyttallet en 2t-siffret mantisse. Da kan tallet avrundes til t siffer. Eks: β = 10, t = 4. x 1 = 1.234 10 6, x 2 = 3.456 10 8 x 1 x 2 = (1.234 3.456) 10 14 = 4.264704 10 14 4.264 10 6 (med 4 siffer). Vi må desverre ignorere halvparten av siffrene av det reelle produkt.

Divisjon: Til og med divisjon av to flyttall kan gi et resultat som ikke kan representeres eksakt. Eks: 1, 10 kan representeres eksakt i binær form, men 1/10 kan ikke (uendelig siffer) 18/21 Aritmetikk med flyttall gir ikke nødvendigvis flyttall som kan representeres eksakt på maskinen. I så fall må tallet avrundes. Siden flyttall ikke er jevnt fordelt, så er absolutt feilen ikke uniform, men relativ feilen kan begrenses av u (evt. ɛ mach ). Ideelt: x flop y = fl(x op y) IEEE standard følger denne regel så langt at x, y er i flyttall system range. Merk at: noen operasjoner kan være kommutative men ikke assosiative.

Kansellasjon Dette er et alvorlig problem som kan skje når vi subtraherer to tall som er nesten like. 19/21 Eksempel: ˆx = 4.0027, ŷ = 4.0047, ɛ mach = 0.5 10 4. Regn ut maksimum absolutt feil maksimum relativ feil i y x. Kansellasjonsfeil kan ofte unngåes med hjelp av analyse (omskriving av problemet).

Eksempel: kvadratisk formel 20/21 ax 2 + bx + c = 0 x = b ± b 2 4ac 2a

Eksempel: endelig differense approksimasjon f (x) f(x + h) f(x) h 21/21