Afrunding - Rounding

Grafer af resultatet, y , af afrunding x ved hjælp af forskellige metoder. For klarhedens skyld er graferne vist forskudt fra hele tal y -værdier. I  SVG -filen skal du holde markøren over en metode til at markere den, og i SMIL -aktiverede browsere skal du klikke for at markere eller fravælge den.

Afrunding betyder at erstatte et tal med en omtrentlig værdi, der har en kortere , enklere eller mere eksplicit repræsentation. For eksempel at erstatte $ 23.4476 med $ 23.45, brøkdelen 312/937 med 1/3 eller udtrykket 2 med 1.414.

Afrunding foretages ofte for at opnå en værdi, der er lettere at rapportere og kommunikere end originalen. Afrunding kan også være vigtig for at undgå vildledende præcis rapportering af et beregnet tal, måling eller skøn ; for eksempel er en mængde, der blev beregnet som 123.456, men som vides at være nøjagtig kun inden for et par hundrede enheder, normalt bedre angivet som "ca. 123.500".

På den anden side vil afrunding af nøjagtige tal indføre en eller anden afrundingsfejl i det rapporterede resultat. Afrunding er næsten uundgåelig ved rapportering af mange beregninger-især når man deler to tal i heltal eller fast-punkts aritmetik ; ved beregning af matematiske funktioner såsom kvadratrødder , logaritmer og siner ; eller ved brug af en floating-point repræsentation med et fast antal betydende cifre . I en række beregninger akkumuleres disse afrundingsfejl generelt , og i visse dårligt betingede tilfælde kan de gøre resultatet meningsløst.

Nøjagtig afrunding af transcendentale matematiske funktioner er vanskelig, fordi antallet af ekstra cifre, der skal beregnes for at afgøre, om der skal rundes op eller ned, ikke kan kendes på forhånd. Dette problem er kendt som " bordsmagerens dilemma ".

Afrunding har mange ligheder med den kvantisering, der opstår, når fysiske størrelser skal kodes af tal eller digitale signaler .

Et bølget lighedstegn ( : omtrent lig med ) bruges undertiden til at angive afrunding af nøjagtige tal, f.eks. 9,98 ≈ 10. Dette tegn blev introduceret af Alfred George Greenhill i 1892.

Ideelle egenskaber ved afrundingsmetoder omfatter:

  1. Afrunding skal udføres af en funktion . På denne måde, når det samme input afrundes i forskellige tilfælde, er outputtet uændret.
  2. Beregninger udført med afrunding skal være tæt på dem, der er foretaget uden afrunding.
    • Som et resultat af (1) og (2) bør output fra afrunding være tæt på dens input, ofte så tæt som muligt med en måling .
  3. For at blive betragtet som afrunding vil intervallet være en delmængde af domænet . En klassisk område er det heltal, Z .
  4. Afrunding bør bevare de symmetrier, der allerede findes mellem domænet og området. Med begrænset præcision (eller et diskret domæne) betyder dette, at man fjerner bias .
  5. En afrundingsmetode bør have nytte inden for datalogi eller menneskelig regning, hvor der bruges endelig præcision, og hastighed er en overvejelse.

Men fordi det normalt ikke er muligt for en metode at tilfredsstille alle ideelle egenskaber, findes der mange metoder.

Som hovedregel er afrunding idempotent ; dvs. når et tal er afrundet, vil afrunding af det igen ikke ændre dets værdi. Afrundingsfunktioner er også monotone ; dvs. afrunding af et større tal resulterer i det samme eller større resultat end afrunding af det mindre tal.

Typer af afrunding

Typiske afrundingsproblemer omfatter:

Afrundingsproblem Eksempel input Resultat Afrundingskriterium
Tilnærmelse af et irrationelt tal med en brøkdel π 22 /7 1-cifret nævner
Tilnærmelse af et rationelt tal med en anden brøkdel med mindre tæller og nævner 399 /941 3/7 1-cifret nævner
Tilnærmelse af en brøkdel, der har periodisk decimaludvidelse, med en endelig decimalfraktion 5 /3 1.6667 4 decimaler
Tilnærme en fraktioneret decimaltal efter én med færre cifre 2.1784 2.18 2 decimaler
Tilnærme en decimal heltal ved et heltal med flere efterstillede nuller 23.217 23.200 3 betydende tal
Tilnærme en stor decimal heltal hjælp videnskabelig notation 300.999.999 3.01 × 10 8 3 betydende tal
Tilnærmelse af en værdi med et multiplum af et angivet beløb 48,2 45 Flere af 15
Afrunding af hvert af et begrænset sæt af reelle tal (for det meste brøker) til et helt tal (undertiden det næsthærdigste heltal), så summen af ​​de afrundede tal er lig med den afrundede sum af tallene (f.eks. [1] nødvendig for fordelingen af ​​sæder , implementeret f.eks. ved den største restmetode , se Matematik om fordeling og [2] for fordeling af den samlede moms af en faktura til dens varer) {3/12, 4/12, 5/12} {0, 0, 1} Summen af ​​afrundede elementer er lig med afrundet sum af elementer

Afrunding til heltal

Den mest grundlæggende form for afrunding er at erstatte et vilkårligt tal med et helt tal. Alle de følgende afrundingsmetoder er konkrete implementeringer af en abstrakt enkelt-argument "runde ()" procedure. Disse er sande funktioner (med undtagelse af dem, der bruger tilfældighed).

Rettet afrunding til et helt tal

Disse fire metoder kaldes rettet afrunding , da forskydningerne fra det originale tal x til den afrundede værdi y alle er rettet mod eller væk fra den samme grænseværdi (0, +∞ eller −∞). Rettet afrunding bruges i intervalregning og er ofte påkrævet i økonomiske beregninger.

Hvis x er positiv, er afrunding det samme som rund-mod-nul, og afrunding er det samme som rund-væk-fra-nul. Hvis x er negativ, er afrunding det samme som rund-væk-fra-nul, og afrunding er det samme som rund-mod-nul. Under alle omstændigheder, hvis x er et heltal, er y bare x .

Hvor mange beregninger foretages i rækkefølge, kan valget af afrundingsmetode have en meget betydelig effekt på resultatet. En berømt instans involverede et nyt indeks, der blev oprettet af Vancouver Stock Exchange i 1982. Det blev oprindeligt fastsat til 1000.000 (tre decimaler med nøjagtighed), og var efter 22 måneder faldet til omkring 520 - hvorimod aktiekurser generelt var steget i perioden . Problemet blev forårsaget af, at indekset blev genberegnet tusinder af gange dagligt og altid blev afrundet til 3 decimaler, på en sådan måde, at afrundingsfejlene akkumulerede sig. Genberegning med bedre afrunding gav en indeksværdi på 1098,892 ved slutningen af ​​samme periode.

For eksemplerne nedenfor, sgn ( x ) henviser til tegnet funktion anvendt på det oprindelige antal, x .

Afrunding ned

  • runde ned (eller tag gulvet , eller rund mod negativ uendelighed ): y er det største heltal, der ikke overstiger x .

For eksempel bliver 23,7 afrundet til 23, og −23,2 bliver afrundet til −24.

Afrunding

  • runde op (eller tag loftet , eller afrund mod positiv uendelig ): y er det mindste heltal, der ikke er mindre end x .

For eksempel afrundes 23,2 til 24, og −23,7 bliver afrundet til −23.

Afrunding mod nul

  • runde mod nul (eller afkort eller afrund uendelig ): y er heltalet, der er tættest på x, således at det er mellem 0 og x (inkluderet); dvs. y er heltal delen af x , uden dens brøkcifre.

For eksempel bliver 23,7 afrundet til 23, og −23,7 bliver afrundet til −23.

Afrunding væk fra nul

  • runde væk fra nul (eller rund mod uendelig ): y er heltalet, der er tættest på 0 (eller ækvivalent til x ), således at x er mellem 0 og y (inkluderet).

For eksempel bliver 23,2 afrundet til 24, og −23,2 bliver afrundet til −24.

Afrunding til nærmeste helt tal

Afrunding af et tal x til det nærmeste heltal kræver en eller anden bindingsregel for de tilfælde, hvor x er nøjagtigt halvvejs mellem to heltal-det vil sige, når brøkdelen af x er præcis 0,5.

Hvis det ikke var for de 0,5 fraktionerede dele, ville de afrundingsfejl, der blev indført med runden til nærmeste metode, være symmetriske: for hver brøkdel, der bliver afrundet (f.eks. 0,268), er der en komplementær fraktion (nemlig 0,732), der bliver afrundet med samme beløb.

Når afrunding et stort sæt af fast punkt numre med ensartet fordelte brøkdele, de afrundingsfejl ved alle værdier, med udeladelse af sådanne med 0,5 brøkdelen ville statistisk kompenserer hinanden. Det betyder, at den forventede (gennemsnitlige) værdi af de afrundede tal er lig med den forventede værdi af de originale tal, når vi fjerner tal med brøkdel 0,5 fra sættet.

I praksis bruges typisk floating-point- tal, som har endnu flere beregningsnuancer, fordi de ikke er lige fordelt.

Rund halvdelen op

Den følgende tie-breaking-regel, kaldet runde halvt op (eller rund halvdel mod positiv uendelighed ), bruges i vid udstrækning i mange discipliner. Det vil sige, at halvvejsværdierne x altid afrundes.

  • Hvis brøkdelen af x er nøjagtigt 0,5, så er y  =  x  + 0,5

For eksempel afrundes 23,5 til 24, og −23,5 bliver afrundet til −23.

Nogle programmeringssprog (f.eks. Java, Python) definerer imidlertid deres halvdel op som en rund halvdel fra nul her.

Denne metode kræver kun at kontrollere et ciffer for at bestemme afrundingsretning i tos komplement og lignende repræsentationer.

Rund halvdelen ned

Man kan også bruge rund halv ned (eller rund halv mod negativ uendelighed ) i modsætning til den mere almindelige runde halv op .

  • Hvis brøkdelen af x er nøjagtigt 0,5, så er y  =  x  - 0,5

For eksempel afrundes 23,5 til 23, og −23,5 bliver afrundet til −24.

Rund halvdelen mod nul

Man kan også runde halvdelen mod nul (eller runde halvdelen væk fra uendeligt ) i modsætning til den konventionelle runde halvdel væk fra nul .

  • Hvis brøkdelen af x er nøjagtigt 0,5, så er y  =  x  - 0,5 hvis x er positiv, og y  =  x  + 0,5 hvis x er negativ.

For eksempel afrundes 23,5 til 23, og −23,5 bliver afrundet til -23.

Denne metode behandler positive og negative værdier symmetrisk og er derfor fri for generel positiv/negativ bias, hvis de originale tal er positive eller negative med samme sandsynlighed. Det har dog stadig bias mod nul.

Rund halvdelen væk fra nul

Den anden tie-breaking metode, der almindeligvis læres og bruges, er den runde halvdel væk fra nul (eller rund halvdel mod uendelig ), nemlig:

  • Hvis brøkdelen af x er nøjagtigt 0,5, så er y = x + 0,5 hvis x er positiv, og y = x - 0,5 hvis x er negativ.

For eksempel afrundes 23,5 til 24, og −23,5 bliver afrundet til −24.

Dette kan være mere effektivt på binære computere, fordi kun den første udeladte bit skal overvejes for at afgøre, om den runder op (på 1) eller ned (på 0). Dette er en metode, der bruges til at afrunde til betydelige tal på grund af dens enkelhed.

Denne metode, også kendt som kommerciel afrunding , behandler positive og negative værdier symmetrisk og er derfor fri for generel positiv/negativ bias, hvis de originale tal er positive eller negative med samme sandsynlighed. Det har dog stadig bias væk fra nul.

Det bruges ofte til valutaomregninger og prisafrundinger (når beløbet først konverteres til den mindste betydelige underinddeling af valutaen, f.eks. Cent i en euro), da det er let at forklare ved bare at overveje det første brøkciffer uafhængigt af supplerende præcisionscifre eller tegn på beløbet (for streng ækvivalens mellem betalende og modtager af beløbet).

Rund halv til jævn

En uafbrudt regel uden positiv/negativ bias og uden bias mod/væk fra nul er rund halv til lige . I henhold til denne konvention, hvis brøkdelen af x er 0,5, så er y det lige heltal nærmest x . Således bliver for eksempel +23,5 +24, ligesom +24,5; mens −23.5 bliver −24, ligesom −24.5. Denne funktion minimerer den forventede fejl ved summering af afrundede tal, selv når input oftest er positive eller for det meste negative.

Denne variant af metoden runde til nærmeste kaldes også konvergent afrunding , statistikerafrunding , hollandsk afrunding , gaussisk afrunding , ulige-lige afrunding eller bankers afrunding .

Dette er standard afrundingstilstand, der bruges i IEEE 754- operationer til resultater i binære flydende-punktformater (se også nærmeste heltalsfunktion ) og den mere sofistikerede tilstand, der bruges, når der afrundes til betydelige tal.

Ved at eliminere bias vil gentagen afrundet addition eller subtraktion af uafhængige tal give et resultat med en fejl, der har en tendens til at vokse i forhold til kvadratroden af ​​antallet af operationer frem for lineært. Se tilfældig gåtur for mere.

Denne regel fordrejer imidlertid fordelingen ved at øge sandsynligheden for lige forhold til odds. Typisk er dette mindre vigtigt end de bias, der elimineres ved denne metode.

Rund halv til ulige

En lignende tie-breaking regel er rund halv til ulige . I denne fremgangsmåde, hvis brøkdelen af x er 0,5, så er y det ulige heltal nærmest x . Således bliver for eksempel +23,5 +23, ligesom +22,5; mens −23.5 bliver −23, ligesom −22.5.

Denne metode er også fri for positiv/negativ bias og bias mod/væk fra nul.

Denne variant bruges næsten aldrig i beregninger, undtagen i situationer, hvor man vil undgå at øge omfanget af floating-point tal, som har et begrænset eksponentområde. Med rund halv til lige ville et ikke-uendeligt tal runde til uendeligt, og en lille denormal værdi ville runde til en normal værdi uden nul. Effektivt foretrækker denne tilstand at bevare den eksisterende skala med bindingsnumre og undgå resultater uden for rækkevidde, når det er muligt for numeriske systemer med jævn radix (f.eks. Binær og decimal).

Randomiseret afrunding til et helt tal

Skiftevis tie-breaking

En metode, mere uklar end de fleste, er at skifte retning, når et tal afrundes med 0,5 brøkdel. Alle andre afrundes til det nærmeste heltal.

  • Når brøkdelen er 0,5, skal du skiftevis afrunde op eller ned: for den første forekomst af en 0,5 fraktioneret del, rund op; for den anden forekomst, rund ned; og så videre. (Alternativt kan den første 0,5 fraktionerede delafrunding bestemmes af et tilfældigt frø .)

Hvis forekomster af 0,5 fraktionerede dele forekommer væsentligt mere end en genstart af forekomsten "tæller", så er den effektivt partisk. Med garanteret nul bias er det nyttigt, hvis tallene skal summeres eller beregnes i gennemsnit.

Tilfældig tie-breaking

  • Hvis brøkdelen af x er 0,5, skal du vælge y tilfældigt blandt x + 0,5 og x - 0,5 med lige stor sandsynlighed. Alle andre afrundes til det nærmeste heltal.

Ligesom rund-halv-til-lige og rund-halv-til-ulige er denne regel i det væsentlige fri for generel bias, men den er også fair blandt lige og ulige y- værdier. En fordel i forhold til alternativ tie-break er, at den sidste afrundingsretning på 0,5-deldelen ikke behøver at "huskes".

Stokastisk afrunding

Afrunding som følger til et af de nærmeste skrælende heltal med en sandsynlighed afhængig af nærheden kaldes stokastisk afrunding og vil i gennemsnit give et upartisk resultat.

For eksempel vil 1,6 blive afrundet til 1 med sandsynlighed 0,4 og til 2 med sandsynlighed 0,6.

Stokastisk afrunding kan være nøjagtig på en måde, at en afrunding funktion aldrig kan være. Antag for eksempel, at man startede med 0 og tilføjede 0,3 til det hundrede gange, mens man afrundede den løbende total mellem hver tilføjelse. Resultatet ville være 0 med regelmæssig afrunding, men med stokastisk afrunding ville det forventede resultat være 30, hvilket er den samme værdi opnået uden afrunding. Dette kan være nyttigt i maskinlæring, hvor træningen kan bruge aritmetik med lav præcision iterativt. Stokastisk afrunding er en måde at opnå 1-dimensionel dithering.

Sammenligning af tilgange til afrunding til et helt tal

Værdi Funktionelle metoder Randomiserede metoder
Rettet afrunding Rund til nærmeste Skiftevis tie-break Tilfældig tie-break Stokastisk
Ned
(mod - )
Op
(mod + )
Mod 0 Væk fra 0 Halvt nede
(mod - )
Halvt op
(mod + )
Halv mod 0 Halvt væk fra 0 Halv til Even Halvt til ulige Gennemsnit SD Gennemsnit SD Gennemsnit SD
+1,8 +1 +2 +1 +2 +2 +2 +2 +2 +2 +2 +2 0 +2 0 +1,8 0,04
+1,5 +1 +1 +1 +1,505 0 +1,5 0,05 +1,5 0,05
+1,2 +1 +1 +1 +1 0 +1 0 +1,2 0,04
+0,8 0 +1 0 +1 +0,8 0,04
+0,5 0 0 0 +0,505 0 +0,5 0,05 +0,5 0,05
+0,2 0 0 0 0 0 0 0 +0,2 0,04
−0,2 −1 0 −1 −0,2 0,04
−0,5 −1 −1 −1 -0,495 0 −0,5 0,05 −0,5 0,05
-0,8 −1 −1 −1 −1 0 −1 0 -0,8 0,04
−1.2 −2 −1 −1 −2 −1.2 0,04
-1,5 −2 −2 −2 −1.495 0 -1,5 0,05 -1,5 0,05
-1,8 −2 −2 −2 −2 0 −2 0 -1,8 0,04

Afrunding til andre værdier

Afrunding til et bestemt multiplum

Den mest almindelige type afrunding er at afrunde til et helt tal; eller mere generelt til et heltalsmultiple med et eller andet trin - såsom afrunding til hele tiendedele sekunder, hundrededele af en dollar, til hele multipla på 1/2 eller 1/8 inch, til hele snesevis eller tusinder osv.

Generelt indebærer afrunding af et tal x til et multiplum af en specificeret positiv værdi m følgende trin:

For eksempel indebærer afrunding x  = 2.1784 dollars til hele cent (dvs. til et multiplum på 0,01) beregning af 2.1784 / 0.01 = 217.84, derefter afrunding af det til 218 og til sidst beregning af 218 × 0.01 = 2.18.

Ved afrunding til et forudbestemt antal betydende cifre afhænger stigningen m af størrelsen på det tal, der skal afrundes (eller af det afrundede resultat).

Forøgelsen m er normalt en begrænset brøk i det numeriske system, der bruges til at repræsentere tallene. For visning til mennesker betyder det normalt decimaltalsystemet (det vil sige, m er et helt tal gange en effekt på 10, som 1/1000 eller 25/100). For mellemværdier, der er gemt i digitale computere, betyder det ofte det binære talsystem ( m er et heltal gange en effekt på 2).

Den abstrakte enkelt-argument "runde ()" -funktion, der returnerer et helt tal fra en vilkårlig reel værdi, har mindst et dusin forskellige konkrete definitioner præsenteret i afrundingen til heltalssektionen . Den abstrakte to-argument "roundToMultiple ()" -funktion er formelt defineret her, men i mange tilfælde bruges den med den implicitte værdi m  = 1 for inkrementet og reduceres derefter til den ækvivalente abstrakte single-argument-funktion med også den samme snes tydelige konkrete definitioner.

Logaritmisk afrunding

Afrunding til en bestemt effekt

Afrunding til en bestemt effekt er meget forskellig fra afrunding til et bestemt multiplum ; for eksempel er det almindeligt inden for computing, at det er nødvendigt at afrunde et tal til en hel effekt på 2. Trinene generelt for at afrunde et positivt tal x til en effekt af et bestemt helt tal b større end 1, er:

Mange af de forbehold, der gælder for afrunding til et multiplum, gælder for afrunding til en effekt.

Skaleret afrunding

Denne type afrunding, som også kaldes afrunding til en logaritmisk skala , er en variant af afrunding til en bestemt effekt . Afrunding på en logaritmisk skala opnås ved at tage loggen over mængden og foretage normal afrunding til den nærmeste værdi på logskalaen.

For eksempel leveres modstande med foretrukne tal på en logaritmisk skala. Specielt for modstande med en 10% nøjagtighed leveres de med nominelle værdier 100, 120, 150, 180, 220 osv. Afrundet til multipla af 10 ( E12 -serien ). Hvis en beregning angiver, at en modstand på 165 ohm er påkrævet, er log (150) = 2.176, log (165) = 2.217 og log (180) = 2.255. Logaritmen 165 er tættere på logaritmen 180, derfor ville en 180 ohm modstand være det første valg, hvis der ikke er andre overvejelser.

Hvorvidt en værdi x ∈ ( a , b ) runder til a eller b afhænger af, om kvadratværdien x 2 er større end eller mindre end produktet ab . Værdien 165 runder til 180 i modstandseksemplet, fordi 165 2 = 27225 er større end 150 × 180 = 27000 .

Flydende afrunding

I flydende aritmetik sigter afrunding på at omdanne en given værdi x til en værdi y med et bestemt antal betydende cifre. Med andre ord skal y være et multiplum af et tal m, der afhænger af størrelsen på x . Tallet m er en effekt af basen (normalt 2 eller 10) af floating-point-repræsentationen.

Bortset fra denne detalje gælder alle de varianter af afrunding, der er diskuteret ovenfor, også for afrunding af flydende tal. Algoritmen til en sådan afrunding præsenteres i afsnittet Skaleret afrunding ovenfor, men med en konstant skaleringsfaktor s  = 1 og en heltalbase b  > 1.

Hvor det afrundede resultat ville flyde over, er resultatet for en rettet afrunding enten den passende underskrevne uendelighed, når "afrundes fra nul", eller det højeste repræsentative positive endelige tal (eller det laveste repræsentative negative endelige tal, hvis x er negativt), når "afrunding mod nul ". Resultatet af et overløb for det sædvanlige tilfælde af runde til nærmeste er altid den passende uendelighed.

Afrunding til en simpel brøkdel

I nogle sammenhænge er det ønskeligt at afrunde et givet tal x til en "pæn" brøk - det vil sige den nærmeste brøk y  =  m / n, hvis tæller m og nævner n ikke overstiger et givet maksimum. Dette problem er temmelig forskelligt fra afrunding af en værdi til et fast antal decimaler eller binære cifre eller til et multiplum af en given enhed m . Dette problem er relateret til Farey -sekvenser , Stern -Brocot -træet og fortsatte fraktioner .

Afrunding til en tilgængelig værdi

Færdig tømmer , skrivepapir, kondensatorer og mange andre produkter sælges normalt i få standardstørrelser.

Mange designprocedurer beskriver, hvordan man beregner en omtrentlig værdi og derefter "afrunder" til en standardstørrelse ved hjælp af sætninger som "afrund til nærmeste standardværdi", "rund op til nærmeste standardværdi" eller "afrund til nærmeste standardværdi" .

Når et sæt foretrukne værdier er ligeligt fordelt på en logaritmisk skala, kan valg af den nærmeste foretrukne værdi til en given værdi ses som en form for skaleret afrunding . Sådanne afrundede værdier kan beregnes direkte.

Afrunding i andre sammenhænge

Dithering og fejlspredning

Ved digitalisering af kontinuerlige signaler , såsom lydbølger, er den samlede effekt af et antal målinger vigtigere end nøjagtigheden af ​​hver enkelt måling. Under disse omstændigheder bruges dithering og en beslægtet teknik, fejldiffusion , normalt. En relateret teknik kaldet pulsbreddemodulation bruges til at opnå analog type output fra en inertial enhed ved hurtigt at pulse effekten med en variabel driftscyklus.

Fejldiffusion forsøger at sikre, at fejlen i gennemsnit minimeres. Når man beskæftiger sig med en svag hældning fra en til nul, ville output være nul i de første par termer, indtil summen af ​​fejlen og den aktuelle værdi bliver større end 0,5, i hvilket tilfælde en 1 udsendes og forskellen trækkes fra fejlen indtil nu. Floyd – Steinberg dithering er en populær fejldiffusionsprocedure ved digitalisering af billeder.

Som et endimensionelt eksempel, antag tallene 0,9677 , 0,9204 , 0,7451 og 0,3091 forekomme i rækkefølge, og hver skal afrundes til et multiplum på 0,01 . I dette tilfælde afrundes de kumulative summer, 0,9677 , 1,8881 = 0,9677 + 0,9204 , 2,6332 = 0,9677 + 0,9204 + 0,7451 og 2,9423 = 0,9677 + 0,9204 + 0,7451 + 0,3091 , til et multiplum på 0,01 : 0,97 , 1,89 , 2,63 og 2,94 . Den første af disse og forskellene i tilstødende værdier giver de ønskede afrundede værdier: 0,97 , 0,92 = 1,89 - 0,97 , 0,74 = 2,63 - 1,89 og 0,31 = 2,94 - 2,63 .

Monte Carlo aritmetik

Monte Carlo aritmetik er en teknik i Monte Carlo metoder, hvor afrundingen tilfældigt er op eller ned. Stokastisk afrunding kan bruges til Monte Carlo -aritmetik, men generelt bruges oftere bare afrunding op eller ned med samme sandsynlighed. Gentagne kørsler giver en tilfældig fordeling af resultater, som kan indikere beregningens stabilitet.

Nøjagtig beregning med afrundet regning

Det er muligt at bruge afrundet aritmetik til at evaluere den nøjagtige værdi af en funktion med heltal domæne og område. For eksempel, hvis vi ved, at et helt tal n er en perfekt firkant, kan vi beregne dens kvadratrod ved at konvertere n til en flydende værdi z , beregne den omtrentlige kvadratrod x af z med flydende punkt og derefter afrunde x til nærmeste helt tal y . Hvis n ikke er for stor, vil floating-point afrundingsfejl i x være mindre end 0,5, så den afrundede værdi y vil være den nøjagtige kvadratrod af n . Det er grunden til, at diasregler kan bruges til nøjagtig regning.

Dobbelt afrunding

Afrunding af et tal to gange i træk til forskellige præcisionsniveauer, hvor sidstnævnte præcision er grovere, giver ikke garanteret det samme resultat som afrunding en gang til den sidste præcision undtagen i tilfælde af direkte afrunding. For eksempel giver afrunding 9.46 til en decimal 9.5, og derefter 10 når afrunding til heltal ved hjælp af afrunding af halv til lige, men ville give 9 når afrundet til heltal direkte. Borman og Chatfield diskuterer konsekvenserne af dobbelt afrunding, når data sammenlignes afrundet til et decimal med specifikationsgrænser udtrykt ved hjælp af heltal.

I Martinez v. Allstate og Sendejo mod Farmers , der blev retssager mellem 1995 og 1997, argumenterede forsikringsselskaberne for, at præmier med dobbelt afrunding var tilladte og faktisk krævede. De amerikanske domstole afsagde dom mod forsikringsselskaberne og beordrede dem til at vedtage regler for at sikre en enkelt afrunding.

Nogle computersprog og IEEE 754-2008- standarden dikterer, at resultatet ved enkle beregninger ikke skal afrundes to gange. Dette har været et særligt problem med Java, da det er designet til at køre identisk på forskellige maskiner, specielle programmeringstriks har været nødt til at blive brugt for at opnå dette med x87 flydende punkt. Java -sproget blev ændret for at tillade forskellige resultater, hvor forskellen ikke betyder noget og kræver, at der bruges en strenge fp -kvalifikator, når resultaterne skal stemme overens nøjagtigt; strengt flydende punkt er blevet gendannet i Java 17.

I nogle algoritmer beregnes et mellemresultat i en større præcision og skal derefter afrundes til den sidste præcision. Dobbelt afrunding kan undgås ved at vælge en passende afrunding til den mellemliggende beregning. Dette består i at undgå at runde til midtpunkter for den sidste afrunding (undtagen når midtpunktet er nøjagtigt). I binær aritmetik er tanken at afrunde resultatet mod nul og sætte den mindst signifikante bit til 1, hvis det afrundede resultat er unøjagtigt; denne afrunding kaldes klæbrig afrunding . Tilsvarende består den i at returnere mellemresultatet, når det er nøjagtigt repræsentabelt, og det nærmeste flydende tal med en ulige betydning ellers; derfor er det også kendt som afrunding til ulige .

Bordskabers dilemma

William M. Kahan opfandt udtrykket "The Table-Maker's Dilemma" for de ukendte omkostninger ved afrunding af transcendentale funktioner :

"Ingen ved, hvor meget det ville koste at beregne y w korrekt afrundet for hver to floating-point-argumenter, hvor det ikke over-/understrømmer. I stedet beregner velrenommerede matematikbiblioteker elementære transcendentale funktioner mest inden for lidt mere end et halvt ulp og næsten altid godt inden for en ulp. Hvorfor kan y w afrundes inden for en halv ulp ligesom SQRT? Fordi ingen ved, hvor meget beregning det ville koste ... ingen måde eksisterer for at forudsige, hvor mange ekstra cifre bliver nødt til at blive gennemført for at beregne en transcendentale udtryk og afrunde det korrekt til et forud tildelt antal cifre. Selv det faktum (hvis det er sandt), at et begrænset antal ekstra cifre i sidste ende vil være tilstrækkeligt, kan være en dyb sætning. "

De IEEE 754 floating-point standarden garanterer, at add, trække fra, gange, dividere, sammensatte gang-add , kvadratrod, og floating-point resten vil give den korrekt afrundede resultat af uendelig præcision drift. Der blev ikke givet en sådan garanti i 1985 -standarden for mere komplekse funktioner, og de er typisk kun nøjagtige til inden for den sidste bit i bedste fald. 2008 -standarden garanterer imidlertid, at tilpassede implementeringer vil give korrekt afrundede resultater, der respekterer den aktive afrundingstilstand; Implementering af funktionerne er dog valgfri.

Ved hjælp af Gelfond – Schneider-sætningen og Lindemann-Weierstrass-sætningen kan mange af de grundlæggende elementære funktioner bevises at returnere transcendentale resultater, når de får rationelle argumenter uden nul; derfor er det altid muligt at afrunde sådanne funktioner korrekt. Det kan dog kræve meget beregningstid eller være uden for rækkevidde at fastsætte en grænse for en given præcision for, hvor nøjagtige resultater der skal beregnes, før et korrekt afrundet resultat kan garanteres. I praksis, når denne grænse ikke er kendt eller for stor, skal der træffes en eller anden beslutning i implementeringen (se nedenfor), men ifølge en probabilistisk model kan korrekt afrunding tilfredsstilles med en meget stor sandsynlighed.

Nogle programmeringspakker tilbyder korrekt afrunding. Den GNU MPFR pakke giver korrekt afrundede vilkårlige præcision resultater. Nogle andre biblioteker implementerer elementære funktioner med korrekt afrunding i dobbelt præcision:

  • IBM 's nøjagtige bærbare matematiske bibliotek (forkortet APMathLib eller bare MathLib), også kaldet libultim, kun i afrunding til nærmeste. Dette bibliotek bruger op til 768 bits arbejdspræcision. Det blev inkluderet i GNU C -biblioteket i 2001, men de "langsomme stier" (giver korrekt afrunding) blev fjernet fra 2018 til 2021.
  • Sun Microsystems 'libmcr, i de 4 afrundingstilstande. I de vanskelige tilfælde bruger dette bibliotek også flere præcisioner, og antallet af ord øges med 2 hver gang Table-maker dilemmaet opstår (med udefineret adfærd i meget usandsynlige tilfælde, at en vis grænse for maskinen er nået).
  • CRlibm, skrevet i det gamle Arénaire -team (LIP, ENS Lyon ). Det understøtter de 4 afrundingstilstande og er bevist.

Der findes beregningsbare tal, for hvilke en afrundet værdi aldrig kan bestemmes, uanset hvor mange cifre der beregnes. Specifikke instanser kan ikke gives, men dette følger af det uafklarelige problem med standsningsproblemet . For eksempel, hvis Goldbachs formodning er sand, men ikke kan bevises , kan resultatet af afrunding af følgende værdi op til det næste heltal ikke bestemmes: enten 1+10 - n hvor n er det første lige tal større end 4, som ikke er summen af to primtal eller 1, hvis der ikke er et sådant tal. Det afrundede resultat er 2, hvis et sådant tal n eksisterer og 1 ellers. Værdien før afrunding kan dog tilnærmes til en given præcision, selvom formodningen ikke kan bevises.

Interaktion med stringsøgninger

Afrunding kan påvirke en stringsøgning efter et tal negativt. For eksempel er π afrundet til fire cifre "3.1416", men en simpel søgning efter denne streng vil ikke opdage "3.14159" eller nogen anden værdi af π afrundet til mere end fire cifre. I modsætning hertil lider afkortning ikke af dette problem; for eksempel vil en simpel stringsøgning efter "3.1415", som er π afkortet til fire cifre, opdage værdier på π afkortet til mere end fire cifre.

Historie

Begrebet afrunding er meget gammelt, måske ældre end end opdelingsbegrebet. Nogle gamle lertavler, der findes i Mesopotamien, indeholder tabeller med afrundede værdier for gensidige og kvadratrødder i bund 60. Afrundede tilnærmelser til π , årets længde og månedens længde er også gamle - se basis 60 eksempler .

Den runde-til-selv metode har fungeret som ASTM (E-29) standard siden 1940. Oprindelsen af de vilkår saglig afrunding og statistiker afrunding er temmelig selvforklarende. I den fjerde udgave af sandsynligheden og teorien om fejl i 1906 kaldte Robert Simpson Woodward dette "computerens regel", hvilket indikerede, at det dengang var i almindelig brug af menneskelige computere, der beregnede matematiske tabeller. Churchill Eisenhart angav, at praksis allerede i 1940'erne var "veletableret" i dataanalyse.

Oprindelsen til begrebet bankers afrunding er stadig mere uklar. Hvis denne afrundingsmetode nogensinde var en standard inden for bankvirksomhed, har beviserne vist sig ekstremt vanskelige at finde. Tværtimod tyder sektion 2 i Europa -Kommissionens rapport Indførelsen af ​​euroen og afrunding af valutamængder på, at der ikke tidligere havde været en standardmetode til afrunding i bankvirksomhed; og det specificerer, at beløb på "halvvejs" skal afrundes.

Indtil 1980'erne blev afrundingsmetoden, der blev anvendt i flydende computer-aritmetik, normalt fastsat af hardwaren, dårligt dokumenteret, inkonsekvent og forskellig for hvert computermærke og -model. Denne situation ændrede sig, efter at IEEE 754 floating-point-standarden blev vedtaget af de fleste computerproducenter. Standarden giver brugeren mulighed for at vælge mellem flere afrundingstilstande, og i hvert enkelt tilfælde præciseres det, hvordan resultaterne skal afrundes. Disse funktioner gjorde numeriske beregninger mere forudsigelige og maskinuafhængige og muliggjorde en effektiv og konsekvent implementering af intervalrekning .

I øjeblikket har meget forskning en tendens til at runde til multipla på 5 eller 2. For eksempel brugte Jörg Baten aldersbunke i mange undersøgelser for at evaluere regneskabsniveauet i gamle befolkninger. Han kom op med ABCC indeks , som gør det muligt at sammenligne den talforståelse mellem regioner mulige uden nogen historiske kilder, hvor befolkningen læsefærdigheder blev målt.

Afrundingsfunktioner i programmeringssprog

De fleste programmeringssprog giver funktioner eller speciel syntaks til at afrunde brøkdele på forskellige måder. De tidligste numeriske sprog, såsom FORTRAN og C , ville kun give en metode, normalt afkortning (mod nul). Denne standard metode kunne være underforstået i visse sammenhænge, såsom ved tildeling et brøktal til et heltal variabel , eller ved anvendelse af et brøktal som et indeks for en matrix . Andre former for afrunding skulle programmeres eksplicit; for eksempel kan afrunding af et positivt tal til det nærmeste heltal implementeres ved at tilføje 0,5 og afkorte.

I de sidste årtier, men syntaksen og standard biblioteker i de fleste sprog har almindeligt forekommende i det mindste de fire grundlæggende afrundingsregler funktioner (op, ned, til nærmeste, og mod nul). Bindemetoden kan variere afhængigt af sprog og version eller kan vælges af programmereren. Flere sprog følger føringen i IEEE 754 floating-point-standarden og definerer disse funktioner som at tage et dobbelt præcisions float- argument og returnere resultatet af samme type, som derefter kan konverteres til et heltal, hvis det er nødvendigt. Denne fremgangsmåde kan undgå falske overløb, fordi typer af flydende punkter har et større område end heltalstyper. Nogle sprog, f.eks. PHP , giver funktioner, der afrunder en værdi til et bestemt antal decimalcifre (f.eks. Fra 4321.5678 til 4321.57 eller 4300). Desuden giver mange sprog en printf eller lignende strengformateringsfunktion, som gør det muligt for en at konvertere et brøknummer til en streng, afrundet til et brugerdefineret antal decimaler ( præcisionen ). På den anden side er afkortning (rund til nul) stadig standard afrundingsmetoden, der bruges af mange sprog, især til opdeling af to heltalsværdier.

Tværtimod definerer CSS og SVG ikke nogen specifik maksimal præcision for tal og målinger, der behandles og udsættes i deres DOM og i deres IDL- grænseflade som strenge, som om de havde uendelig præcision , og ikke skelner mellem heltal og flydende- punktværdier; Imidlertid vil implementeringerne af disse sprog typisk konvertere disse tal til IEEE 754 dobbeltpræcisions flydende punktværdier, før de beregnede cifre udsættes med en begrænset præcision (især inden for standard JavaScript- eller ECMAScript- grænsefladebindinger).

Andre afrundingsstandarder

Nogle discipliner eller institutioner har udstedt standarder eller direktiver for afrunding.

Amerikanske vejrobservationer

I en retningslinje, der blev udstedt i midten af ​​1966, fastlagde det amerikanske kontor for den føderale koordinator for meteorologi, at vejrdata skulle afrundes til det nærmeste runde nummer med reglen om "rund halv op". For eksempel skal 1,5 afrundet til heltal blive 2, og -1,5 skal blive -1. Inden denne dato var reglen om uafgjort "rund halvvejs fra nul".

Negativ nul i meteorologi

Nogle meteorologer kan skrive "-0" for at angive en temperatur mellem 0,0 og -0,5 grader (eksklusiv), der blev afrundet til et helt tal. Denne betegnelse bruges, når det negative tegn betragtes som vigtigt, uanset hvor lille størrelsen er; for eksempel ved afrunding af temperaturer i Celsius -skalaen, hvor under nul angiver frysning.

Se også

Noter

Referencer

eksterne links